FR2963128A1 - Procédé de détection d'une attaque par injection de faute dans un dispositif de mémoire, et système de détection correspondant - Google Patents

Procédé de détection d'une attaque par injection de faute dans un dispositif de mémoire, et système de détection correspondant Download PDF

Info

Publication number
FR2963128A1
FR2963128A1 FR1055928A FR1055928A FR2963128A1 FR 2963128 A1 FR2963128 A1 FR 2963128A1 FR 1055928 A FR1055928 A FR 1055928A FR 1055928 A FR1055928 A FR 1055928A FR 2963128 A1 FR2963128 A1 FR 2963128A1
Authority
FR
France
Prior art keywords
operator
value
request
values
criterion
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
FR1055928A
Other languages
English (en)
Other versions
FR2963128B1 (fr
Inventor
Frederic Bancel
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 Rousset SAS
Original Assignee
STMicroelectronics Rousset SAS
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 Rousset SAS filed Critical STMicroelectronics Rousset SAS
Priority to FR1055928A priority Critical patent/FR2963128B1/fr
Priority to US13/184,779 priority patent/US8484731B2/en
Publication of FR2963128A1 publication Critical patent/FR2963128A1/fr
Application granted granted Critical
Publication of FR2963128B1 publication Critical patent/FR2963128B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Procédé de détection d'une attaque par injection de faute dans des emplacements mémoires comprenant : -une élaboration (101) d'une valeur initiale d'une indication de référence (REF (0)) comportant une application d'un opérateur mathématique inversible sur les valeurs des informations mémorisées dans lesdits emplacements mémoire, -une mise à jour (102) de la valeur de cette indication de référence à chaque écriture dans au moins un emplacement mémoire en utilisant ledit opérateur, l'opérateur inverse et les valeurs desdites informations mémorisées avant et après chaque écriture dans ledit au moins emplacement mémoire, et -en présence d'une requête, la vérification de la satisfaction (103) ou non par la valeur de l'indication de référence (REF (n)) lors de la requête, d'un critère faisant intervenir les valeurs des informations mémorisées dans lesdits emplacements mémoire lors de la requête et ledit opérateur ou son inverse.

Description

B10-1580FR 1 Procédé de détection d'une attaque par injection de faute dans un dispositif de mémoire, et système de détection correspondant L'invention concerne, de façon générale, les circuits électroniques, et plus particulièrement la détection d'une attaque par injection de faute dans un dispositif de mémoire. L'invention s'applique avantageusement mais non limitativement aux cartes à puce et à la protection des données confidentielles qu'elles contiennent.
Parmi les attaques possibles effectuées par des fraudeurs pour extraire des données confidentielles d'une mémoire, par exemple une mémoire protégée d'une carte à puce, on peut citer les attaques dites par injection de faute (DFA ou « Differential Fault Analysis ») qui prévoient de perturber le fonctionnement et/ou le contenu de la mémoire, par exemple au moyen d'un rayonnement (laser, infrarouge, rayons X, etc.). I1 est donc particulièrement utile d'être capable de détecter une telle attaque par injection de faute. Une fois l'attaque détectée, de nombreuses solutions existent selon les applications pour soit bloquer le composant, soit interdire la lecture des données sensibles, soit réinitialiser le composant. Pour les architectures de mémoire classiques, par exemple celles de type bit à bit dans lesquelles chaque bit stocké peut être lu individuellement, il existe une possibilité de détection d'une telle attaque basée sur un contrôle de parité des bits lus lors d'une opération de lecture. Cependant, de telles solutions ne permettent pas, dans certains cas, de détecter une attaque par injection de faute alors que cette dernière attaque a effectivement eu lieu.
Selon un mode de mise en oeuvre et de réalisation, il est proposé un procédé de détection d'une attaque par injection de faute d'un dispositif de mémoire et un dispositif de mémoire correspondant, offrant une détection plus fiable d'une attaque par injection de faute, tout en permettant de tester un très grand nombre d'emplacements mémoire à moindre coût. Selon un aspect, il est proposé un procédé de détection d'une attaque par injection de faute dans des emplacements mémoires comprenant : -une élaboration d'une valeur initiale d'une indication de référence comportant une application d'un opérateur mathématique inversible sur les valeurs des informations mémorisées dans lesdits emplacements mémoire, -une mise à jour de la valeur de cette indication de référence à chaque écriture dans au moins un emplacement mémoire en utilisant ledit opérateur, l'opérateur inverse et les valeurs desdites informations mémorisées dans ledit au moins un emplacement mémoire avant et après chaque écriture dans ledit au moins emplacement mémoire, et -en présence d'une requête, la vérification de la satisfaction ou non par la valeur de l'indication de référence lors de la requête, d'un critère faisant intervenir les valeurs des informations mémorisées dans lesdits emplacements mémoire lors de la requête et ledit opérateur ou son inverse.
La mise à jour de l'indication de référence n'est réalisée que lors d'une écriture légitime dans au moins un emplacement mémoire tandis que les valeurs des contenus des emplacements de la mémoire sont changées également lors d'injection de fautes. Ainsi, la satisfaction par l'indication de référence d'un critère faisant intervenir des valeurs des contenus de la mémoire permet de mettre en évidence la présence d'injection de faute. Par ailleurs, on réutilise la même indication de référence pour tous les emplacements mémoire ce qui permet de tester un très grand nombre de points mémoire avec une seule référence.
Ainsi, selon cet aspect, on construit une référence tout au long du procédé, la vérification de la satisfaction du critère prenant en compte toutes les modifications (mise à jour, fautes injectées) des contenus des emplacements mémoires par l'utilisation de l'opérateur et de l'opérateur inverse.
I1 n'y a donc pas de perte d'information ni de compressions des données. Par ailleurs la requête, en présence de laquelle on effectue la détection d'une injection éventuelle de faute, peut être définie à l'avance par l'applicatif implémenté dans un processeur, par exemple un processeur d'une carte à puce incorporant une mémoire protégée contenant lesdits emplacements mémoire, ou bien par l'utilisateur lors d'une personnalisation de la carte à puce, ou bien être émise de façon cyclique ou pseudo aléatoire par un générateur pseudo aléatoire.
De ce fait, la latence sur la détection ne dépend que de la définition des instants d'occurrence des requêtes. Selon un mode de mise en oeuvre, l'étape de mise à jour comprend : a) une première mise à jour de l'indication de référence comportant une application de l'opérateur inverse sur la valeur précédente de l'indication de référence et sur les valeurs desdites informations mémorisées dans ledit au moins un emplacement mémoire avant ladite opération d'écriture dans ledit au moins emplacement mémoire, b) une deuxième mise à jour de l'indication de référence comportant l'application de l'opérateur sur la valeur de l'indication de référence mise à jour à l'étape a) et sur les valeurs desdites informations mémorisées dans ledit au moins un emplacement mémoire postérieurement à ladite opération d'écriture dans ledit au moins emplacement mémoire. Ces deux mises à jour tenant compte à la fois des valeurs précédant l'opération d'écriture et des valeurs après l'opération d'écriture permettent la détection d'une injection de faute alors même que celle-ci a été écrasée par une valeur légitime.
Selon une variante, le critère comprend une application dudit opérateur sur les valeurs des informations mémorisées dans tous les emplacements mémoire lors de la requête ; cette application de l'opérateur fournit une valeur que l'on appelle « valeur supplémentaire » ; puis on effectue une comparaison de cette valeur supplémentaire avec ladite valeur de l'indication de référence lors de la requête, et ledit critère est déclaré non satisfait, correspondant à la détection d'une attaque par injection de faute, si la valeur supplémentaire est différente de la valeur de l'indication de référence lors de la requête. Selon une autre variante, le critère comprend une application de l'opérateur inverse sur ladite valeur de l'indication de référence lors de la requête et sur les valeurs des informations mémorisées lors de la requête de façon à obtenir une valeur supplémentaire puis une comparaison de cette valeur supplémentaire avec l'élément neutre de l'opérateur et ledit critère est déclaré non satisfait, correspondant à la détection d'une attaque par injection de faute, si la valeur supplémentaire est différente dudit élément neutre. L'élément neutre est la valeur nulle lorsque ledit opérateur est l'addition et l'opérateur inverse est la soustraction. La satisfaction du critère est simple à tester puisqu'il met en oeuvre une simple comparaison de deux valeurs dont l'une peut être l'élément neutre. Selon un mode de mise en oeuvre, l'opérateur est un opérateur associatif et commutatif par exemple l'addition. Cela étant d'autres opérateurs sont possibles, comme par exemple la multiplication et la division. Ainsi, il est possible d'utiliser des opérateurs très simples dont les consommations en calcul sont faibles.
Selon un mode de mise en oeuvre, lorsque la vérification de la satisfaction du critère est concomitante avec une opération d'écriture requise, on vérifie la satisfaction du critère après ladite écriture et la mise à jour correspondante de l'indication de référence. En variante, lorsque la vérification de la satisfaction du critère est concomitante avec une opération d'écriture requise, on suspend l'opération d'écriture que l'on réalise après la vérification de la satisfaction ou non du critère.
I1 est ainsi possible de réaliser les requêtes de satisfaction du critère à tout moment sans se soucier du fait qu'elles soient concomitantes avec une opération d'écriture. Selon un autre aspect, il est proposé un système de détection d'une attaque par injection de faute dans des emplacements mémoires protégés comprenant : - des moyens d'élaboration configurés pour élaborer une valeur initiale d'une indication de référence comportant une application d'un opérateur mathématique inversible sur les valeurs des informations mémorisées dans lesdits emplacements mémoire, - des moyens de mise à jour configurés pour mettre à jour la valeur de cette indication de référence à chaque écriture dans au moins un emplacement mémoire en utilisant ledit opérateur, l'opérateur inverse et les valeurs desdites informations mémorisées dans ledit au moins un emplacement mémoire avant et après chaque écriture dans ledit au moins emplacement mémoire, et - des moyens de vérification configurés pour, en présence d'une requête, vérifier la satisfaction ou non par la valeur de l'indication de référence lors de la requête, d'un critère faisant intervenir au moins les valeurs des informations mémorisées dans lesdits emplacements mémoire lors de la requête et ledit opérateur ou son inverse. Selon un mode de réalisation, les moyens de mise à jour sont configurés pour: a) réaliser une première mise à jour de l'indication de référence comportant une application de l'opérateur inverse sur la valeur précédente de l'indication de référence et sur les valeurs desdites informations mémorisées dans ledit au moins un emplacement mémoire avant ladite opération d'écriture dans ledit au moins emplacement mémoire et b) pour réaliser une deuxième mise à jour de l'indication de référence comportant l'application de l'opérateur sur la valeur de l'indication de référence mise à jour à l'étape a) et sur les valeurs desdites informations mémorisées dans ledit au moins un emplacement mémoire postérieurement à ladite opération d'écriture dans ledit au moins emplacement mémoire. Selon un mode de réalisation, les moyens de vérification sont configurés pour appliquer ledit opérateur sur les valeurs des informations mémorisées dans tous les emplacements mémoire lors de la requête de façon à obtenir une valeur supplémentaire puis pour comparer cette valeur supplémentaire avec ladite valeur de l'indication de référence lors de la requête, et en cas de non satisfaction dudit critère c'est-à-dire si la valeur supplémentaire est différente de la valeur de l'indication de référence lors de la requête, les moyens de vérification sont configurés pour délivrer une indication représentative d'une attaque par injection de faute. Selon un mode de réalisation, les moyens de vérification sont configurés pour appliquer l'opérateur inverse sur ladite valeur de l'indication de référence lors de la requête et sur les valeurs des informations mémorisées dans tous les emplacements mémoire lors de la requête de façon à obtenir une valeur supplémentaire puis pour comparer cette valeur supplémentaire avec l'élément neutre de l'opérateur, et en cas de non satisfaction dudit critère c'est-à-dire si la valeur supplémentaire est différente de l'élément neutre de l'opérateur, les moyens de vérification sont configurés pour délivrer une indication représentative d'une attaque par injection de faute. Selon un mode de réalisation, le système comprend des moyens de contrôle configurés pour différer la vérification de la satisfaction du critère après une opération d'écriture et la mise à jour de l'indication de référence lorsque la vérification de la satisfaction du critère est concomitante avec une opération d'écriture. Selon un mode de réalisation, le système comprend des moyens de contrôle configurés pour suspendre l'opération d'écriture et pour différer ladite opération d'écriture et la mise à jour de l'indication de référence après la vérification de la satisfaction ou non du critère, lorsque la vérification de la satisfaction du critère est concomitante avec une opération d'écriture.
Selon un autre aspect, il est proposé un circuit intégré incorporant le système de détection tel que défini ci-avant. Selon encore un autre aspect, il est proposé une carte à puce comprenant un circuit intégré tel que défini ci-avant.
D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée de modes de mise en oeuvre et de réalisation, nullement limitatifs, et des dessins annexés sur lesquels : - les figures 1 à 3 illustrent schématiquement des modes de mise en oeuvre du procédé de détection d'injection de faute; - la figure 4 illustre un exemple de mise en oeuvre du procédé; - les figures 5 à 8 illustrent schématiquement des exemples de réalisation du système de détection selon l'invention. Sur la figure 1, sont représentées schématiquement, les principales étapes d'un mode de mise en oeuvre d'un procédé de détection d'injection de faute dans une mémoire par exemple une 20 mémoire de carte à puce. Dans un premier temps, une valeur initiale d'une indication de référence REF (0) est élaborée (étape 101). Cette élaboration est effectuée ici en appliquant un opérateur F sur les valeurs de tous les contenus des emplacements mémoire protégés MP (figure 2). 25 L'opérateur F est un opérateur qui associe à deux ou plusieurs nombres, par exemple hexadécimaux, un nombre par exemple hexadécimal. Cet opérateur F est associatif, commutatif et également inversible. 30 L'opérateur F-' est défini comme l'inverse de l'opérateur F. A titre d'exemple de réalisation, l'opérateur inverse F-' est un opérateur qui lorsqu'il est appliqué à deux nombres identiques délivre l'élément neutre de l'opérateur F. 15 Comme il est connu de l'homme du métier, l'élément neutre pour l'opérateur F est tel que l'opérateur appliqué à un nombre initial et à l'élément neutre donne pour résultat le nombre initial. A titre d'exemple de réalisation l'opérateur F et l'opérateur F-' sont respectivement l'addition et la soustraction ou encore, la multiplication et la division. La valeur 0 est l'élément neutre pour l'addition et la valeur 1 est l'élément neutre pour la multiplication. Dans la suite de la description, le cas de l'addition et la soustraction sera particulièrement illustré, cela étant l'invention peut être mise en oeuvre avec tout opérateur F inversible. Dans le cas de l'application de l'opérateur à un nombre de valeurs supérieur à 2, l'opérateur F ou F-' est appliqué au premier couple parmi les valeurs puis au prochain couple comprenant le résultat de l'opérateur appliqué au premier couple et la prochaine valeur et ainsi de suite. Si l'on se réfère de nouveau à la figure 1, on voit qu'à chaque écriture dans au moins un emplacement protégé, l'indication de référence REF (0) est mise à jour (étape 102). Enfin, lorsqu'une requête de vérification est émise, la vérification de la satisfaction d'un critère est réalisée (étape 103). Cette vérification fait intervenir les valeurs des emplacements mémoire protégés de la mémoire MEM et l'indication de référence mise à jour. Sur la figure 2, sont illustrées de manière plus précise, les étapes de la figure 1. La première étape 101, correspond comme indiqué précédemment à l'application sur l'ensemble des points mémoire MP de l'opérateur F de manière à obtenir une valeur initiale de l'indication de référence REF (0).
L'étape de mise à jour de l'indication de référence (étape 102) comprend deux sous étapes : -une première étape (étape 102a) de mise à jour qui fait intervenir la valeur avant écriture du ou des emplacements dans lequel on va écrire. Au cours de cette étape, l'opérateur F-' est appliqué à la valeur de référence précédente REF (i-1) et aux anciennes valeurs d'au moins un emplacement mémoire MPj dans lequel il va être écrit pour obtenir la valeur de référence en cours REF (i), -une deuxième étape (étape 102b) de mise à jour qui fait intervenir la valeur écrite dans le ou les emplacements. Au cours de cette étape, l'opérateur F est appliqué à la valeur de référence REF (i) et aux nouvelles valeurs d'au moins un emplacement mémoire MPj_new dans lequel il est écrit, pour obtenir une nouvelle valeur de référence REF (i+1).
Sur la figure 2, est également illustrée une variante de l'étape de vérification de satisfaction d'un critère. En présence d'une requête, au cours de l'étape 201, il est appliqué à l'ensemble des valeurs des points mémoires l'opérateur F pour obtenir une valeur supplémentaire VS. Cette valeur VS est alors comparée avec la dernière valeur de référence REF (n). Si le critère est satisfait alors le procédé ne détecte aucune injection de fautes (202). Si le critère n'est pas satisfait, le procédé détecte une injection de fautes (203).
Sur la figure 3, est illustrée une autre variante de l'étape de vérification de satisfaction d'un critère Selon cette variante, au cours de l'étape 301, il appliqué à l'indication de référence et à l'ensemble des valeurs des points mémoire l'opérateur inverse F-' pour obtenir une valeur supplémentaire VS. Cette valeur VS est alors comparée avec l'élément neutre. La figure 4 illustre un exemple de mise en oeuvre du procédé utilisant comme opérateur l'addition et opérateur inverse la soustraction, dans le cas d'une mémoire de trois octets contenant des nombres hexadécimaux. Deux tableaux sont représentés correspondant à deux cas différents, dans le premier tableau, il n'y a pas d'injection de faute, dans le deuxième tableau il y a une injection de faute qui va être détectée.
Chacun des tableaux comprend quatre colonnes, les trois premières colonnes correspondent aux valeurs dans chacun des trois octets de la mémoire et la quatrième colonne illustre la réalisation des étapes précédemment illustrées sur les trois octets.
Dans le premier tableau, à la première ligne, les valeurs des trois octets sont 03, 00, A2 au moment de l'élaboration de l'indication de référence. Cette étape d'élaboration (étape 101, figure 2) est réalisée en additionnant chacune des valeurs de l'ensemble des emplacements protégés de la mémoire, c'est-à-dire l'ensemble des valeurs des trois octets : 03+00+A2=A5. Puis à la deuxième ligne correspond un événement d'écriture dans l'octet 1. Au cours de cette écriture la valeur précédente de l'octet « 03 » est changée par la nouvelle valeur, « 66 ». Au cours de la première étape de mise à jour (étape 102a), à l'indication de référence est soustraite la valeur qui va être remplacée et l'indication de référence devient : « A5-03=A2 ». Au cours de la deuxième étape de mise à jour (étape 102b), à l'indication de référence mise à jour est ajoutée la valeur qui va être écrite et l'indication de référence devient : « A2+A66= 108 ».
A la troisième ligne, correspond un nouvel événement d'écriture, dans l'octet 2 cette fois. Au cours de cette écriture la valeur précédente de l'octet « 00 » est changée par la nouvelle valeur, « 12 ». Au cours de la première étape de mise à jour (étape 102a), à l'indication de référence est soustraite la valeur qui va être remplacée et l'indication de référence devient : « 108-00=108 ». Au cours de la deuxième étape de mise à jour (étape 102b), à l'indication de référence mise à jour est ajoutée la valeur qui va être écrite et l'indication de référence devient : « 108+12= 11A ». A la quatrième ligne du premier tableau, correspond l'étape 103 (figure 1). Au cours de cette étape il est soustrait à l'indication de référence « 1 lA » l'ensemble des valeurs des emplacements protégés « 11A-66-12-A2 », le résultat de cette opération est bien zéro ou l'élément neutre pour l'addition. On en déduit qu'il n'y a pas eu d'injection de faute.
Les lignes du deuxième tableau sont similaires : - la ligne 1 correspond au calcul de la valeur initiale de l'indication de référence avec les trois octets : « 03+00+A2=A5 », - la ligne 2 correspond à une injection de faute l'octet 1. Ainsi, la valeur change, elle passe de « 03 » à « 43 », mais ce changement n'est pas pris en compte pour la mise à jour de l'indication de référence car il n'y a pas d'instruction d'écriture, - la ligne 3 correspond à la mise à jour de l'indication de référence avec une écriture dans le premier octet. Au cours de cette écriture la valeur précédente de l'octet « 43 » est changée par la nouvelle valeur, « 66 ». Au cours de la première étape de mise à jour (étape 102a), à l'indication de référence est soustraite la valeur qui va être remplacé et l'indication de référence devient : « A5-43=62 ». Au cours de la deuxième étape de mise à jour (étape 102b), à l'indication de référence mise à jour est ajoutée la valeur qui va être écrite et l'indication de référence devient : « 62+66=C8 », - la ligne 4 correspond à un nouvel événement d'écriture, dans l'octet 2 cette fois. Au cours de cette écriture la valeur précédente de l'octet « 00 » est changée par la nouvelle valeur, « 12 ». Au cours de la première étape de mise à jour (étape 102a), à l'indication de référence est soustraite la valeur qui va être remplacée et l'indication de référence devient : « C8-00=C8 ». Au cours de la deuxième étape de mise à jour (étape 102b), à l'indication de référence mise à jour est ajoutée la valeur qui va être écrite et l'indication de référence devient : « C8+12= DA », - la ligne 5 correspond à l'étape 103 (figure 1). Au cours de cette étape il est soustrait à l'indication de référence « DA » l'ensemble des valeurs des emplacements protégées « DA-66-12-A2 », le résultat de cette opération n'est pas zéro, on en déduit qu'il y a eu injection de faute. Avec cet exemple, il est mis en évidence que malgré une écriture régulière dans l'octet dans lequel une faute a préalablement été injectée, l'injection de faute est détectée.
La figure 5 illustre l'architecture d'un système selon la variante dont le procédé est illustré en figure 2. Le système de détection 500 est relié à une mémoire MEM dont les emplacements sont protégés.
Le système de détection comprend des moyens MF, MF-1, MUX et RG1 configurés pour réaliser le calcul de l'indication de référence initiale REF (0) et pour procéder à sa mise à jour grâce aux moyens de contrôle MC. Plus précisément, lors de l'étape 101, l'opérateur MF (ici un additionneur) est appliqué à l'ensemble des valeurs des points mémoire. Pour cela, il accède aux emplacements mémoires via par exemple le branchement 502 et le bus BD. Lors de l'étape 102a, l'opérateur MF-' (ici un soustracteur) est appliqué à la valeur de référence REF stockée dans le registre RG1 et aux valeurs MPj des emplacements dans lesquels il va être écrit. Pour cela l'opérateur MF-' accède aux emplacements mémoires via par exemple le branchement 501 et le bus BD. Lors de l'étape 102b, l'opérateur MF est appliqué à la nouvelle valeur de référence stockée dans le registre RG1 et aux nouvelles MPj_new des emplacements dans lesquels il est écrit. Pour cela l'opérateur MF accède à ces informations en se branchant via le branchement 502 sur le bus BD. Les moyens de contrôle MC permettent via l'information SC1 l'activation de l'entrée adéquate à chaque étape de mise à jour du multiplexeur. La figure 5 illustre également des moyens de comparaison COMP et un registre RG2 qui permettent de tester en présence d'une requête si un critère est satisfait par les valeurs des emplacements mémoire et la référence stockée dans le registre RG1.
Plus précisément, lors de l'émission d'une requête, sous le contrôle des moyens de contrôle MC, l'opérateur MF est appliqué à l'ensemble des valeurs des points mémoire pour obtenir une valeur supplémentaire VS qui est stockée dans le registre RG2.
Puis cette valeur est comparée avec la valeur de référence stockée dans le registre RG1 lors de ladite requête. Les moyens de contrôle MC sont également utilisés lorsque une opération d'écriture est concomitante avec une requête de vérification.
Dans ce cas, ils peuvent : - selon une première alternative différer la vérification de la satisfaction du critère après l'écriture et la mise à jour de l'indication de référence (le comparateur CMP est inhibé par le signal SC2), - selon une deuxième alternative les moyens de contrôle MC peuvent via le signal SC2 différer l'opération d'écriture dans la mémoire MEM et la mise à jour de l'indication de référence après la vérification de la satisfaction ou non du critère. La figure 6 illustre en plus des moyens identiques à ceux déjà cités, des moyens de comparaison COMP, RG2 et RG3 selon la variante dont le procédé est illustré en figure 3. Plus précisément, lors de l'émission d'une requête, sous le contrôle des moyens de contrôle MC, l'opérateur MF-' est appliqué à la valeur REF stockée dans RG1 et à l'ensemble des valeurs des points mémoire pour obtenir une valeur supplémentaire VS qui est stockée dans le registre RG2. Puis cette valeur est comparée avec la valeur de l'élément neutre (O pour l'addition) stockée dans le registre RG3. Le registre RG2 est optionnel dans le cas où postérieurement à ladite requête on n'a plus besoin de mettre à jour la référence REF.
C'est le cas par exemple lorsqu'une seule requête est émise à la fin de des opérations d'écriture dans la mémoire. Dans ce cas ladite valeur supplémentaire VS est stockée dans le registre RG1 pour être comparée avec l'élément neutre. A titre d'exemple de réalisation, les moyens de contrôle MC sont implémentés dans un processeur. La figure 7 illustre un exemple de circuit électronique 700 comportant un système de détection 500 ou 600.

Claims (18)

  1. REVENDICATIONS1. Procédé de détection d'une attaque par injection de faute dans des emplacements mémoires comprenant : - une élaboration (101) d'une valeur initiale d'une indication de référence (REF (0)) comportant une application d'un opérateur mathématique inversible sur les valeurs des informations mémorisées dans lesdits emplacements mémoire, - une mise à jour (102) de la valeur de cette indication de référence à chaque écriture dans au moins un emplacement mémoire en utilisant ledit opérateur, l'opérateur inverse et les valeurs desdites informations mémorisées dans ledit au moins un emplacement mémoire avant et après chaque écriture dans ledit au moins emplacement mémoire, et - en présence d'une requête, la vérification de la satisfaction (103) ou non par la valeur de l'indication de référence (REF (n)) lors de la requête, d'un critère faisant intervenir les valeurs des informations mémorisées dans lesdits emplacements mémoire lors de la requête et ledit opérateur ou son inverse.
  2. 2. Procédé de détection selon la revendication 1 dans lequel l'étape de mise à jour comprend : a) une première mise à jour (102a) de l'indication de référence comportant une application de l'opérateur inverse sur la valeur précédente de l'indication de référence et sur les valeurs desdites informations mémorisées avant ladite opération d'écriture dans ledit au moins emplacement mémoire, b) une deuxième mise à jour (102b) de l'indication de référence comportant l'application de l'opérateur sur la valeur de l'indication de référence mise à jour à l'étape a) et sur les valeurs desdites informations mémorisées dans ledit au moins un emplacement mémoire postérieurement à ladite opération d'écriture dans ledit au moins emplacement mémoire.
  3. 3. Procédé selon la revendication 1 ou 2, dans lequel le critère comprend une application dudit opérateur (201) sur les valeurs desinformations mémorisées dans tous les emplacements mémoire (MP) lors de la requête de façon à obtenir une valeur supplémentaire (VS) puis une comparaison (201) de cette valeur supplémentaire avec ladite valeur de l'indication de référence (REF(n)) lors de la requête, et ledit critère est déclaré non satisfait, correspondant à la détection d'une attaque par injection de faute, si la valeur supplémentaire (VS) est différente de la valeur de l'indication de référence lors de la requête.
  4. 4. Procédé selon la revendication 1 ou 2, dans lequel le critère comprend une application de l'opérateur inverse (301) sur ladite valeur de l'indication de référence (REF(n)) lors de la requête et sur les valeurs des informations mémorisées dans tous les emplacements mémoire (MP) lors de la requête de façon à obtenir une valeur supplémentaire puis une comparaison (301) de cette valeur supplémentaire (VS) avec l'élément neutre de l'opérateur et ledit critère est déclaré non satisfait, correspondant à la détection d'une attaque par injection de faute, si la valeur supplémentaire (VS) est différente de l'élément neutre pour l'opérateur.
  5. 5. Procédé de détection selon l'une des revendications précédentes, dans lequel l'opérateur est un opérateur associatif et commutatif.
  6. 6. Procédé de détection selon l'une des revendications précédentes, dans lequel l'opérateur est l'addition et l'opérateur inverse est la soustraction.
  7. 7. Procédé de détection selon l'une des revendications précédentes dans lequel lorsque la vérification de la satisfaction du critère est concomitante avec une opération d'écriture, on vérifie la satisfaction du critère après l'écriture et la mise à jour de l'indication de référence.
  8. 8. Procédé de détection selon l'une des revendications 1 à 6 dans lequel lorsque la vérification de la satisfaction du critère est concomitante avec une opération d'écriture, on suspend l'opération d'écriture que l'on réalise après la vérification de la satisfaction ou non du critère.
  9. 9. Système de détection (500, 600) d'une attaque par injection de faute dans des emplacements mémoires protégés (MEM) comprenant : - des moyens d'élaboration configurés pour élaborer (101) une valeur initiale d'une indication de référence (REF (0)) comportant une application d'un opérateur mathématique inversible sur les valeurs des informations mémorisées dans lesdits emplacements mémoire, - des moyens de mise à jour configurés pour mettre à jour (102) la valeur de cette indication de référence à chaque écriture dans au moins un emplacement mémoire en utilisant ledit opérateur, l'opérateur inverse et les valeurs desdites informations mémorisées dans ledit au moins un emplacement mémoire avant et après chaque écriture dans ledit au moins emplacement mémoire, et - des moyens de vérification configurés pour, en présence d'une requête, vérifier la satisfaction (103) ou non par la valeur de l'indication de référence (REF (n)) lors de la requête, d'un critère faisant intervenir les valeurs des informations mémorisées dans lesdits emplacements mémoire lors de la requête et ledit opérateur ou son inverse.
  10. 10. Système de détection selon la revendication 9 dans lequel les moyens de mise à jour sont configurés pour : a) réaliser une première mise à jour (102a) de l'indication de référence comportant une application de l'opérateur inverse sur la valeur précédente de l'indication de référence et sur les valeurs desdites informations mémorisées dans ledit au moins un emplacement mémoire avant ladite opération d'écriture dans ledit au moins emplacement mémoire, et b) pour réaliser une deuxième mise à jour (102b) de l'indication de référence comportant l'application de l'opérateur sur la valeur de l'indication de référence mise à jour à l'étape a) et sur les valeurs desdites informations mémorisées dans ledit au moins un emplacement mémoire postérieurement à ladite opération d'écriture dans ledit au moins emplacement mémoire.
  11. 11. Système de détection selon la revendication 9 ou 10, dans lequel les moyens de vérification sont configurés pour appliquer ledit opérateur (201) sur les valeurs des informations mémorisées dans tous les emplacements mémoire (MP) lors de la requête de façon à obtenir une valeur supplémentaire (VS) puis pour comparer (201) cette valeur supplémentaire avec ladite valeur de l'indication de référence lors de la requête, et en cas de non satisfaction dudit critère c'est-à-dire si la valeur supplémentaire est différente de la valeur de l'indication de référence lors de la requête, les moyens de vérification sont configurés pour délivrer une indication représentative d'une attaque par injection de faute.
  12. 12. Système de détection selon la revendication 9 ou 10, dans lequel les moyens de vérification sont configurés pour appliquer l'opérateur inverse (301) sur ladite valeur de l'indication de référence lors de la requête et sur les valeurs des informations mémorisées dans tous les emplacements mémoire lors de la requête de façon à obtenir une valeur supplémentaire (VS) puis pour comparer (301) cette valeur supplémentaire avec l'élément neutre de l'opérateur, et en cas de non satisfaction dudit critère c'est-à-dire si la valeur supplémentaire est différente de l'élément neutre pour l'opérateur, les moyens de vérification sont configurés pour délivrer une indication représentative d'une attaque par injection de faute.
  13. 13. Système de détection selon l'une quelconque des revendications 9 à 12, dans lequel l'opérateur est un opérateur associatif et commutatif.
  14. 14. Système de détection selon l'une quelconque des revendications 9 à 13, dans lequel l'opérateur est l'addition et l'opérateur inverse est la soustraction.
  15. 15. Système de détection selon l'une quelconque des revendications 9 à 14, comprenant des moyens de contrôle (MC) configurés pour différer la vérification de la satisfaction du critère après une opération d'écriture et la mise à jour de l'indication de référence lorsque la vérification de la satisfaction du critère est concomitante avec une opération d'écriture.
  16. 16. Système de détection selon l'une quelconque des revendications 9 à 14, comprenant des moyens de contrôle (MC) configurés pour suspendre l'opération d'écriture et pour différer ladite opération d'écriture et la mise à jour de l'indication de référence après la vérification de la satisfaction ou non du critère, lorsque la vérification de la satisfaction du critère est concomitante avec une opération d'écriture.
  17. 17. Circuit intégré (700) comprenant le système de détection (500, 600) selon l'une des revendications 9 à 16.
  18. 18. Carte à puce (800) comprenant le circuit intégré (700) selon la revendication 17.
FR1055928A 2010-07-21 2010-07-21 Procédé de détection d'une attaque par injection de faute dans un dispositif de mémoire, et système de détection correspondant Expired - Fee Related FR2963128B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1055928A FR2963128B1 (fr) 2010-07-21 2010-07-21 Procédé de détection d'une attaque par injection de faute dans un dispositif de mémoire, et système de détection correspondant
US13/184,779 US8484731B2 (en) 2010-07-21 2011-07-18 Method for detecting an attack by fault injection into a memory device, and corresponding detection system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1055928A FR2963128B1 (fr) 2010-07-21 2010-07-21 Procédé de détection d'une attaque par injection de faute dans un dispositif de mémoire, et système de détection correspondant

Publications (2)

Publication Number Publication Date
FR2963128A1 true FR2963128A1 (fr) 2012-01-27
FR2963128B1 FR2963128B1 (fr) 2012-08-31

Family

ID=43661877

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1055928A Expired - Fee Related FR2963128B1 (fr) 2010-07-21 2010-07-21 Procédé de détection d'une attaque par injection de faute dans un dispositif de mémoire, et système de détection correspondant

Country Status (2)

Country Link
US (1) US8484731B2 (fr)
FR (1) FR2963128B1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12032684B2 (en) 2022-01-14 2024-07-09 Nxp B.V. Method for detecting a fault injection in a data processing system

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3005179B1 (fr) * 2013-04-25 2015-05-15 Oberthur Technologies Procede et systeme de simulation des effets d'une attaque sur un code informatique
CN106161391B (zh) * 2015-04-17 2020-10-23 国民技术股份有限公司 一种安全芯片及其对错误注入攻击的防御方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030106942A1 (en) * 2001-12-11 2003-06-12 Matsushita Electric Industrial Co., Ltd. IC card and data processing method therefor

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1912148A1 (fr) * 2006-10-09 2008-04-16 Axalto S.A. Protection contre une attaque par canal latéral avec contrôle d'intégrité

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030106942A1 (en) * 2001-12-11 2003-06-12 Matsushita Electric Industrial Co., Ltd. IC card and data processing method therefor

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANDREW TRIDELL ET AL: "The rsync algorithm", INTERNET CITATION, 9 November 1998 (1998-11-09), XP002199793, Retrieved from the Internet <URL:http://samba.anu.edu.au/rsync/tech_report/tech_report.html> [retrieved on 20020523] *
HAGAI BAR-EL ET AL: "The Sorcerer's Apprentice Guide to Fault Attacks", INTERNET CITATION, 7 May 2004 (2004-05-07), XP002329915, Retrieved from the Internet <URL:http://web.archive.org/web/20041016071838/eprint.iacr.org/2004/100> [retrieved on 20050527] *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12032684B2 (en) 2022-01-14 2024-07-09 Nxp B.V. Method for detecting a fault injection in a data processing system

