WO2002050640A1 - Procede de securisation de l'execution d'un programme dans un module electronique a microprocesseur - Google Patents

Procede de securisation de l'execution d'un programme dans un module electronique a microprocesseur Download PDF

Info

Publication number
WO2002050640A1
WO2002050640A1 PCT/FR2001/004123 FR0104123W WO0250640A1 WO 2002050640 A1 WO2002050640 A1 WO 2002050640A1 FR 0104123 W FR0104123 W FR 0104123W WO 0250640 A1 WO0250640 A1 WO 0250640A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
execution
instructions
instruction
interruption
Prior art date
Application number
PCT/FR2001/004123
Other languages
English (en)
Inventor
Nicolas Giraud
Original Assignee
Cp8 Technologies
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 Cp8 Technologies filed Critical Cp8 Technologies
Priority to US10/451,520 priority Critical patent/US20040078589A1/en
Priority to EP01989650A priority patent/EP1356362A1/fr
Priority to AU2002228115A priority patent/AU2002228115A1/en
Publication of WO2002050640A1 publication Critical patent/WO2002050640A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Pinball Game Machines (AREA)

Abstract

Le procédé d sécurisation de l'exécution d'un programme PROG implanté en ROM dans un module électronique à microprocesseur comporte au moins les étapes suivantes : on déclenche par intermittence à l'aide d'un décompteur à réarmement automatique inclus dans le module une interruption IT1, IT2 dans l'exécution du programme PROG; et on déroute (60, 66) à chaque interruption (IT1, IT2) l'exécution du programme vers une routine de gestion de l'interruption RITT comportant comme première instruction l'instruction de retour d'interruption IRET (70) vers le programme (62, 66) au point de déroutage de l'interruption (IT1, IT2). L'invention concerne également un module électronique à microprocesseur adapté pour mettre en oeuvre le procédé ci dessus.

Description

