FR2910658A1 - Systemes electroniques securises,procedes de securisation et utilisations de tels systemes - Google Patents

Systemes electroniques securises,procedes de securisation et utilisations de tels systemes Download PDF

Info

Publication number
FR2910658A1
FR2910658A1 FR0611283A FR0611283A FR2910658A1 FR 2910658 A1 FR2910658 A1 FR 2910658A1 FR 0611283 A FR0611283 A FR 0611283A FR 0611283 A FR0611283 A FR 0611283A FR 2910658 A1 FR2910658 A1 FR 2910658A1
Authority
FR
France
Prior art keywords
variant
memory
module
addresses
data
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
FR0611283A
Other languages
English (en)
Other versions
FR2910658B1 (fr
Inventor
Patrice Hameau
Guillaume Phan
Cedric Mesnil
Axelle Apvrille
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.)
Trusted Logic SAS
Original Assignee
Trusted Logic 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 Trusted Logic SAS filed Critical Trusted Logic SAS
Priority to FR0611283A priority Critical patent/FR2910658B1/fr
Priority to EP07872435A priority patent/EP2104893A2/fr
Priority to JP2009542142A priority patent/JP2010514039A/ja
Priority to PCT/FR2007/002152 priority patent/WO2008096076A2/fr
Priority to BRPI0721042-6A priority patent/BRPI0721042A2/pt
Publication of FR2910658A1 publication Critical patent/FR2910658A1/fr
Application granted granted Critical
Publication of FR2910658B1 publication Critical patent/FR2910658B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Multi Processors (AREA)

Abstract