Also Published As

Publication number Publication date
US8484731B2 (en) 2013-07-09
FR2963128B1 (fr) 2012-08-31
US20120023580A1 (en) 2012-01-26

Similar Documents

Publication Publication Date Title
US10430583B2 (en) Systems and methods to detect and neutralize malware infected electronic communications
CN106302337B (zh) 漏洞检测方法和装置
US8997253B2 (en) Method and system for preventing browser-based abuse
US8856937B1 (en) Methods and systems for identifying fraudulent websites
US11216555B2 (en) System and method of providing a set of convolutions to a computing device for detecting anomalous events
US9230111B1 (en) Systems and methods for protecting document files from macro threats
CN110490773B (zh) 一种基于区块链的录屏取证方法、装置及电子设备
US9426175B2 (en) Rendered image collection of potentially malicious web pages
US20200074087A1 (en) Detection of second order vulnerabilities in web services
CA2575143C (fr) Procede et dispositif de traitement de donnees
FR2941312A1 (fr) Procede de securisation d&#39;interface entre un utilisateur et une application, systeme, terminal et produit programme d&#39;ordinateur correspondants.
EP1983436B1 (fr) Contrôle d&#39;intégrité d&#39;une mémoire externe à un processeur
US9519780B1 (en) Systems and methods for identifying malware
FR2963128A1 (fr) Procédé de détection d&#39;une attaque par injection de faute dans un dispositif de mémoire, et système de détection correspondant
FR2889005A1 (fr) Integrite materielle permanente des donnees
US11157281B2 (en) Prefetching data based on register-activity patterns
US20100318629A1 (en) Altering Software Behavior Based on Internet Connectivity
EP2860660A1 (fr) Système et méthode de chargement sécurisé de données dans une mémoire cache associée à un processeur sécurisé
EP3032451B1 (fr) Procédé d&#39;exécution d&#39;un programme par un processeur et entité électronique comportant un tel processeur
EP2229648B1 (fr) Methode de transfert securise de donnees
EP2043017A1 (fr) Procédé d&#39;exécution sécurisée d&#39;une application
CN115296821B (zh) 一种用于数字藏品管理的数据处理系统
FR3137988A1 (fr) Procédé et circuit pour la vérification de l’intégrité d’un logiciel
FR3035984A1 (fr) Procede de detection d&#39;un logiciel malveillant
CN117113437B (zh) 一种文件篡改检测方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20150331