PROCEDE DE SECURISATION DE L ' EXECUTION D ' UN PROGRAMME DANS UN MODULE ELECTRONIQUE A MICROPROCESSEUR
La présente invention concerne la sécurisation de modules électroniques comportant au moins un microprocesseur, une mémoire de type ROM/EEPROM contenant au moins un programme à exécuter et des moyens d'entrée/sortie pour communiquer avec l'extérieur. De tels modules sont réalisés le plus souvent sous la forme d'un microcircuit électronique intégré monolithique, ou puce, qui une fois protégé physiquement par tout moyen connu peut être monté sur un objet portatif type carte à puce, carte à microcircuit ou analogue utilisable dans divers domaines, notamment les cartes bancaires et/ou commerciales, la radiotéléphonie mobile, la télévision à péage, la santé et les transports.
D'une façon générale la sécurisation est destinée à accroître la ' sécurité anti-fraude d'un programme qui comporte un certain nombre d'instructions particulièrement critiques pour la bonne exécution de ce programme, en particulier certaines instructions à caractère opérationnel relatives au déroulement d'une transaction par l'intermédiaire du module électronique et/ou des instructions à caractère sécuritaire propre concernant par' exemple 1 ' authentific'ation de l'utilisateur, '1 ' authentification de- la transaction et de sa validité, lé maintien de la confidentialité des données, le cryptage/décryptage des données .
Si l'utilisation frauduleuse des cartes à puce n'est pas un phénomène nouveau, l'accroissement du volume et de la valeur des transactions sur carte à puce a amené les fraudeurs à utiliser des méthodes et des moyens de plus en plus sophistiqués. En particulier des attaques par rayonnements brèves et ciblées sur la puce ont pour conséquence de modifier les données et/ou les codes transitant d'une mémoire programme ROM et/ou EEPROM vers le microprocesseur sur le bus interne avec pour résultat l'inexécution ou l'exécution irrégulière de certaines parties du code, par exemple l'exécution d'instructions inopérantes en lieu et place d'une séquence de traitement sécuritaire.
Les parades à base de détecteurs de rayonnement s'avèrent inefficaces du fait de la finesse et la précision des émetteurs de rayonnements utilisés par les fraudeurs d'une part et du fait du risque de perturbation par rayonnement de la séquence logicielle de traitement du capteur d'autre part. Parmi d'autres solutions proposées, notamment dans le cadre de la demande de brevet français n°99.08409 au nom du Demandeur, certaines, comme le contrôle de parité sur le bus, nécessitent des modifications au niveau du dessin et de la conception de la puce elle-même, d'autres, comme l'introduction de drapeaux en RAM, ne font appel qu'à des solutions purement logicielles et de ce fait sont susceptibles d'être contournées par le type même d'attaques qu'elles visent à neutraliser.
La présente invention a pour but de s'assurer de la bonne exécution du code d'instructions contenu en ROM et/ou en EEPROM et qu'aucune attaque par rayonnement n'est en cours et en cas d'attaque d'arrêter l'exécution normalement prévue du programme (l'exécution de la session en cours) .
A cette fin 1 ' invention propose un procédé de sécurisation de l'exécution d'un programme implanté en mémoire ROM et/ou EEPROM dans un module électronique à microprocesseur caractérisé en ce qu'il comporte au moins les étapes suivantes :
- on déclenche par intermittence à l'aide de moyens matériels inclus dans le module une interruption dans l'exécution du programme; et
- on déroute à chaque interruption, à l'aide du microprocesseur, l'exécution du programme vers une routine de gestion de l'interruption comportant comme première instruction ou parmi les premières instructions de la routine l'instruction de retour au programme au point de déroutage .
A chaque interruption provoquée le code programme est dérouté vers une routine de traitement de cette interruption qui prévoit un retour normal au point de déroutage du programme, ce dernier poursuivant alors son exécution. De plus une attaque par rayonnement n'est pas capable d'empêcher le déclenchement d'une interruption par les moyens matériels inclus dans le module. Si cette attaque par rayonnement persiste lors de l'exécution de la routine de traitement de l'interruption provoquée, elle entraînera 1 ' inexécution de 1 ' instruction de retour au programme et de fait empêchera l'exécution correcte de la suite de ce programme. Ainsi, le procédé selon l'invention fournit une parade contre la modification d'instructions à exécuter par l'accès à des moyens matériels et évite le retour au programme en cas d'attaque persistante.
Le procédé selon l'invention fournit ainsi une parade efficace aux attaques par rayonnement qui est susceptible d'être mise en oeuvre en utilisant des circuits préexistants (sans adaptation matérielle ni modification du dessin ou de la conception de la puce électronique) et des ressources mémoires limitées et qui ne pénalise pas de façon sensible les performances du module électronique .
De préférence la première instruction de la routine de gestion de l'interruption est constituée par l'instruction de retour au programme au point de déroutage pour revenir au traitement interrompu. En effet il n'est en général pas nécessaire de prévoir de traitement logiciel préalable à l'instruction de retour puisque celui-ci ne sera pas exécuté en cas d'attaque par rayonnement en cours . Ainsi la routine de gestion de l'interruption peut être réduite à seule une instruction de façon à ne pas affecter sensiblement les performances du programme et à ne pas utiliser trop de volume mémoire dans la mémoire ROM/EEPROM.
Selon un mode de réalisation préférentiel de l'invention la routine de gestion de l'interruption est placée en ROM et/ou en EEPROM au dernier emplacement de la mémoire programme ou juste avant une frontière de domaine partagé de façon à sortir de la zone de mémoire programme autorisée lors de l'incrémentation du compteur de programme en cas de non-exécution de l'instruction de retour au programme. Il en résulte une interruption non masquable et un blocage immédiat du microprocesseur perceptible d'emblée par l'utilisateur.
Selon une autre variante intéressante du procédé selon l'invention l'instruction de retour au programme de la routine de gestion de l'interruption est immédiatement suivie en ROM et/ou en EEPROM d'une séquence de positionnement d'un indicateur de fraude en mémoire, notamment en mémoire EEPROM ou analogue, pour avertir d'une attaque frauduleuse passée. Selon un mode de réalisation préférentiel de l'invention, les moyens matériels comportent un circuit décompteur (timer) à réarmement automatique ou un circuit électronique analogue. Ainsi une exception est levée à chaque fois que le décompteur (également appelé minuteur) arrive à expiration. Cette exception est suivie du déroutage de code programme vers la routine de traitement de l'interruption décompteur. Le choix d'un décompteur à réarmement automatique comme générateur d'interruption est particulièrement intéressant à plusieurs titres, d'une part les décompteurs à réarmement automatique font partie de l'équipement de base des modules électroniques à microprocesseur, notamment les microcontrôleurs, et d'autre part parce qu'ils s'avèrent assez faciles à mettre en oeuvre du point de vue programmation. En effet on utilise directement l'instruction retour de l'interruption. En conclusion le décompteur à réarmement automatique est le moyen matériel très simple et très fiable pour provoquer une interruption sans intervention logicielle et à intervalles réguliers grâce au réarmement automatique.
Selon une première variante opératoire la valeur d'initialisation du circuit décompteur est rendue variable, notamment à chaque redémarrage du programme
(nouvelle session) . Avantageusement la variation de la valeur d'initialisation du circuit décompteur comporte au moins un paramètre obtenu à partir d'un générateur de nombres pseudo-aléatoires, sous-ensemble également fréquemment présent dans les microcontrôleurs pour traitements sécurisés. Ainsi le moment où un traitement est interrompu et le contrôle réalisé est rendu variable très difficilement prévisible, voire imprévisible, pour les fraudeurs . L'invention prévoit à titre optionnel un certain nombre de procédures et/ou caractéristiques complémentaires destinées à encore augmenter l'efficacité de l'invention. Parmi celles-ci on peut citer : - la répétition dans la suite d'instructions du programme de certaines instructions, notamment d'instructions sécuritaires de façon à augmenter en cas d'attaque les chances d'interruption au cours de l'exécution de cette séquence d'instructions ; - l'introduction dans la suite d'instructions du programme d'au moins une boucle de décalage temporel de l'exécution d'instructions avec en option la variation du décalage temporel d'une boucle à une autre et l'introduction d'un paramètre aléatoire dans cette variation par l'intermédiaire d'un générateur de nombres pseudo-aléatoires .
L'invention concerne également des modules électroniques sécurisés comportant chacun au moins un microprocesseur, une mémoire ROM et/ou une mémoire EEPROM comprenant au moins un programme à exécuter, le module étant caractérisé en ce qu'il comporte des moyens matériels adaptés pour déclencher par intermittence une interruption dans 1 ' exécution du programme et en ce que la mémoire ROM et/ou EEPROM comporte une routine de gestion de l'interruption comportant comme première instruction ou parmi les premières instructions de la routine l'instruction de retour au programme au point de déroutage .
Selon une autre variante optionnelle du module de l'invention la routine de gestion de l'interruption est placée en ROM et/ou EEPROM au dernier emplacement de la mémoire programme ou juste avant une frontière de domaine partagé de façon à sortir de la zone de mémoire programme autorisée lors de l'incrémentation du compteur de programme en cas de non-exécution de l'instruction de retour au programme .
Selon une variante optionnelle du module de l'invention 1 ' instruction de retour au programme de la routine de gestion de l'interruption est immédiatement suivie en ROM et/ou en EEPROM d'au moins une séquence de positionnement d'un indicateur de fraude en mémoire, notamment en mémoire EEPROM ou analogue, l'indicateur étant adapté de façon optionnelle pour avertir d'une attaque frauduleuse passée.
Selon un mode de réalisation préférentiel du module de l'invention les moyens matériels comportent un circuit décompteur à réarmement automatique ou un circuit électronique analogue.
De plus le module comporte des moyens matériels et/ou logiciels pour faire varier la valeur d'initialisation du circuit décompteur, notamment à l'aide d'un générateur de nombres pseudo-aléatoires .
Avantageusement certaines d'instructions, notamment des instructions sécuritaires, sont répétés en mémoire ROM/EEPROM dans la suite d'instructions du programme implanté dans le module selon l'invention.
Tout aussi avantageusement au moins une boucle de décalage temporel de l'exécution de certaines d'instructions est introduite dans la mémoire ROM et/ou EEPROM du module dans la suite d'instructions du programme. En variante le décalage temporel est variable d'une boucle à une autre, notamment à l'aide d'un générateur de nombres pseudo-aléatoires . L'invention concerne également une carte à microcircuit comportant un module électronique sécurisé tel que défini ci-avant dans ses différentes variantes.
D'autres buts, avantages et caractéristiques de l'invention apparaîtront à la lecture de la description qui va suivre de la mise en oeuvre du procédé selon l'invention et d'un mode de réalisation d'un module électronique à microprocesseur selon 1 ' invention donnés à titre d'exemple non limitatif en référence aux dessins ci-annexés dans lesquels: la figure 1 montre une représentation schématique d'un mode de réalisation d'un module électronique à microprocesseur selon l'invention; et - la figure 2 montre une représentation schématique de l'espace d'adressage code de la mémoire ROM de la figure 1 accompagné de deux sous-parties de programme plus détaillées, la portion de code à protéger et la routine d'interruption.
Le module électronique monolithique 10 à microprocesseur illustré à la figure 1 selon la présente invention et décrit à titre d'exemple non limitatif comporte d'une façon générale un microprocesseur CPU 11 relié de façon bidirectionnelle par un bus interne 12 à une mémoire vive RAM 14, une mémoire morte ROM 16, une mémoire EEPROM 18 et une interface entrée/sortie I/O 20. Le module 10 comporte également un décompteur TIMER 22 à réarmement automatique et un générateur de nombres pseudo-aléatoires GNPA 24 reliés au bus interne 12.
Comme indiqué ci-après le décompteur 22 et le générateur GPNA 24 sont utilisés dans le cadre de la présente invention pour le déclenchement par intermittence d'interruptions dans l'exécution de certains programmes implantés dans la ROM 16, notamment le programme PROG comportant des instructions dits sécuritaires, telles par exemple des instructions de cryptage/décryptage, des instructions d' authentification d'opérateur ou des instructions de validation de transaction (et repérées par le code INST en figure 2 ) .
A titre d'exemple non limitatif un module selon l'invention est utilisable, en association avec un objet support pour former une carte à microcircuit, comme carte bancaire ou comme porte-monnaie électronique . En ce qui concerne le cadencement du décompteur 22, celui ci est réduit par rapport à la fréquence de l'horloge par un facteur de division variable selon les modules et en général compris entre 4 et 32, ce gui donne un intervalle minimum entre les déclenchements de deux interruptions successives compris entre 1 et 8 instructions.
La figure 2 illustre l'espace d'adressage code de la mémoire ROM 16 de la figure 1 et intitulé EAC (ROM) . Cet espace EAC (ROM) se présente sous la forme d'une séquence de lignes de code (données et constantes comprises) allant de l'adresse la plus basse en haut de colonne à l'adresse la plus haute en bas de colonne. Cet espace EAC (ROM) est partagé en domaines contenant notamment des programmes, tels le programme PROG, et des routines, telle la routine RITT, routine de gestion de l'interruption déclenchée par décompteur. L'espace EAC (ROM) comporte également en bas de colonne une zone sans mémoire ou une zone de mémoire non exécutable ZNE , la zone mémoire exécutable encore disponible et non utilisée étant dénommée Z U. Selon une caractéristique optionnelle mais très intéressante de l'invention exposée ci-après, la routine RITT est implantée juste avant la zone ZΝE. La figure 2 montre également une illustration en colonne agrandie du programme PROG et une illustration en colonne agrandie de la routine de gestion de l'interruption RITT avec en pointillé les segments de correspondance des adresses de tête et de queue des sous parties logicielles correspondants, les segments 51 et 52 pour la colonne PROG et les segments 53 et 54 pour la colonne RITT.
Le programme PROG comporte en tête un jeu d'instructions INITT concernant la configuration et l'initialisation du décompteur à réarmement automatique 22 y compris la gestion de l'utilisation du générateur GΝPA 24 pour la détermination de la valeur d'initialisation du compteur à défilement décroissant intégré dans le décompteur 22. Les instructions INITT sont suivies des lignes du programme PROG proprement dit (chaque ligne indifférenciée étant représentée par 3 tirets au centre de la ligne) . Tel que représenté sur la figure 2 à titre d'exemple le programme PROG comporte au moins deux instructions IΝST à sécuriser. Ces instructions peuvent être identiques (répétition pour que l'instruction ait de bonnes chances d'être exécutée avec une interruption de contrôle) ou distinctes en cas de multiplicité d'instructions (authentification d'opérateur en début de transaction et de validation de transaction à la fin) . Les instructions INST sont encadrées par des boucles à décalage temporel BDT destinées à décaler d'une durée aléatoire l'exécution de la prochaine instruction I ST.
La routine RITT correspondant à la' routine de traitement d'interruption décompteur comporte comme première instruction, l'instruction IRET de retour d'interruption au point de déroutage du programme PROG. De façon optionnelle l'instruction IRET est suivie d'une ou plusieurs séquences de positionnement en mémoire d'un indicateur de fraude SPIF en 1 ' espèce dans la mémoire EEPROM 18. Au positionnement d'un indicateur de fraude proprement dit, est associée une procédure d'interdiction du fonctionnement opérationnel ultérieur du module électronique .
L'exécution du programme PROG s'effectue de la façon suivante en défilant la séquence d'instructions de la colonne PROG et commence par le chargement dans le compteur du décompteur 22 de sa valeur initiale, une valeur préétablie et éventuellement déjà modifiée par prise en compte d'un paramètre de variation obtenu à partir du générateur GNPA 24. Au fur et à mesure de l'exécution du programme PROG, la valeur instantanée du compteur/décompteur du décompteur 22 décroît jusqu'à expiration et atteindre la valeur zéro pendant l'exécution d'une instruction de PROG, par exemple la première instruction INST de la colonne PROG. Il s'ensuit la levée d'une exception et, après la fin de l'exécution de l'instruction en cours, le déroutage au point ITl selon la flèche 60 du code programme vers la routine de traitement de l'interruption décompteur représentée par la colonne RITT, l'instruction suivante à exécuter dans le registre « compteur programme » du microprocesseur 11 étant la première instruction de la colonne RITT, c'est à dire l'instruction IRET de retour d'interruption au point ITl selon la flèche 62. En cas d'absence d'attaque par rayonnement l'instruction IRET est exécutée normalement selon la flèche 70 comme le retour vers le point ITl selon la flèche 62. Le compteur/décompteur du décompteur est alors réinitialisé de façon automatique et correspondant à l'intervalle de temps d'exécution DT12 du programme PROG passé entre le point ITl (instant « retour ») et le point IT2 correspondant à la seconde interruption (instant « déroutage ») et représenté sur la colonne PROG par la double flèche 72. En l'absence d'attaque par rayonnement lors de la seconde interruption IT2 la procédure décrite ci-avant se répète avec déroutage vers la routine RITT selon la flèche 64, l'exécution normale selon 70 de l'instruction IRET de cette routine et le retour au point IT2 selon la flèche 66.
A titre de variante il est possible d'utiliser un compteur/décompteur à réarmement non automatique à commande logicielle intégrée à la routine RITT. Il est ainsi possible de donner au compteur/décompteur une nouvelle valeur initiale différente de la précédente valeur initiale, éventuellement en ajoutant avec une composante aléatoire à l'aide du générateur GNPA 24. Cette caractéristique présente de l'intérêt notamment si 1 'on recherche à augmenter ou à réduire la fréquence des interruptions selon l'état d'avancement de l'exécution du programme .
D'une façon générale la durée d'une attaque par rayonnement recouvre environ le temps d'exécution de plusieurs instructions de code programme que celles-ci soient normalement exécutées ou exécutées de façon inopérante du fait de l'altération des codes programme en transit sur le bus interne 12 lors d'une attaque par rayonnement. Ainsi les intervalles variables entre deux interruptions sont distants d'environ une centaine d'instructions, étant entendu qu'un rapprochement d'intervalles entre interruptions est toujours possible au cours de l'exécution d'un programme code autour des instructions à sécuriser (dans la limite des possibilités de déclenchement du décompteur utilisé) en prenant garde de ne pas allonger sensiblement le temps d'exécution du programme concerné.
En cas d'attaque par rayonnement en cours au moment où la valeur du compteur/décompteur du décompteur 22 atteint la valeur zéro, la procédure d'interruption sur décompteur entièrement gérée par un support matériel insensible à ce type d'attaque (le microprocesseur 11) s'exécutera normalement avec déroutage selon la flèche 60 vers la routine RITT. Par contre l'attaque par rayonnement empêchera l'exécution de l'instruction logicielle de retour d'interruption IRET 70 au point de déroutage ITl et l'exécution du programme PROG ne pourra pas reprendre, le compteur programme du microprocesseur 11 gardant comme instruction suivante la première instruction SPIF. Le parcours sans effet de la routine RITT se continue jusqu'à la dernière instruction SPIF, étant fait remarquer qu'en cas d'arrêt de l'attaque avant la dernière instruction SPIF, au moins une séquence de positionnement d'un indicateur de fraude est exécutée selon l'instruction SPIF pour signaler à l'OS (de l'anglais « Operating System » ou système d'exploitation) du microprocesseur l'attaque par rayonnement passée et provoquer l'interdiction par l'OS de la poursuite de la session en cours d'exécution.
Du fait de la position particulière de la routine RITT en ROM 16 au dernier emplacement de la mémoire programme (ou juste avant une frontière de domaine partagé) l'incrémentation du compteur de programme à la fin de la routine RITT provoquera une sortie de la zone de mémoire programme autorisée pour entrer dans la zone de mémoire non exécutable ZNE. Ceci aura pour effet de déclencher une interruption non masquable et un traitement en vue de l'interdiction de la poursuite de la session en cours d' exécution.
On notera pour finir que la mise en oeuvre du procédé selon l'invention est assez simple et peu coûteuse en ressources et en temps. Elle utilise le décompteur à réarmement automatique présent dans la puce et l'interruption associée. Seul est nécessaire l'ajout du code d'initialisation en début de session de programme et de la routine de gestion de l'interruption, routine qui peut être réduite à une seule instruction. Le temps d'exécution consommé par la mise en oeuvre du procédé correspond à l'initialisation du décompteur en début de session et à l'exécution de l'instruction de retour d'interruption à chaque interruption. Le procédé selon l'invention peut être utilisé sur les portions les plus sensibles d'un programme ou être étendu à la protection de l'intégralité du code programme sans véritablement pénaliser les performances de celui-ci en volume mémoire et en temps d'exécution.
Le module 10 avec son programme sécurisé selon l'invention tels que présenté ci-avant est monté sur un support approprié pour réaliser par exemple une carte à microcircuit utilisable dans divers domaines, notamment les cartes bancaires et/ou commerciales, la radiotéléphonie mobile, la télévision à péage, la santé et les transports.
L'invention n'est pas limitée à l'utilisation de modules électroniques à décompteur à réarmement automatique mais s'applique également aux modules électroniques dont l'architecture et les moyens matériels sont susceptibles de déclencher des interruptions provoquées, et notamment à des modules électroniques incorporant des circuits à base de temps analogues aux circuits décompteurs à réarmement automatique ou à réarmement logiciel, par exemple des circuits basés tant sur le comptage/décomptage d'impulsions d'horloge que sur le comptage du nombre d'instructions ou de lignes d'instructions effectivement exécutées.

Claims

REVENDICATIONS :
1. Procédé de sécurisation de l'exécution d'un programme implanté en mémoire ROM (16) et/ou EEPROM (18) dans un module électronique (10) à microprocesseur (11) caractérisé en ce que de manière à parer aux attaques par rayonnement ou à toute autre attaque ayant pour conséquence de modifier des instructions à exécuter et pour résultat l'inexécution ou la mauvaise exécution de certaines parties de code, il comporte au moins les étapes suivantes :
- on déclenche par intermittence à l'aide de moyens matériels (11) inclus dans le module (10) une interruption dans l'exécution du programme ; et - on déroute à chaque interruption, à l'aide du microprocesseur, l'exécution du programme vers une routine de gestion de l'interruption comportant comme première instruction ou parmi les premières instructions de la routine l'instruction de retour au programme au point de déroutage.
2. Procédé selon la revendication 1 caractérisé en ce que la routine de gestion de 1 ' interruption est placée en ROM (16) et/ou en EEPROM (18) au dernier emplacement de la mémoire programme ou juste avant une frontière de domaine partagé de façon à sortir de la zone de mémoire programme autorisée lors de l'incrémentation du compteur de programme en cas de non-exécution de l'instruction de retour au programme.
3. Procédé selon la revendication 1 caractérisé en ce que l'instruction de retour au programme de la routine de gestion de l'interruption est immédiatement suivie en ROM (16) et/ou en EEPROM (18) d'une séquence de positionnement d'un indicateur de fraude en mémoire, notamment en mémoire EEPROM (18) ou analogue, pour avertir d'une attaque frauduleuse passée.
4. Procédé selon la revendication 1 caractérisé en ce que lesdits moyens matériels comportent un circuit décompteur à réarmement automatique (22) ou un circuit électronique analogue.
5. Procédé selon la revendication 4 caractérisé en ce que la valeur d'initialisation du circuit décompteur (22) est variable.
6. Procédé selon la revendication 5 caractérisé en ce que la variation de la valeur d'initialisation du circuit décompteur (22) comporte au moins un paramètre obtenu à partir d'un générateur de nombres pseudo-aléatoires (24) .
7. Procédé selon la revendication 1 caractérisé en ce que certaines instructions, notamment des instructions sécuritaires, sont répétées dans la suite d'instructions du programme .
8. Procédé selon la revendication 1 caractérisé en ce qu'au moins une boucle de décalage temporel de l'exécution d'instructions est introduite dans la suite d'instructions du programme.
9. Procédé selon la revendication 8 caractérisé en ce que le décalage temporel est variable d'une boucle à une autre .
10. Procédé selon la revendication 9 caractérisé en ce que la variation du décalage temporel comporte au moins un paramètre obtenu à partir d'un générateur de nombres pseudo-aléatoires (24) .
11. Module électronique (10) comportant au moins un microprocesseur (11) et une mémoire ROM (16) et/ou une mémoire EEPROM (18) comprenant au moins un programme à exécuter, le module étant caractérisé en ce qu'il comporte de manière à parer aux attaques par rayonnement ou à toute autre attaque ayant pour conséquence de modifier des instructions à exécuter et pour résultat l'inexécution ou la mauvaise exécution de certaines parties de code, des moyens matériels (22) adaptés pour déclencher par intermittence une interruption dans l'exécution du programme et en ce que ladite mémoire ROM
(16) et/ou EEPROM (18) comporte une routine de gestion de
1 ' interruption comportant comme première instruction ou parmi les premières instructions de la routine 1 ' instruction de retour au programme au point de déroutage .
12. Module (10) selon la revendication 11 caractérisé en ce que lesdits moyens matériels comportent un circuit décompteur du type à réarmement automatique (22) ou un circuit électronique analogue.
13. Module (10) selon la revendication 14 caractérisé en ce qu'il comporte des moyens matériels et/ou logiciels pour faire varier la valeur d'initialisation du circuit décompteur, notamment à l'aide d'un générateur de nombres pseudo-aléatoires (24) .
14. Carte à microcircuit caractérisée en qu'elle comporte un module électronique selon la revendication 11.
PCT/FR2001/004123 2000-12-21 2001-12-20 Procede de securisation de l'execution d'un programme dans un module electronique a microprocesseur WO2002050640A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US10/451,520 US20040078589A1 (en) 2000-12-21 2001-12-20 Method for making secure execution of a programme in a micorprocessor-based electronic module
EP01989650A EP1356362A1 (fr) 2000-12-21 2001-12-20 Procede de securisation de l'execution d'un programme dans un module electronique a microprocesseur
AU2002228115A AU2002228115A1 (en) 2000-12-21 2001-12-20 Method for making secure execution of a programme in a microprocessor-based electronic module

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR00/16724 2000-12-21
FR0016724A FR2818766A1 (fr) 2000-12-21 2000-12-21 Procede de securisation de l'execution d'un programme implante dans un module electronique a microprocesseur, ainsi que le module electronique et la carte a microcircuit associes

Publications (1)

Publication Number Publication Date
WO2002050640A1 true WO2002050640A1 (fr) 2002-06-27

Family

ID=8857969

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2001/004123 WO2002050640A1 (fr) 2000-12-21 2001-12-20 Procede de securisation de l'execution d'un programme dans un module electronique a microprocesseur

Country Status (6)

Country Link
US (1) US20040078589A1 (fr)
EP (1) EP1356362A1 (fr)
CN (1) CN1285985C (fr)
AU (1) AU2002228115A1 (fr)
FR (1) FR2818766A1 (fr)
WO (1) WO2002050640A1 (fr)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1538509A1 (fr) 2003-12-04 2005-06-08 Axalto S.A. Procédé de sécurisation de l'éxécution d'un programme contre des attaques par rayonnement
EP1659515A1 (fr) * 2004-11-19 2006-05-24 Proton World International N.V. Protection d'un microcontrôleur
US8997255B2 (en) * 2006-07-31 2015-03-31 Inside Secure Verifying data integrity in a data storage device
US8352752B2 (en) * 2006-09-01 2013-01-08 Inside Secure Detecting radiation-based attacks
US20080061843A1 (en) * 2006-09-11 2008-03-13 Asier Goikoetxea Yanci Detecting voltage glitches
JP4882007B2 (ja) * 2007-01-05 2012-02-22 プロトン ワールド インターナショナル エヌ.ヴィ. 電子回路の一時的なロック
WO2008084017A1 (fr) * 2007-01-05 2008-07-17 Proton World International N.V. Limitation d'acces a une ressource d'un circuit electronique
CN101611414B (zh) * 2007-01-05 2012-12-05 质子世界国际公司 电子电路中的信息的保护
EP2354993A1 (fr) * 2009-12-30 2011-08-10 Gemalto SA Protection d'exécution de code octet JCVM contre les attaques de défauts
CN102455939A (zh) * 2010-10-19 2012-05-16 英业达股份有限公司 系统管理中断机制
US10657262B1 (en) * 2014-09-28 2020-05-19 Red Balloon Security, Inc. Method and apparatus for securing embedded device firmware
CN105468942B (zh) * 2015-12-31 2018-06-26 苏州景昱医疗器械有限公司 防止植入式脑深部电刺激系统程序被破解的方法及装置
US11514418B2 (en) * 2017-03-19 2022-11-29 Nxp B.V. Personal point of sale (pPOS) device with a local and/or remote payment kernel that provides for card present e-commerce transaction
US11620623B2 (en) 2018-05-31 2023-04-04 Nxp B.V. Merchant transaction mirroring for personal point of sale (pPOS) for card present e-commerce and in vehicle transaction

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5465349A (en) * 1990-10-19 1995-11-07 Gemplus Card International System for monitoring abnormal integrated circuit operating conditions and causing selective microprocessor interrupts
WO1997033217A1 (fr) * 1996-03-07 1997-09-12 Bull Cp8 Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre
FR2764716A1 (fr) * 1997-06-13 1998-12-18 Bull Cp8 Procede de modification de sequences de code et dispositif associe
WO2000023866A1 (fr) * 1998-10-16 2000-04-27 Gemplus Composant electronique et procede pour masquer l'execution d'instructions ou la manipulation de donnees

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4020471A (en) * 1975-06-30 1977-04-26 Honeywell Information Systems, Inc. Interrupt scan and processing system for a data processing system
US5016230A (en) * 1989-07-06 1991-05-14 Seifers Monte G Timing
JP3156755B2 (ja) * 1996-12-16 2001-04-16 日本電気株式会社 電界放出型冷陰極装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5465349A (en) * 1990-10-19 1995-11-07 Gemplus Card International System for monitoring abnormal integrated circuit operating conditions and causing selective microprocessor interrupts
WO1997033217A1 (fr) * 1996-03-07 1997-09-12 Bull Cp8 Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre
FR2764716A1 (fr) * 1997-06-13 1998-12-18 Bull Cp8 Procede de modification de sequences de code et dispositif associe
WO2000023866A1 (fr) * 1998-10-16 2000-04-27 Gemplus Composant electronique et procede pour masquer l'execution d'instructions ou la manipulation de donnees

Also Published As

Publication number Publication date
CN1488090A (zh) 2004-04-07
EP1356362A1 (fr) 2003-10-29
FR2818766A1 (fr) 2002-06-28
CN1285985C (zh) 2006-11-22
US20040078589A1 (en) 2004-04-22
AU2002228115A1 (en) 2002-07-01

Similar Documents

Publication Publication Date Title
WO2002050640A1 (fr) Procede de securisation de l'execution d'un programme dans un module electronique a microprocesseur
WO2006045924A1 (fr) Protection contre les attaques par generation de fautes sur les instructions de saut
EP1605333B1 (fr) Contrôle de l'exécution d'un programme
WO2005101160A1 (fr) Procede et dispositif pour controler l’acces a un periferique
EP3166039B1 (fr) Démarrage contrôlé d'un circuit électronique
EP1538509A1 (fr) Procédé de sécurisation de l'éxécution d'un programme contre des attaques par rayonnement
EP3455812B1 (fr) Procédé de sécurisation d'un dispositif electronique, et dispositif electronique correspondant
EP1108249B1 (fr) Procede de securisation du traitement d'une information sensible dans un module de securite monolithique, et module de securite associe
FR2757972A1 (fr) Procede de securisation d'un module de securite, et module de securite associe
FR2728369A1 (fr) Procede et dispositif pour accroitre la securite d'un circuit integre
FR2672402A1 (fr) Procede et dispositif pour la generation de nombres pseudo-aleatoires uniques.
FR3070076B1 (fr) Procede de protection d'un dispositif electronique contre des attaques par injection de faute
EP3198540B1 (fr) Procédé d'auto-détection d'une tentative de piratage d'une carte électronique de paiement, carte, terminal et programme correspondants
EP1939745B1 (fr) Procédé et dispostif pour sécuriser la lecture d'une mémoire
EP1717704A2 (fr) Protection du déroulement d'un programme exécuté par un circuit intégré
EP1742162B1 (fr) Protection de l'exécution d'un programme
EP2164018B1 (fr) Procédé de traitement de données et dispositif associé
WO2021123684A1 (fr) Système électronique et procédés d'activation dynamique de contre-mesures
EP1442556A2 (fr) Procede securise de mise en oeuvre d'un algorithme de cryptographie et composant correspondant
EP3360034A1 (fr) Procédé et système de sauvegarde répartie dynamique
WO2007006887A1 (fr) Protection contre les attaques par generation de fautes sur les instructions de saut
EP3032450B1 (fr) Procédé de contrôle d'une authenticité d'un terminal de paiement et terminal ainsi sécurisé
FR2976697A1 (fr) Transfert securise entre memoire non-volatile et memoire volatile
EP3599563A1 (fr) Procede d'affichage d'un code d'authentification par un dispositif electronique avec selection de mode d'affichage, procede de gestion, dispositifs et serveurs associes
FR3123468A1 (fr) Système sur puce

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2001989650

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 018221912

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2001989650

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWE Wipo information: entry into national phase

Ref document number: 10451520

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP