FR2841015A1 - Controle d'execution d'un programme - Google Patents

Controle d'execution d'un programme Download PDF

Info

Publication number
FR2841015A1
FR2841015A1 FR0207488A FR0207488A FR2841015A1 FR 2841015 A1 FR2841015 A1 FR 2841015A1 FR 0207488 A FR0207488 A FR 0207488A FR 0207488 A FR0207488 A FR 0207488A FR 2841015 A1 FR2841015 A1 FR 2841015A1
Authority
FR
France
Prior art keywords
signature
program
operator
execution
calculated
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.)
Pending
Application number
FR0207488A
Other languages
English (en)
Inventor
Yannick Teglia
Pierre Yvan Liardet
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.)
STMicroelectronics SA
Original Assignee
STMicroelectronics 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 STMicroelectronics SA filed Critical STMicroelectronics SA
Priority to FR0207488A priority Critical patent/FR2841015A1/fr
Publication of FR2841015A1 publication Critical patent/FR2841015A1/fr
Pending legal-status Critical Current

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne un procédé et circuit de contrôle de l'exécution d'un programme mettant en oeuvre des instructions successives comprenant chacune au moins l'exécution d'un opérateur (OPEj), consistant, pendant l'exécution de chaque instruction : à calculer pour chaque opérateur de l'instruction, une signature numérique (SIGN) prenant en compte au moins en partie un code numérique d'identification de l'opérateur et au moins en partie un code numérique identifiant la position de l'opérateur dans le programme, sans prendre en compte les valeurs des opérandes des instructions¡ et à comparer la signature calculée à une signature attendue, préalablement stockée dans un élément de mémorisation

Description

<Desc/Clms Page number 1>
CONTRÔLE D'EXECUTION D'UN PROGRAMME
La présente invention concerne le contrôle de l'exécution d'un programme, par un processeur exécutant des séries de codes opératoires sur des données. L'invention concerne plus particulièrement un programme utilisé pour l'exécution d'un processus d'authentification, d'autorisation ou analogue. Plus généralement, l'invention s'applique à tout programme pour lequel on souhaite garantir que l'exécution (séquencement) du programme (série d'instructions) ne soit pas modifiée.
La présente invention concerne plus particulièrement la protection de l'exécution d'un programme contre des attaques dites de déroutement qui consistent à provoquer un saut inopiné dans la séquence d'exécution, par exemple, en envoyant un pic de courant temporaire sur l'alimentation du processeur pendant un court instant (attaque connue d'après son appellation anglosaxonne "glitch"). Un déroutement de l'exécution d'un programme peut être frauduleux ou accidentel. Les tentatives de déroutement frauduleux apparaissent le plus souvent lorsque le programme s'est mis en boucle ou arrêté sur une instruction de blocage suite à un défaut d'authentification, par exemple, dans une application ou un processeur doit décider si une opération particulière est autorisée (par exemple, dans le cas des cartes
<Desc/Clms Page number 2>
bancaires, l'autorisation d'une transaction bancaire après authentification de l'utilisateur).
Un autre type d'attaque touchant l'exécution d'un algorithme de cryptographie consiste à faire sauter le compteur de programme afin de provoquer un saut inopiné dans la séquence d'exécution, même si le programme n'est pas arrêté en boucle lors d'une authentification.
Par exemple, pour des algorithmes de cryptographie (DSA, RSA, DES, AES, etc.), les clés secrètes peuvent être découvertes grâce à un piratage par provocation de saut d'instruction.
Le séquencement des instructions dans un processeur est généralement obtenu au moyen d'un compteur d'instructions (appelé compteur de programme) associé au processeur d'exécution du programme. Classiquement, pour détecter une tentative de déroutement, on double le compteur de programme synchronisant le fonctionnement du processeur. En prévoyant deux compteurs de programme ayant des réalisations différentes et dont les sorties respectives subissent un test câblé de cohérence avant de déclencher l'instruction suivante à exécuter par le processeur, on peut éviter certains déroutements. En effet, lors d'une attaque par impulsion de courant, il y a des chances pour que les résultats donnés par les deux compteurs de programme soient différents.
Un inconvénient d'une telle solution est qu'une attaque peut toutefois influencer de la même façon les deux compteurs.
La présente invention vise à permettre le contrôle de l'exécution d'instructions d'un programme exécuté par un processeur.
L'invention vise plus particulièrement à pallier les inconvénients des solutions connues pour contrer les attaques de type par saut d'instruction du programme.
L'invention vise également à proposer une solution qui ne requiert pas de prévoir deux compteurs de programme distincts.
<Desc/Clms Page number 3>
L'invention vise également à proposer une solution qui puisse être mise en oeuvre à la fois sous forme logicielle et sous forme matérielle.
L'invention vise en outre à proposer une solution qui soit compatible avec un traitement par blocs, d'instructions d'un programme constituant un algorithme d'authentification et d'autorisation.
Pour atteindre ces objets et d'autres, la présente invention prévoit un procédé de contrôle de l'exécution d'un programme mettant en oeuvre des instructions successives comprenant chacune au moins l'exécution d'un opérateur, consistant, pendant l'exécution de chaque instruction : à calculer pour chaque opérateur de l'instruction, une signature numérique prenant en compte au moins en partie un code numérique d'identification de l'opérateur et au moins en partie un code numérique identifiant la position de l'opérateur dans le programme, sans prendre en compte les valeurs des opérandes des instructions ; et à comparer la signature calculée à une signature attendue, préalablement stockée dans un élément de mémorisation.
Selon un mode de réalisation de la présente invention, ladite signature attendue est calculée, lors de l'installation du programme dans un dispositif chargé de l'exécuter.
Selon un mode de réalisation de la présente invention, ladite signature attendue est stockée dans une table.
Selon un mode de réalisation de la présente invention, on compare la signature calculée à une signature attendue en fin d'exécution d'un groupe d'instructions comprenant plusieurs opérateurs.
Selon un mode de réalisation de la présente invention, ladite signature est calculée par une fonction discriminante, de préférence, une fonction de Hashage.
Selon un mode de réalisation de la présente invention, la fonction discriminante combine en outre le code de l'opérateur avec une clé secrète propre au dispositif d'exécution.
<Desc/Clms Page number 4>
Selon un mode de réalisation de la présente invention, la taille des groupes d'instructions correspond à la taille de groupes lus dans une mémoire externe à un processeur pour stockage temporaire dans une mémoire cache.
L'invention prévoit également un processeur d'exécution d'un programme, associé à un registre de stockage d'une signature courante.
Selon un mode de réalisation de la présente invention, le processeur intègre une machine d'états en logique câblée de calcul de ladite signature.
Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 illustre, de façon très schématique et sous forme de blocs, un mode de mise en oeuvre du procédé de contrôle d'exécution d'un programme selon la présente invention ; la figure 2 est un organigramme simplifié illustrant un mode de mise en oeuvre d'une étape du procédé de l'invention ; et la figure 3 représente, partiellement et sous forme de blocs, un mode de réalisation d'un processeur d'exécution d'un programme, pourvu de moyens de contrôle d'exécution selon la présente invention.
Pour des raisons de clarté, seuls les étapes du procédé et éléments du processeur qui sont utiles à la compréhension de l'invention ont été représentés aux figures et seront décrits par la suite. En particulier, les opérateurs ou instructions concernés par la mise en oeuvre de l'invention n' ont pas été détaillés, l'invention s'applique quel que soit le type d'opérateur. De plus, tous les constituants nécessaires à l'exécution d'un programme, que ce soit au moyen d'une mise en oeuvre logicielle ou au moyen d'une machine d'états en logique
<Desc/Clms Page number 5>
câblée, n'ont pas été détaillés, leur réalisation faisant appel à des éléments classiques.
Une caractéristique de la présente invention est de calculer, en parallèle à l'exécution d'un programme à contrôler, une signature (mot numérique) dépendant exclusivement du type d'opérateur utilisé par l'instruction et de sa position dans le programme. En d'autres termes, on applique au code numérique identifiant un opérateur en cours d'exécution, une fonction de transformation (par exemple, une fonction connue sous le nom de fonction de Hashage au sens cryptographique) prenant en compte au moins une partie du mot numérique représentant l'opérateur et sa position dans le programme, pour fournir un mot numérique définissant une signature courante de l'exécution du programme.
Selon l'invention, on distingue une instruction d'un opérateur, en ce sens qu'une instruction comprend un opérateur et, le plus souvent des opérandes. De façon parfaitement connue, un compteur d'instructions ou compteur de programme séquence le déroulement du programme, chaque instruction nécessitant un nombre de cycles qui dépend de l'opérateur. Selon l'invention, le calcul de signature ne prend pas en compte les valeurs des opérandes ou données traitées par l'algorithme ou le programme, mais exclusivement les codes numériques identifiant les opérateurs.
Lors de la création du programme, on calcule également les signatures successives fonction des différents groupes d'opérateurs et de leurs positions relatives dans le programme afin de disposer de valeurs de contrôle (signatures de référence) à comparer aux valeurs courantes lors de l'exécution.
Dans le cas où la fonction de calcul de signature prend en compte, en tant que position de l'instruction dans le programme, son adresse dans une mémoire de stockage, le calcul de la signature de référence est effectué lors de l'installation du programme (le code numérique de l'adresse peut être différent d'une mémoire à une autre) .
<Desc/Clms Page number 6>
Le mode de réalisation tenant compte de la position relative des opérateurs est préféré, car il permet l'exécution de codes "mobiles", c'est-à-dire dont les adresses ne sont pas figées.
Une autre caractéristique de la présente invention est, selon un mode de réalisation préféré, d'effectuer le contrôle de cohérence de la signature calculée par rapport à la signature attendue à la fin de chaque bloc d'instructions d'un programme découpé en blocs. Un tel découpage par blocs sert, par exemple, au chargement du programme depuis une mémoire externe au processeur, vers une mémoire cache qui lui est associée.
La figure 1 illustre, sous forme de blocs, un mode de mise en oeuvre du procédé de contrôle d'exécution d'un programme Pg selon la présente invention. Le programme Pg est représenté sous la forme d'une liste d'opérateurs OPEj (j compris entre 1 et m) regroupés par groupes GPi (i compris entre 1 et n) de taille correspondant, par exemple, à la taille de blocs susceptibles d'être transférés depuis une mémoire de stockage du programme vers une mémoire cache. En variante, le groupe d'opérateurs est fixé de façon arbitraire. Au minimum, un groupe d'opérateurs comprend un seul opérateur.
Au cours de l'exécution du programme, on applique une fonction f au code numérique représentatif de l'opérateur courant OPEj en tenant compte de sa position dans le programme, c'est-à-dire du groupe GPi auquel il appartient. Cette fonction calcule une signature (bloc 2, SIGNi) courante de l'exécution du programme qui sera, selon l'invention, comparée à une signature attendue.
Selon un mode de réalisation préféré, afin de contrôler le séquencement du programme, le calcul de signature (bloc 1) tient également compte de la signature précédemment calculée.
La figure 2 illustre, par un organigramme, un mode de mise en oeuvre du contrôle d'exécution exécuté par l'invention.
Selon cet exemple de réalisation, les signatures attendues sont stockées dans une table 3, SIGNi où chaque code
<Desc/Clms Page number 7>
binaire représentant une signature attendue dépend non seulement de l'instruction OPj mais également du groupe GPi auquel elle appartient.
La référence à la position relative de l'opérateur dans le programme sert non seulement à contrôler le séquencement des instructions mais permet de plus de différentier deux signatures alors qu'un même opérateur peut être exécuté plusieurs fois dans un programme donné.
Dans le mode de réalisation de la figure 2, à chaque groupe GPi d'instructions, on calcule (bloc 4, COMPUTE f(OPEj, GPi)) pour les opérateurs OPEj successifs la fonction de calcul de signature f(OPEj, GPi).
Puis (bloc 5, f(OPEj, GPi) = SIGNi ?), en fin de groupe ou bloc, La signature calculée est comparée à une signature attendue SIGNi, lue dans la table 3.
Si les signatures attendues et calculées sont identiques, on passe au groupe suivant (bloc 7, NEXT i). En cas d'incohérence, un programme d'erreur (bloc 6, ERROR) spécifique est mis en oeuvre.
Selon un premier mode de mise en oeuvre, les signatures attendues (table 3) sont calculées lors du développement du programme ou de l'algorithme de chiffrement. C'est pourquoi, il est important que ces signatures ne prennent pas en compte les opérandes ou données des instructions et leurs adresses, mais uniquement les codes représentatifs des opérateurs.
Dans le cas où les constitutions des groupes ou blocs d'opérateurs dépendent de l'installation du programme dans un processeur particulier, on peut prévoir que les signatures attendues soient calculées lors de cette étape d'installation.
La mise en oeuvre de l'invention peut être effectuée de façon logicielle. Dans ce cas, on introduit entre chaque instruction (ou groupe d'instructions) un branchement sur un sous-programme de mise à jour de signature prenant en compte le code de l'opérateur exécuté et le code du groupe. Ce programme met à jour une variable SIGN constituant la signature calculée.
<Desc/Clms Page number 8>
La cohérence de la variable calculée avec la variable attendue est vérifiée, a posteriori, par un sous-programme de vérification (par exemple, en environnement sécurisé).
La figure 3 représente, sous forme de blocs, un mode de réalisation matériel de la présente invention. Selon ce mode de réalisation, un processeur intégré 10 contient les éléments nécessaires (machine d'états en logique câblée) d'exécution du calcul courant de la signature (bloc 11, f(OPEj, GPi)) qui est stockée dans un registre 12 (SIGN REG).
De préférence, chaque état (fin de cycle) de l'automate d'états du processeur est soumis à la fonction de calcul de signature. En variante, l'état n'est pris en compte pour la fonction f, qu'en fin d'instruction, ou d'étapes de chaque instruction.
Le calcul par le circuit 11 s'effectue, de préférence, après l'exécution classique de l'opérateur courant OPEj par une unité centrale 13 (CPU) du processeur intégré 10. Cela permet de vérifier non seulement le séquencement du programme mais également l'exécution de chaque instruction. Dans l'exemple représenté, les opérateurs successifs sont lus par groupe GPi dans une mémoire 14 (PGMEN) externe au processeur 10 et sont stockés par groupe dans une mémoire cache 15 (CACHE).
Pour la mise en oeuvre de l'invention, la mémoire 14 peut contenir une table particulière (SIGN TABL) lue par le processeur 10 à chaque besoin de vérification de la signature calculée dans le registre 12 par rapport à la signature attendue.
Le processeur 10 contient bien entendu les autres éléments habituels d'exécution des programmes. Ceux-ci n'ont pas à être détaillés et ne font pas l'objet de l'invention.
Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaîtront à l'homme de l'art. En particulier, tout ou partie du code représentant les opérateurs successifs du programme ou de l'algorithme pourront être repris en compte dans le calcul de signature. De façon similaire, tout ou partie du code représentant la position
<Desc/Clms Page number 9>
de chaque opérateur dans le programme pourra être pris en compte dans le calcul de cette signature.
De plus, bien que l'invention s'applique plus particulièrement à une vérification automatique de la signature attendue, on peut prévoir un mode de réalisation dans lequel un utilisateur contrôle qu'une signature calculée corresponde à une signature attendue qui lui a été communiquée.
En outre, le choix de la fonction de calcul de signature dépend de l'application et d'options que l'on souhaite lui adjoindre. Ce qui a été décrit en relation avec une fonction de Hashage se transpose à toute fonction discriminante, c'est-àdire amplifiant une différence entre deux valeurs d'entrée. Par ailleurs, pour attacher l'exécution du programme au processeur l'exécutant, on pourra prévoir une fonction f réalisant une combinaison de type OU-Exclusif de tout ou partie des bits du code de l'opérateur avec les bits d'une clé numérique propre au processeur.
Enfin, la mise en oeuvre de l'invention en utilisant des techniques de programmation et/ou des moyens connus est à la portée de l'homme du métier à partir des indications fonctionnelles données ci-dessus.

Claims (9)

REVENDICATIONS
1. Procédé de contrôle de l'exécution d'un programme mettant en oeuvre des instructions successives comprenant chacune au moins l'exécution d'un opérateur (OPEj), caractérisé en ce qu'il consiste, pendant l'exécution de chaque instruction : à calculer pour chaque opérateur de l'instruction, une signature numérique (SIGN) prenant en compte au moins en partie un code numérique d'identification de l'opérateur et au moins en partie un code numérique identifiant la position de l'opérateur dans le programme, sans prendre en compte les valeurs des opérandes des instructions ; et à comparer la signature calculée à une signature attendue, préalablement stockée dans un élément de mémorisation.
2. Procédé selon la revendication 1, caractérisé en ce que ladite signature attendue est calculée, lors de l'installation du programme dans un dispositif chargé de l'exécuter.
3. Procédé selon la revendication 1 ou 2, caractérisé en ce que ladite signature attendue est stockée dans une table (3) .
4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il consiste à comparer la signature calculée à une signature attendue en fin d'exécution d'un groupe d'instructions (GPi) comprenant plusieurs opérateurs (OPEj).
5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que ladite signature est calculée par une fonction (f) discriminante, de préférence, une fonction de Hashage.
6. Procédé selon la revendication 5, caractérisé en ce que la fonction discriminante combine en outre le code de l'opérateur (OPEj) avec une clé secrète propre au dispositif d'exécution.
7. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que la taille des groupes d'instructions correspond à la taille de groupes lus dans une mémoire (14)
<Desc/Clms Page number 11>
externe à un processeur (10) pour stockage temporaire dans une mémoire cache (15).
8. Processeur d'exécution d'un programme, caractérisé en ce qu'il est associé à un registre (12) de stockage d'une signature courante calculée par la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 7.
9. Processeur selon la revendication 8, caractérisé en ce qu'il intègre une machine d'états en logique câblée (11) de calcul de ladite signature.
FR0207488A 2002-06-18 2002-06-18 Controle d'execution d'un programme Pending FR2841015A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0207488A FR2841015A1 (fr) 2002-06-18 2002-06-18 Controle d'execution d'un programme

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0207488A FR2841015A1 (fr) 2002-06-18 2002-06-18 Controle d'execution d'un programme

Publications (1)

Publication Number Publication Date
FR2841015A1 true FR2841015A1 (fr) 2003-12-19

Family

ID=29595342

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0207488A Pending FR2841015A1 (fr) 2002-06-18 2002-06-18 Controle d'execution d'un programme

Country Status (1)

Country Link
FR (1) FR2841015A1 (fr)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2864655A1 (fr) * 2003-12-31 2005-07-01 Trusted Logic Procede de controle d'integrite de programmes par verification d'empreintes de traces d'execution
FR2886027A1 (fr) * 2005-05-20 2006-11-24 Proton World Internatinal Nv Detection d'erreur de sequencement dans l'execution d'un programme
EP1783648A1 (fr) * 2005-10-10 2007-05-09 Nagracard S.A. Microprocesseur sécurisé avec vérification des instructions
EP1843250A1 (fr) 2006-04-05 2007-10-10 Texas Instruments France Système et procédé de contrôle de l'intégrité du code d'un programme informatique
EP1923789A1 (fr) * 2006-11-16 2008-05-21 Nagracard S.A. Procédé de contrôle de l'exécution d'un programme par un microcontrôleur
WO2009156689A2 (fr) * 2008-06-27 2009-12-30 Oridao Procede et systeme de validation d'une succession d'evenements vecus par un dispositif
EP2336931A1 (fr) * 2009-11-18 2011-06-22 STMicroelectronics (Rousset) SAS Procédé de vérification de signature
WO2014009307A1 (fr) * 2012-07-10 2014-01-16 Morpho Procédé pour protéger une carte à puce contre une attaque physique destinée à modifier le comportement logique d'un programme fonctionnel
US8688995B2 (en) 2009-11-18 2014-04-01 Stmicroelectronics (Rousset) Sas Method and apparatus for detection of a fault attack
US8720600B2 (en) 2009-11-18 2014-05-13 Stmicroelectronics (Rousset) Sas Method of detecting a fault attack
US8843761B2 (en) 2007-08-16 2014-09-23 Siemens Aktiengesellschaft Method and apparatus for protection of a program against monitoring flow manipulation and against incorrect program running
US9311477B2 (en) 2011-12-15 2016-04-12 Proton World International N.V. Method and device for fault detection
FR3071122A1 (fr) * 2017-09-14 2019-03-15 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede d'execution d'un code binaire d'une fonction securisee par un microprocesseur
US10650151B2 (en) 2017-09-14 2020-05-12 Commissariat A L'energie Atomique Et Aux Energies Alternatives Method of execution of a binary code of a secure function by a microprocessor
EP3864544A4 (fr) * 2018-10-09 2022-07-06 Argo AI, LLC Système de surveillance d'intégrité de séquence d'exécution

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0606802A1 (fr) * 1992-12-31 1994-07-20 Gec Alsthom Transport Sa Procédé de détection des erreurs d'exécution d'un logiciel
WO2000054155A1 (fr) * 1999-03-09 2000-09-14 Gemplus Procede de surveillance du deroulement d'un programme

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0606802A1 (fr) * 1992-12-31 1994-07-20 Gec Alsthom Transport Sa Procédé de détection des erreurs d'exécution d'un logiciel
WO2000054155A1 (fr) * 1999-03-09 2000-09-14 Gemplus Procede de surveillance du deroulement d'un programme

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7882396B2 (en) 2003-12-31 2011-02-01 Trusted Logic Method for controlling program execution integrity by verifying execution trace prints
WO2005073859A2 (fr) * 2003-12-31 2005-08-11 Trusted Logic Procede de controle d'integrite d'execution de programmes par verification d'empreintes de traces d'execution
WO2005073859A3 (fr) * 2003-12-31 2006-04-20 Trusted Logic Procede de controle d'integrite d'execution de programmes par verification d'empreintes de traces d'execution
FR2864655A1 (fr) * 2003-12-31 2005-07-01 Trusted Logic Procede de controle d'integrite de programmes par verification d'empreintes de traces d'execution
FR2886027A1 (fr) * 2005-05-20 2006-11-24 Proton World Internatinal Nv Detection d'erreur de sequencement dans l'execution d'un programme
EP1783648A1 (fr) * 2005-10-10 2007-05-09 Nagracard S.A. Microprocesseur sécurisé avec vérification des instructions
EP1843250A1 (fr) 2006-04-05 2007-10-10 Texas Instruments France Système et procédé de contrôle de l'intégrité du code d'un programme informatique
EP1923789A1 (fr) * 2006-11-16 2008-05-21 Nagracard S.A. Procédé de contrôle de l'exécution d'un programme par un microcontrôleur
WO2008059008A3 (fr) * 2006-11-16 2009-01-15 Nagracard Sa Procédé de contrôle de l'exécution d'un programme par un microcontrôleur
US8141145B2 (en) 2006-11-16 2012-03-20 Nagravision S.A. Method to control the execution of a program by a microcontroller
US8843761B2 (en) 2007-08-16 2014-09-23 Siemens Aktiengesellschaft Method and apparatus for protection of a program against monitoring flow manipulation and against incorrect program running
WO2009156689A2 (fr) * 2008-06-27 2009-12-30 Oridao Procede et systeme de validation d'une succession d'evenements vecus par un dispositif
AU2009264025B2 (en) * 2008-06-27 2015-01-15 Oridao Method and system for validating a succession of events experienced by a device
CN102077177A (zh) * 2008-06-27 2011-05-25 奥利多公司 一种用于验证设备经历的一系列事件的方法和系统
JP2011526020A (ja) * 2008-06-27 2011-09-29 オリダオ デバイスに発生した一連のイベントを検証する方法およびシステム
FR2933216A1 (fr) * 2008-06-27 2010-01-01 Nicolas Reffe Procede et systeme de validation d'une succession d'evenements vecus par un dispositif
WO2009156689A3 (fr) * 2008-06-27 2010-02-18 Oridao Procede et systeme de validation d'une succession d'evenements vecus par un dispositif
US20110047200A1 (en) * 2008-06-27 2011-02-24 Oridao A method and a system for validating a succession of events experienced by a device
CN102077177B (zh) * 2008-06-27 2015-02-11 奥利多公司 一种用于验证设备经历的一系列事件的方法和系统
EP2336931A1 (fr) * 2009-11-18 2011-06-22 STMicroelectronics (Rousset) SAS Procédé de vérification de signature
US8688995B2 (en) 2009-11-18 2014-04-01 Stmicroelectronics (Rousset) Sas Method and apparatus for detection of a fault attack
US8720600B2 (en) 2009-11-18 2014-05-13 Stmicroelectronics (Rousset) Sas Method of detecting a fault attack
US9311477B2 (en) 2011-12-15 2016-04-12 Proton World International N.V. Method and device for fault detection
FR2993380A1 (fr) * 2012-07-10 2014-01-17 Morpho Procede pour proteger une carte a puce contre une attaque physique destinee a modifier le comportement logique d'un programme fonctionnel
US10148671B2 (en) 2012-07-10 2018-12-04 Idemia Identity & Security France Method for protecting a chip card against a physical attack intended to modify the logical behaviour of a functional program
WO2014009307A1 (fr) * 2012-07-10 2014-01-16 Morpho Procédé pour protéger une carte à puce contre une attaque physique destinée à modifier le comportement logique d'un programme fonctionnel
US10650151B2 (en) 2017-09-14 2020-05-12 Commissariat A L'energie Atomique Et Aux Energies Alternatives Method of execution of a binary code of a secure function by a microprocessor
FR3071122A1 (fr) * 2017-09-14 2019-03-15 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede d'execution d'un code binaire d'une fonction securisee par un microprocesseur
EP3457621A1 (fr) * 2017-09-14 2019-03-20 Commissariat à l'Énergie Atomique et aux Énergies Alternatives Procédé d'exécution d'un code binaire d'une fonction sécurisée par un microprocesseur
US10942868B2 (en) 2017-09-14 2021-03-09 Commissariat A L'energie Atomique Et Aux Energies Alternatives Execution process of binary code of function secured by microprocessor
EP3864544A4 (fr) * 2018-10-09 2022-07-06 Argo AI, LLC Système de surveillance d'intégrité de séquence d'exécution

Similar Documents

Publication Publication Date Title
FR2841015A1 (fr) Controle d&#39;execution d&#39;un programme
EP1596283B1 (fr) Protection d&#39;un branchement dans un programme
EP1605333B1 (fr) Contrôle de l&#39;exécution d&#39;un programme
EP1730704A1 (fr) Procede de controle d&#39;identification de personnes et systeme pour la mise en oeuvre du procede
WO2006013162A1 (fr) Enregistrement d&#39;une cle dans un circuit integre
FR2829331A1 (fr) Procede de securisation d&#39;une quantite secrete
FR2885709A1 (fr) Controle d&#39;integrite d&#39;une memoire externe a un processeur
WO2004059450A1 (fr) Procede et dispositif de verification de l&#39;integrite d&#39;une application logicielle
EP1493242A1 (fr) Procede de securisation d une entite electronique a acces cr ypte
FR3121526A1 (fr) Démarrage sécurisé d’une unité de traitement
EP1983436B1 (fr) Contrôle d&#39;intégrité d&#39;une mémoire externe à un processeur
FR2867635A1 (fr) Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique
EP1316874A1 (fr) Blocage du fonctionnement d&#39;un circuit intégré
FR2977342A1 (fr) Verification d&#39;integrite d&#39;un programme execute par un circuit electronique
EP1616256B1 (fr) Procédé de gestion d&#39;un code executable téléchargé dans un système embarqué reprogrammable
EP1494104B1 (fr) Contrôle d&#39;intégrité d&#39;un programme en utilisant des statistiques
EP1770524A2 (fr) Détection d&#39;erreur de séquencement dans l&#39;exécution d&#39;un programme
FR2849232A1 (fr) Procede pour la securisation des systemes informatiques incorporant un module d&#39;interpretation de code
EP2252978B1 (fr) Carte a circuit integre ayant un programme d&#39;exploitation modifiable et procede de modification correspondant
EP1783648A1 (fr) Microprocesseur sécurisé avec vérification des instructions
FR2991071A1 (fr) Procede et dispositif de traitement de donnees
EP1591866A1 (fr) Contrôle de l&#39;exécution d&#39;un algorithme par un circuit intégré
EP1470663B1 (fr) Procede de generation et de verification de signatures electroniques
WO2024083849A1 (fr) Encodage en boite blanche
EP1357459A1 (fr) Processeur securisé contre les deroutements