Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SECURED ELECTRONIC SYSTEMS, SECURING METHODS AND USES OF SUCH SYSTEMS
Document Type and Number:
WIPO Patent Application WO/2008/096076
Kind Code:
A3
Abstract:
The invention relates to an electronic system including a processor and a computer data storage memory, to a securing method, and to the use of such a system. The system of the invention is characterised in that it further comprises a module for allocating physical writing addresses of such data in the memory, said module being capable of allocating said addresses according to a variant-diversified heuristic. The invention can particularly be used for securing onboard systems made in series against hardware or software attacks.

Inventors:
HAMEAUX PATRICE (FR)
PHAN GUILLAUME (FR)
MESNIL CEDRIC (FR)
APVRILLE AXELLE (FR)
Application Number:
PCT/FR2007/002152
Publication Date:
October 02, 2008
Filing Date:
December 21, 2007
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
TRUSTED LOGIC (FR)
HAMEAUX PATRICE (FR)
PHAN GUILLAUME (FR)
MESNIL CEDRIC (FR)
APVRILLE AXELLE (FR)
International Classes:
G06F12/14; G06F21/72; G06F21/77; G06F21/79
Domestic Patent References:
WO1997033217A11997-09-12
Foreign References:
US6408073B12002-06-18
US20050251695A12005-11-10
US20050008150A12005-01-13
Attorney, Agent or Firm:
MACQUET, Christophe (Arche des Dolines7 rue Soutrane, Sophia-Antipolis, FR)
Download PDF:
Claims:

REVENDICATIONS

1. Système électronique muni d'un processeur et d'une mémoire de stockage de données informatiques, caractérisé en ce qu' il comporte en outre un module d'allocation des adresses physiques d'écriture de telles données dans ladite mémoire, ledit module étant apte à allouer lesdites adresses selon une heuristique diversifiée par un variant.

2. Système selon la revendication 1, caractérisé en ce qu'il comporte en outre un module de gestion des accès aux données contenues dans la mémoire et en ce que ledit module de gestion des accès est corrélé au module d'allocation.

3. Système selon l'une des revendications 1 ou 2 , caractérisé en ce qu'il est produit en séries de systèmes identiques.

4. Système selon la revendication 3, en ce que le variant est une donnée unique à chaque système d'une série de systèmes identiques.

5. Système selon la revendication 4, caractérisé en ce que le variant est un identifiant de puce.

6. Système selon l'une des revendications 1, 2 ou 3 , caractérisé en ce que le variant est une donnée variable dans le système .

7. Système selon la revendication 6, caractérisé en ce que le variant est la valeur courante d'un compteur monotone ou l'heure courante d'une horloge interne au système ou fournie par un signal horloge externe.

8. Système selon l'une des revendications 4 ou 6, caractérisé en ce que le variant est aléatoire ou pseudoaléatoire .

9. Système selon l'une des revendications précédentes, caractérisé en ce que le variant n'est pas modifiable dans le système ou l'intégrité du variant est protégée .

10. Système selon l'une des revendications précédentes, caractérisé en ce que le variant est contenu chiffré dans le système.

11. Système selon l'une des revendications précédentes, caractérisé en ce que l'heuristique d'allocation des adresses est en outre diversifiée selon un ou une pluralité de facteurs comportementaux du système .

12. Système selon la revendication 11, caractérisé en ce que les facteurs comportementaux sont des états du cycle de vie du système.

13. Système selon l'une des revendications 11 ou 12, caractérisé en ce que les facteurs comportementaux sont issus d'informations externes transmise au système.

14. Système selon l'une des revendications précédentes, caractérisé en ce que l'heuristique d'allocation des adresses est diversifiée par un variant uniquement dans un ou une pluralité d'états spécifiques persistants ou transitoires du système.

15. Système selon l'une des revendications précédentes, caractérisé en ce que l'heuristique d'allocation des adresses est calculée à partir d'un algorithme déterministe dépendant du variant.

16. Système selon la revendication 15, caractérisé en ce que cet algorithme est une fonction à sens unique.

17. Système selon l'une des revendications précédentes, caractérisé en ce qu'il manipule des adresses logiques et en ce que, pour l'accès aux adresses physiques, le module de gestion des accès utilise une table d'adressage ou un algorithme dépendant du variant.

18. Système selon l'une des revendications précédentes, caractérisé en ce qu'il est embarqué.

19. Système selon l'une des revendications précédentes, caractérisé en ce que la mémoire est une mémoire persistante du système.

20. Procédé de sécurisation d'un système électronique muni d'un processeur et d'une mémoire de stockage de données informatiques, caractérisé en ce que ledit système comporte un module d'allocation des adresses physiques d'écriture de telles données dans ladite mémoire et en ce que ledit module alloue lesdites adresses selon une heuristique diversifiée par un variant .

21. Utilisation d'un procédé selon la revendication 20 pour la sécurisation d'un système électronique selon l'une des revendications 1 à 19 contre des attaques logicielles et matérielles.

22. Utilisation selon la revendication 21, caractérisée en ce que l'attaque est une attaque procédant par clonage.

Description:

SYSTEMES ELECTRONIQUES SECURISES, PROCEDES DE SECURISATION ET UTILISATIONS DE TELS SYSTEMES

L'invention concerne des systèmes électroniques notamment embarqués munis d'un processeur et d'une mémoire de stockage de données informatiques, des procédés de sécurisation ainsi que des utilisations de tels systèmes. Les systèmes de l'invention sont plus particulièrement des systèmes embarqués portatifs fabriqués en grandes séries de systèmes identiques. Il s'agit par exemple de cartes à puce, y compris de modules d'identification abonnés (SIMs), ou de plates-formes électroniques pour des téléphones portables ou autres dispositifs électroniques de dimensions réduites.

Les systèmes électroniques de l'état de la technique et, notamment, les systèmes électroniques embarqués, sont susceptibles d'être attaqués tant au niveau logiciel qu'au niveau matériel.

Les attaques logicielles connues sont extrêmement variées et mettent en œuvre, par exemple, des virus, des injections de code malicieux, des méthodes de débordement de mémoire ou des techniques de désassemblage . Ces attaques font régulièrement la une des magazines spécialisés en informatique. Elles sont, pour la plupart, relativement simples à coder. En outre, leurs coûts de mise œuvre sont généralement réduits, ce qui explique leur profusion. Bien entendu, ces attaques font l'objet du développement d'une multitude de systèmes de protection, bien souvent eux-mêmes logiciels, quelquefois matériels, et dont l'efficacité est variable.

Les attaques matérielles sont, quant à elles, bien moins variées que les attaques logicielles. Elles sont en outre plus difficiles à mettre en œuvre et nécessitent généralement la mise en œuvre d'équipements coûteux. Il s'agit, par exemple, des attaques procédant par analyse de la consommation de courant des systèmes, par analyse

des variations de rayonnement électromagnétique, par injection de fautes, ou des attaques procédant par clonage. Les attaques matérielles sont redoutables en termes de sécurité et, dans certains cas, on ne leur connaît pas de parade totalement efficace, mais plutôt une succession de procédés de secours imparfaits. Ainsi, dans le cas des attaques simples ou différentielles procédant par analyse du courant consommé par le microcontrôleur d'une carte à puce, on utilise des capteurs de voltage, de température, des sources de bruit parasite ou des bus d'adresses ou de données dupliqués. Toutefois, aucune de ces solutions n'est parfaite et ce, bien que chacune d'elles soit coûteuse au niveau silicium et présente un impact négatif sur les performances d'ensemble du système.

Les attaques logicielles et matérielles, lorsqu'elles sont immédiatement reproductibles à grande échelle, sont la cause de préjudices considérables pour les concepteurs des systèmes électroniques embarqués. Leurs conséquences sont susceptibles d'être désastreuses, tant au niveau financier qu'au niveau de l'image desdits concepteurs .

Compte tenu de ce qui précède, un problème que se propose de résoudre l'invention est de réaliser un système électronique, qui présente une sécurité accrue face aux attaques logicielles et matérielles, et notamment une sécurité accrue face à la reproductibilité de telles attaques, susceptibles d'être menées à grande échelle . La solution de l'invention à ce problème a pour premier objet un système électronique muni d'un processeur et d'une mémoire de stockage de données informatiques, caractérisé en ce qu'il comporte un module d'allocation des adresses physiques d'écriture de telles données dans ladite mémoire, ledit module étant apte à allouer lesdites adresses selon une heuristique diversifiée par un variant.

En outre, elle a pour second objet un procédé de sécurisation d'un système électronique muni d'un processeur et d'une mémoire de stockage de données informatiques, caractérisé en ce que ledit système comporte un module d'allocation des adresses physiques d'écriture de telles données dans ladite mémoire et en ce que ledit module alloue lesdites adresses selon une heuristique diversifiée par un variant.

Enfin, elle a pour troisième objet une utilisation d'un procédé tel que défini ci-dessus pour la sécurisation d'un système électronique contre des attaques logicielles et matérielles.

Ainsi, un attaquant ne peut en aucun cas s'attendre à trouver des données informatiques dans un emplacement physique déterminé au sein de la mémoire d'un système sécurisé selon l'invention. Il doit prendre en compte le fait que l'emplacement de ces données ciblées est différent sur chaque système, même s'il s'agit d'un système d'un modèle identique. Or, pour ce qui est des attaques matérielles, l'emplacement physique des données à protéger est une information importante, à la fois pour cibler une attaque sur le silicium, mais aussi pour déterminer les conséquences de la prise en compte de ces données lors du fonctionnement du système, la signature électromagnétique de l'utilisation d'une donnée dépendant en général de sa position physique dans le silicium. De même, pour ce qui est des attaques logicielles, l'emplacement des données à protéger est également une information importante car, suivant cet emplacement, un attaquant n'a pas accès aux mêmes données sur la pile, sur le tas, ou n'est pas en espace exécutable.

De manière avantageuse : - le système comporte en outre un module de gestion des accès aux données contenues dans la mémoire et ledit module de gestion des accès est corrélé au module d'allocation ; - le système est produit en séries de systèmes identiques ; - le variant est une donnée unique à chaque système d'une

série de systèmes identiques ; - le variant est un identifiant de puce ; - le variant est une donnée variable dans le système ; - le variant est la valeur courante d'un compteur monotone ou l'heure courante d'une horloge interne au système ou fournie par un signal horloge externe ; - le variant est aléatoire ou pseudoaléatoire ; - le variant n'est pas modifiable dans le système ou l'intégrité du variant est protégée ; - le variant est contenu chiffré dans le système ; l'heuristique d'allocation des adresses est en outre diversifiée selon un ou une pluralité de facteurs comportementaux du système ; - les facteurs comportementaux sont des états du cycle de vie du système ; - les facteurs comportementaux sont issus d' informations externes transmise au système ; l'heuristique d'allocation des adresses est diversifiée par un variant uniquement dans un ou une pluralité d'états spécifiques persistants ou transitoires du système ; - l'heuristique d'allocation des adresses est calculée à partir d'un algorithme déterministe dépendant du variant ; - l'algorithme est une fonction à sens unique ; - le système manipule des adresses logiques et en ce que, pour l'accès aux adresses physiques, le module de gestion des accès utilise une table d'adressage ou un algorithme dépendant du variant ; - le système est embarqué ; et - la mémoire est une mémoire persistante du système .

L'invention sera mieux comprise à la lecture de l'exposé qui va suivre de modes de réalisation non limitatifs, dans lesquels la figure 1 est une représentation schématique d'un système selon 1' invention.

Les systèmes sécurisés selon l'invention sont des systèmes électroniques, par exemple du type embarqués, munis d'un processeur et d'une mémoire de stockage de données informatiques. De tels systèmes sont notamment des systèmes portatifs fabriqués en grandes séries tels

que des cartes à puce, y compris les modules d'identification abonnés (SIMs), ou tels que des plates- formes électroniques pour des téléphones portables ou autres dispositifs électroniques de dimensions réduites. Le processeur est un microprocesseur ou un microcontrôleur. La mémoire de stockage est avantageusement une mémoire persistante en lecture seule (ROM) par exemple de type PROM (programmable) , NVRAM (mémoire vive non volatile) par exemple de type EEPROM (électriquement effaçable programmable) ou Flash, ou alors, éventuellement, une mémoire vive (RAM) par exemple de type SRAM (statique) ou DRAM (dynamique) .

Les systèmes selon l'invention comportent également un module d'allocation des adresses d'écriture des données informatiques dans la mémoire de stockage. Ce module est invoqué chaque fois qu'il est nécessaire d'allouer une zone mémoire, et par suite une ou plusieurs adresses physiques, pour l'écriture de nouvelles données, c'est-à-dire pour la programmation de la mémoire. Ce module est une entité matérielle ou logicielle. Il est corrélé à un module de gestion des accès mémoire destiné à gérer les accès notamment en lecture des données écrites, et dont les emplacements physiques dans la mémoire ont été alloués par le module d'allocation. Ce module de gestion des accès mémoire permet, le cas échéant, d'associer les emplacements logiques des données à leurs emplacements physiques. De même que le module d'allocation, le module de gestion des accès mémoire forme une entité matérielle ou logicielle. Dans le cas où il forme une entité matérielle, il s'agit de la MMU

(unité de gestion de mémoire) . Dans le cas où il forme une entité logicielle, il s'agit d'un algorithme logiciel. Dans la suite du présent exposé de l'invention, l'ensemble formé par le module d'allocation mémoire et le module de gestion mémoire, tel que schématisé à la figure 1, est appelé MAA (Module d'Accès et d'Allocation mémoire) .

Selon l'invention, pour l'écriture de données informatiques dans une mémoire de stockage, le MAA est apte à allouer des adresses et, en particulier, des adresses physiques de cette mémoire, selon une heuristique diversifiée par un variant. L'heuristique d'allocation s'applique aux pages ou aux zones mémoire qui relèvent d'un processus déterminé, ou alors, à toutes les pages de la mémoire. Il s'agit donc d'une allocation locale ou d'une allocation globale. Les adresses allouées sont effectivement des adresses physiques correspondant à des emplacements physiques en mémoire persistante du système selon l'invention. Il ne s'agit pas d'adresses logiques. De ce fait, contrairement aux éléments de sécurité qui semblent avoir été implémentés dans certaines versions de 1 ' environnement/système d'exploitation Windows™ Vista™ dédiées aux ordinateurs personnels et non pas aux systèmes embarqués portatifs, le système selon 1 ' invention permet non seulement de compliquer les attaques logicielles, mais aussi, et surtout, les attaques physiques menées à grande échelle. Par ailleurs, le système permet une protection des données elles-mêmes et, non pas uniquement, comme dans la version précitée de l'environnement Windows™, l'exécution de programmes contre des attaques procédant par débordement de pile.

Le variant est une donnée variable d'un système considéré par rapport à d'autres systèmes identiques d'une même série et/ou une donnée variable dans un même système considéré, au cours du temps. On entend ici par systèmes identiques, des systèmes qui présentent des caractéristiques et fonctionnalités comparables et destinés à des usages similaires, par exemple le même modèle de plate- forme de téléphone portable.

Dans un premier exemple, le variant est une donnée unique au système, notamment un identifiant de puce. L'heuristique d'allocation mémoire est alors spécifique

d'un système considéré dans une série de systèmes identiques.

Dans un deuxième exemple, le variant est la valeur courante d'un compteur monotone ou l'heure courante d'une horloge interne au système ou fournie par un signal horloge externe. Dans ce cas, l'heuristique d'allocation varie dans le temps, pour un même système.

Dans un troisième exemple, le variant est un nombre aléatoire ou pseudo-aléatoire généré par le système, préférentiellement selon un algorithme sécurisé. Ce nombre peut être généré une fois pour toute dans un système considéré ou généré à différentes reprises. Dans le cas où il est généré une fois pour toute, l'heuristique d'allocation mémoire sera alors différente dans des systèmes identiques d'une même série mais elle sera toujours identique dans un même système. Dans le cas où ce nombre n'est pas généré une fois pour toute dans un système considéré, l'heuristique d'allocation mémoire variera dans ce système, au cours du temps. Bien entendu, le variant selon l'invention peut être une donnée variable complexe fonction de plusieurs variants unitaires. Il peut s'agir, par exemple, d'une donnée variable fonction à la fois d'un identifiant de puce selon le premier exemple précité et d'un signal d'horloge selon le deuxième exemple précité.

En pratique, le degré de sécurisation d'un système selon l'invention est proportionnel à la variabilité du variant, notamment lorsqu'on doit faire face à des risques de clonages de ce système. Ainsi, si chaque exemplaire d'une série de systèmes peut être identifié par un identifiant unique, cet identifiant peut effectivement être utilisé seul comme variant. Toutefois, ce choix présente l'inconvénient d'être, dans une certaine mesure, prédictible. Aussi, on choisira ou combinera avantageusement des variants ayant une variabilité plus forte, tel que celle des nombres aléatoires ou pseudo-aléatoires. Ces variants présentent

l'avantage de ne pas être prédictibles, ce qui accroît sensiblement le degré de sécurisation des systèmes selon l' invention.

Selon l'invention, le variant est avantageusement sécurisé dans le système. Dans certains modes de réalisation, il est non-modifiable ou protégé en intégrité. Dans d'autres modes de réalisation, il est rendu confidentiel.

Dans le cas où le variant est non-modifiable ou protégé en intégrité, il est inscrit en mémoire ROM du système pendant sa production, ou alors, en mémoire programmable du type PROM ou EPROM à écriture unique, ou encore, dans une mémoire programmable de type à écritures multiples. Dans cette dernière variante de réalisation, il est alors contrôlé en intégrité à chaque accès mémoire ou à certaines occasions.

Dans le cas où le variant est rendu confidentiel, il est avantageusement chiffré dans le système et conservé secret par celui-ci, ou alors, transmis au système par le biais d'un canal sécurisé préservant la confidentialité et conservé secret .

En outre, selon l'invention, et ainsi que cela est schématisé en figure 1, pour l'écriture de données informatiques dans une mémoire de stockage, le MAA est apte à allouer des adresses physiques de cette mémoire selon une heuristique diversifiée selon des facteurs comportementaux du système, ces facteurs définissant différents comportements du MAA : comportement 1, comportement 2, ..., comportement n. Dans un premier exemple, les facteurs comportementaux sont des conditions internes connues des systèmes. Ainsi, l'heuristique d'allocation mémoire utilisée par le MAA peut ou non faire intervenir un variant suivant que le système est dans un état spécifique. Cet état spécifique peut être un état persistant du système. Il s'agit alors notamment, d'un état spécifique du cycle de vie du système tel qu'une

phase de personnalisation, une phase de production ou d'utilisation normale du système par exemple dans un état dégradé ou non-fonctionnel, un état seuil ou un état de correction de fautes (debugging) . Cet état spécifique peut être un état transitoire du système. Il s'agit alors par exemple de l'ouverture d'une section sécurisée d'un programme mis en œuvre par le système ou de phases critiques de son fonctionnement telles que le redémarrage ou son arrêt . Dans un second exemple, les facteurs comportementaux sont issus d' informations externes transmises aux systèmes. Ainsi, l'heuristique d'allocation mémoire utilisée par le MAA peut ou non faire intervenir le variant lorsque cela est demandé explicitement par un utilisateur externe du système - homme ou machine - par le biais d'indications transmises au système.

Dans un troisième exemple, les facteurs comportementaux découlent du type de mémoire concerné par l'allocation. Ainsi, l'heuristique d'allocation mémoire utilisée par le MAA peut ou non faire intervenir le variant suivant le type de mémoire programmable visé par l' allocation.

Enfin, dans un quatrième exemple, les facteurs comportementaux sont des données temporelles. Ainsi, l'heuristique d'allocation mémoire utilisée par le MAA peut ou non faire intervenir le variant suivant que l'on se trouve ou non à un moment spécifique dans le temps.

Les exemples de réalisation ci-après concernent l'heuristique mise en œuvre par le MAA, pour l'écriture de données diversifiées par un variant et, éventuellement, par des facteurs comportementaux, et pour l'accès auxdites données écrites.

Dans un premier exemple de réalisation, le MAA utilise une heuristique d'allocation mémoire où l'adresse physique du prochain bloc mémoire à allouer est calculé à partir d'un algorithme déterministe dépendant d'un variant. On a alors une fonction qui associe à toute

adresse logique et variant donnés, une seule et même adresse physique d'allocation. Pour la sécurité du système, il peut être intéressant d'utiliser, en guise d'algorithme, une fonction dite « à sens unique », c'est- à-dire une fonction dont il est réputé très difficile, dans l'état courant des connaissances, de calculer les valeurs d'entrée à partir des valeurs de sortie. En faisant ce choix, on rend très difficile le calcul d'une adresse logique à partir d'une adresse physique. Ceci, couplé à l' imprédictibilité du variant, permet d'empêcher un attaquant ayant mené à bien une attaque matérielle sur un premier système, de calculer l'adresse logique correspondante, puis de recalculer l'adresse physique correspondante sur un second système identique dont il connaîtrait le variant.

Dans un second exemple de réalisation, l'heuristique d'allocation des adresses physiques des blocs mémoire pour le stockage des données est diversifiée par un variant et selon un facteur comportemental. Dans un mode de fonctionnement dit normal du système, le MAA met en œuvre une heuristique d'allocation traditionnelle, qui n'est pas diversifiée par un variant. Toutefois, dans des modes de fonctionnement transitoires du système, le MAA met en œuvre une heuristique diversifiée par un variant selon laquelle le MAA procède à un remaniement de tout ou partie des blocs mémoires précédemment alloués, et selon un algorithme dépendant de ce variant. A l'issue de ces remaniements, le MAA bascule de nouveau en mode normal. Ainsi, les performances du système ne sont absolument pas dégradées dans le mode de fonctionnement normal . Les performances sont dégradées uniquement dans l'état transitoire qui est bien entendu déclenché à des moments dans lequel la performance du système n'est pas requise. Par ailleurs, on notera que, dans ce second exemple de réalisation, le remaniement des blocs est susceptible de s'effectuer sur des blocs mémoire par groupes de taille

fixe ou variable et qu' il est susceptible de se limiter à des sous-ensembles de la mémoire programmable.

Dans le cas où, comme dans les exemples précédents, les systèmes selon l'invention manipulent des adresses logiques, le MAA accède alors, pour la traduction de ces adresses logiques en adresses physiques, à une table d'adressage, ou met en œuvre un algorithme dépendant du variant, ou alors, utilise une combinaison d'une telle table et d'un tel algorithme. L'utilisation d'une table d'adressage ne dégrade pas sensiblement les performances du système. Toutefois, cette table nécessite des ressources mémoire. L'utilisation d'un algorithme est par contre susceptible de dégrader sensiblement les performances du système, étant donné qu'un calcul est nécessaire à chaque fois qu' il est nécessaire de convertir une adresse logique en adresse physique. Néanmoins, la mise en œuvre de cet algorithme ne nécessite pas ou peu d'espace mémoire supplémentaire.

On notera par ailleurs qu'il n'est pas nécessaire que le variant soit conservé. Par exemple, dans le cas où le variant est variable comme, notamment, le cas d'un variant formé d'un nombre aléatoire généré à plusieurs reprises ou au besoin, et dans le cas où on maintient une table d'adressage, alors le variant est tout simplement jetable. L'adresse de la table d'adressage peut éventuellement dépendre elle-même d'un variant initial ou d'un autre variant qui, celui-ci, sera conservé.

En ce qui concerne les aspects sécurité, il apparaît que les systèmes selon l'invention sont sécurisés contre la reproductibilité des attaques matérielles procédant par analyse simple de la consommation en courant (SPA) du système ou par analyse électromagnétique. En effet, la consommation de courant d'un système donné est en général fonction de l'adresse physique des données à accéder. Or, l'invention permet de faire varier l'adresse physique d'une même information sur deux systèmes identiques. Les attaques, qui pourraient être menées sur des systèmes

identiques à un premier système seront aussi difficiles à mener que sur le premier système attaqué, ce qui n'est pas le cas pour les systèmes de l'état de la technique.

De plus, il apparaît que l'invention nuit à la reproductibilité des attaques procédant par analyse de temps (timing attacks) . En effet, le temps d'accès à une adresse physique donnée est dépend normalement de l'adresse physique à accéder. Or, cette adresse physique varie d'un système à un autre système identique. Aussi, le temps d'accès à une même information varie d'un système à un autre et l'attaque n'est pas reproductible .

Par ailleurs, l'invention nuit à la reproductibilité des attaques à base de visualisation ou de modification physique utilisant notamment un laser ou procédant à un décapage chimique. En effet, pour que ces attaques soient menées à bien, il est nécessaire de repérer les emplacements physiques à attaquer. Or, l'invention permet de faire varier la localisation spatiale d'une même information sur deux systèmes identiques. La mise en œuvre de ce repérage est ainsi plus difficile.

L'invention nuit à la reproductibilité des attaques à base d'injection de fautes. Ces attaques consistent à faire fonctionner des systèmes dans des conditions particulières, par exemple, à basses fréquences, à hautes températures, ou au moyen d'une horloge désynchronisée, ou alors à faire fonctionner ces systèmes après un dommage physique généré notamment par un laser, puis à analyser le comportement du matériel dans ces conditions. Si, dans les conditions choisies, la consommation de courant ou le temps d'accès à une donnée varient sur deux systèmes identiques selon l'invention, il est nécessaire d'injecter une faute différente sur chaque système. De plus, la synchronisation temporelle de ces attaques étant très souvent basée sur une analyse électromagnétique elle-même perturbée par l'invention, la difficulté de reproduire l'attaque est encore accrue.

L'invention nuit aux tentatives de clonage. En effet, lorsque le variant est inscrit en mémoire non- modifiable ou du type à écriture unique et présente un degré de variabilité suffisant, le contenu d'un premier système ne peut pas, dans ce cas, être correctement interprété par le MAA d'un second système, rendant toute recopie du contenu du premier système sur le second système inutile.

Enfin, l'invention complique les attaques logicielles qui exploitent des configurations mémoire particulières. Par exemple, un virus qui utilise un débordement de pile avec un codage spécifique n'aura pas les mêmes données dans la pile et cela sera bien plus compliqué pour lui de se greffer à un programme en accédant directement à la mémoire, la position de ce dernier étant variable d'un exemplaire à un autre du système .