L'invention concerne un système électronique muni d'un processeur et d'une mémoire de stockage de données informatiques, un procédé de sécurisation et une utilisation d'un tel système. Le système selon l'invention se caractérise 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. L'invention s'applique en particulier à la sécurisation de systèmes embarqués fabriqués en séries contre des attaques matérielles ou logicielles.

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 oeuvre, 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 oeuvre 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 oeuvre et nécessitent généralement la mise en oeuvre 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 2910658 2 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 5 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 10 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 15 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.
20 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 25 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.
30 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.
2910658 3 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 5 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 varian-. Enfin, elle a pour troisième objet une utilisation 10 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 15 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 20 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 25 é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 30 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 35 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 2910658 4 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 5 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 15 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 20 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 25 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 30 limitatifs, dans lesquels la figure 1 est une représentation schématique d'un système selon l'invention. Les systèmes sécurisés selon l'invention sont des systèmes électroniques, par exemple du type embarqués, 35 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 2910658 5 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.
5 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 10 (é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 15 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 20 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 25 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ù 30 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 35 module de gestion mémoire, tel que schématisé à la figure :L, est appelé MAA (Module d'Accès et d'Allocation mémoire).
2910658 6 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 5 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.
10 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 15 avoir été implémentés dans certaines versions de l'environnement/système d'exploitation WindowsTM VistaTM dédiées aux ordinateurs personnels et non pas aux systèmes embarqués portatifs, le système selon l'invention permet non seulement de compliquer les 20 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 WindowsTM, l'exécution de programmes 25 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 30 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 35 unique au système, notamment un identifiant de puce. L'heuristique d'allocation mémoire est alors spécifique 2910658 7 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 5 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, 10 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 15 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.
20 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 25 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 30 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 35 combinera avantageusement des variants ayant une variabilité plus forte, tel que celle des nombres aléatoires ou pseudo-aléatoires. Ces variants présentent 2910658 8 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 5 sécurisé dans le système. Dans certains modes de réalisation, il est non-modifiablje 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 10 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, 15 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 20 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 25 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.
30 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 35 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 2910658 9 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 5 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 oeuvre par le système ou de phases critiques de son fonctionnement telles que le redémarrage ou son arrêt.
10 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 15 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 20 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, 25 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 oeuvre par le MAA, pour l'écriture 30 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 35 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 2910658 10 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- 5 à-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, 10 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 15 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 20 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 oeuvre une heuristique diversifiée par un variant 25 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 30 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 35 réalisation, le remaniement des blocs est susceptible de s'effectuer sur des blocs mémoire par groupes de taille 2910658 11 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 5 logiques, le MAA accède alors, pour la traduction de ces adresses logiques en adresses physiques, à une table d'adressage, ou met en oeuvre 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 10 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 15 nécessaire à chaque fois qu'il est nécessaire de convertir une adresse logique en adresse physique. Néanmoins, la mise en oeuvre 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 20 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 25 _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 30 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, 35 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 2910658 12 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 5 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, 10 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 15 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 20 œ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 25 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 30 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 35 elle-même perturbée par l'invention, la difficulté de reproduire l'attaque est encore accrue.
2910658 13 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 5 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 10 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 15 accédant directement à la mémoire, la position de ce dernier étant variable d'un exemplaire à un autre du système.

Claims (22)

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 20 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. 30
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. 25 2910658 15
8. Système selon l'une des revendications 4 ou 6, caractérisé en ce que le variant est aléatoire ou pseudoaléatoire. 5
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
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 15 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, 25 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 30 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 35 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. 2910658 16
16. Système selon la revendication 15, caractérisé e::i ce que cet algorithme est une fonction à sens unique. 5
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. 10
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 15 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 20 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 30 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. 35
FR0611283A 2006-12-22 2006-12-22 Systemes electroniques securises,procedes de securisation et utilisations de tels systemes Expired - Fee Related FR2910658B1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FR0611283A FR2910658B1 (fr) 2006-12-22 2006-12-22 Systemes electroniques securises,procedes de securisation et utilisations de tels systemes
EP07872435A EP2104893A2 (fr) 2006-12-22 2007-12-21 Systemes electroniques securises, procedes de securisation et utilisations de tels systemes
JP2009542142A JP2010514039A (ja) 2006-12-22 2007-12-21 セキュリティ保護された電子システム、セキュリティ保護方法およびそのシステムの使用
PCT/FR2007/002152 WO2008096076A2 (fr) 2006-12-22 2007-12-21 Systemes electroniques securises, procedes de securisation et utilisations de tels systemes
BRPI0721042-6A BRPI0721042A2 (pt) 2006-12-22 2007-12-21 Sistemas eletrônico seguros, processo de segurança e utilização dos respectivos sistemas

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0611283A FR2910658B1 (fr) 2006-12-22 2006-12-22 Systemes electroniques securises,procedes de securisation et utilisations de tels systemes

Publications (2)

Publication Number Publication Date
FR2910658A1 true FR2910658A1 (fr) 2008-06-27
FR2910658B1 FR2910658B1 (fr) 2009-02-20

Family

ID=38318668

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0611283A Expired - Fee Related FR2910658B1 (fr) 2006-12-22 2006-12-22 Systemes electroniques securises,procedes de securisation et utilisations de tels systemes

Country Status (5)

Country Link
EP (1) EP2104893A2 (fr)
JP (1) JP2010514039A (fr)
BR (1) BRPI0721042A2 (fr)
FR (1) FR2910658B1 (fr)
WO (1) WO2008096076A2 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020226054A1 (fr) * 2019-05-07 2020-11-12 株式会社日立製作所 Procédé de traitement d'informations, dispositif de traitement d'informations et support d'informations

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997033217A1 (fr) * 1996-03-07 1997-09-12 Bull Cp8 Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre
US6408073B1 (en) * 1998-10-27 2002-06-18 Winbond Electronics Corp. Scramble circuit to protect data in a read only memory
US20050008150A1 (en) * 2003-07-07 2005-01-13 Sunplus Technology Co., Ltd. Device and method for scrambling data by means of address lines
US20050251695A1 (en) * 2004-05-04 2005-11-10 International Business Machines (Ibm) Corporation Tamper-resistant re-writable data storage media

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63157365A (ja) * 1986-12-19 1988-06-30 Fuji Xerox Co Ltd 物理アドレス変換装置
JP3936630B2 (ja) * 2002-06-20 2007-06-27 株式会社日立製作所 半導体試験装置または半導体装置の検査方法または半導体装置の製造方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997033217A1 (fr) * 1996-03-07 1997-09-12 Bull Cp8 Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre
US6408073B1 (en) * 1998-10-27 2002-06-18 Winbond Electronics Corp. Scramble circuit to protect data in a read only memory
US20050008150A1 (en) * 2003-07-07 2005-01-13 Sunplus Technology Co., Ltd. Device and method for scrambling data by means of address lines
US20050251695A1 (en) * 2004-05-04 2005-11-10 International Business Machines (Ibm) Corporation Tamper-resistant re-writable data storage media

Also Published As

Publication number Publication date
BRPI0721042A2 (pt) 2014-07-29
EP2104893A2 (fr) 2009-09-30
FR2910658B1 (fr) 2009-02-20
WO2008096076A3 (fr) 2008-10-02
WO2008096076A2 (fr) 2008-08-14
JP2010514039A (ja) 2010-04-30

Similar Documents

Publication Publication Date Title
EP1616242B1 (fr) Procede et dispositif pour controler l'acces a un periferique
EP2164031B2 (fr) Procédé et dispositif de protection d'un microcircuit contre des attaques
FR2977694A1 (fr) Microprocesseur protege contre un debordement de pile
EP1904946B1 (fr) Detection d'une faute par perturbation longue
EP2565810A1 (fr) Microprocesseur protégé contre le vidage de mémoire
EP2656268A1 (fr) Protection des applets contre les analyses par canaux caches
WO2005101725A1 (fr) Procede d'authentification dynamique de programmes par un objet portable electronique
EP3392791B1 (fr) Procédé d'exécution d'un programme destiné à être interprété par une machine virtuelle protégée contre des attaques par injection de faute
FR3064781A1 (fr) Procede de protection d'un dispositif electronique contre des attaques par injection de faute pendant l'execution d'un programme
FR2910658A1 (fr) Systemes electroniques securises,procedes de securisation et utilisations de tels systemes
Gravellier Remote hardware attacks on connected devices
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é
EP2860669B1 (fr) Procédé mis en oeuvre dans un microcircuit et dispositif associé
FR3072477B1 (fr) Securisation d’instructions de branchement conditionnel compose dans un programme informatique en code intermediaire
WO2009138641A1 (fr) Procede d'utilisation d'un terminal hote par un dispositif externe connecte au terminal
FR2974648A1 (fr) Protection d'une memoire vive contre des attaques par injection de fautes
FR3105484A1 (fr) Méthode de vérification dynamique de l’intégrité d’un code machine
EP3179400B1 (fr) Procédé de chargement d'une ressource informatique au sein d'un dispositif électronique, module électronique et programme d'ordinateur correspondant
EP4307143A1 (fr) Procede et circuit pour la verification de l'integrite d'un logiciel
EP3203405B1 (fr) Procede d'execution d'instructions d'applications orientees objet par un interpreteur
FR2928754A1 (fr) Carte a circuit integre ayant un programme d'exploitation modifiable et procede de modification correspondant
CA2998780A1 (fr) Gestion d'un affichage d'une vue d'une application sur un ecran d'un dispositif electronique de saisie de donnees, procede, dispositif et produit programme d'ordinateur correspondants
FR3011650A1 (fr) Procede et dispositif de realisation de fonction par un microcircuit
FR2933791A1 (fr) Procede de verification de l'integralite d'une memoire eeprom
FR2994755A1 (fr) Procede d'installation de programme informatique

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20110831