[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO2008096076A2 - 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
WO2008096076A2
WO2008096076A2 PCT/FR2007/002152 FR2007002152W WO2008096076A2 WO 2008096076 A2 WO2008096076 A2 WO 2008096076A2 FR 2007002152 W FR2007002152 W FR 2007002152W WO 2008096076 A2 WO2008096076 A2 WO 2008096076A2
Authority
WO
WIPO (PCT)
Prior art keywords
variant
memory
module
heuristic
systems
Prior art date
Application number
PCT/FR2007/002152
Other languages
English (en)
Other versions
WO2008096076A3 (fr
Inventor
Patrice Hameaux
Guillaume Phan
Cédric MESNIL
Axelle Apvrille
Original Assignee
Trusted, Logic
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 filed Critical Trusted, Logic
Priority to EP07872435A priority Critical patent/EP2104893A2/fr
Priority to BRPI0721042-6A priority patent/BRPI0721042A2/pt
Priority to JP2009542142A priority patent/JP2010514039A/ja
Publication of WO2008096076A2 publication Critical patent/WO2008096076A2/fr
Publication of WO2008096076A3 publication Critical patent/WO2008096076A3/fr

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

Definitions

  • the invention relates to embedded electronic systems including a processor and a computer data storage memory, security methods and uses of such systems.
  • the systems of the invention are more particularly portable on-board systems manufactured in large series of identical systems. These include, for example, smart cards, including subscriber identification modules (SIMs), or electronic platforms for mobile phones or other small electronic devices.
  • SIMs subscriber identification modules
  • the electronic systems of the state of the art and, in particular, the on-board electronic systems, are likely to be attacked both at the software level and at the hardware level.
  • a problem to be solved by the invention is to provide an electronic system, which has increased security against software and hardware attacks, including increased security against the reproducibility of such attacks, likely to be carried out on a large scale.
  • the solution of the invention to this problem has for its first object an electronic system provided with a processor and a computer data storage memory, characterized in that it comprises a module for allocating physical write addresses. such data in said memory, said module being able to allocate said addresses according to a heuristic diversified by a variant.
  • its second object is a method of securing an electronic system provided with a processor and a computer data storage memory, characterized in that said system comprises a physical address allocation module of writing such data in said memory and in that said module allocates said addresses according to a heuristic diversified by a variant.
  • its third object is to use a method as defined above for securing an electronic system against software and hardware attacks.
  • an attacker can not in any case expect to find computer data in a specific physical location within the memory of a secure system according to the invention. It must take into account that the location of these targeted data is different on each system, even if it is a system of an identical model.
  • the physical location of the data to be protected is important information, both to target an attack on silicon, but also to determine the consequences of taking these data into account during the attack. system operation, the electromagnetic signature of the use of a data generally dependent on its physical position in silicon.
  • the location of the data to be protected is also important because, depending on this location, an attacker does not have access to the same data on the stack, on the heap, or is not in executable space.
  • the system further comprises a data access management module contained in the memory and said access management module is correlated to the allocation module; - the system is produced in series of identical systems; - the variant is a data unique to each system of a series of identical systems; the variant is a chip identifier; - the variant is a variable datum in the system; the variant is the current value of a monotone counter or the current time of a clock internal to the system or provided by an external clock signal; the variant is random or pseudo-random; - the variant is not modifiable in the system or the integrity of the variant is protected; - the variant is encrypted content in the system; the address allocation heuristic is further varied according to one or a plurality of behavioral factors of the system; - behavioral factors are states of the life cycle of the system; - the behavioral factors are derived from external information transmitted to the system; the address allocation heuristic is varied by a variant only in one or a plurality of specific persistent or transient states of the system; the address allocation heuristic is varied
  • FIG. 1 is a schematic representation of a system according to the invention.
  • the secure systems according to the invention are electronic systems, for example of the embedded type, provided with a processor and a computer data storage memory. Such systems are in particular portable systems manufactured in large series such as smart cards, including subscriber identification modules (SIMs), or such as electronic platforms for mobile phones or other electronic devices of reduced size.
  • the processor is a microprocessor or a microcontroller.
  • the storage memory is advantageously a read-only (ROM) persistent memory, for example of the PROM (programmable) type, NVRAM (non-volatile random access memory) for example of the EEPROM (electrically erasable programmable) or Flash type, or else, optionally, a random access memory (RAM), for example SRAM (static) or DRAM (dynamic).
  • ROM read-only
  • PROM programmable
  • NVRAM non-volatile random access memory
  • EEPROM electrically erasable programmable
  • Flash or else, optionally, a random access memory (RAM), for example SRAM (static) or DRAM (dynamic
  • the systems according to the invention also comprise a module for allocating the write addresses of the computer data in the storage memory.
  • This module is invoked whenever it is necessary to allocate a memory area, and consequently one or more physical addresses, for writing new data, that is to say for programming the memory.
  • This module is a hardware or software entity. It is correlated to a memory access management module intended to manage the accesses, in particular for reading the written data, and whose physical locations in the memory have been allocated by the allocation module.
  • This memory access management module makes it possible, where appropriate, to associate the logical locations of the data with their physical locations.
  • the memory access management module forms a hardware or software entity. In the case where it forms a physical entity, it is the MMU
  • the MAA memory access and memory allocation module
  • the MAA is able to allocate addresses and, in particular, physical addresses of this memory, according to a heuristic diversified by a variant.
  • the allocation heuristic applies to pages or memory areas that belong to a specific process, or to all pages in the memory. It is therefore a local allocation or a global allocation.
  • the allocated addresses are actually physical addresses corresponding to physical locations in persistent memory of the system according to the invention.
  • the variant is a variable datum of a system considered with respect to other identical systems of the same series and / or a variable datum in the same system considered, over time.
  • identical systems are understood to mean systems which have comparable characteristics and functionalities and intended for similar uses, for example the same model of a mobile phone platform.
  • the variant is a unique data to the system, including a chip identifier.
  • the memory allocation heuristic is then specific of a system considered in a series of identical systems.
  • the variant is the current value of a monotone counter or the current time of a clock internal to the system or provided by an external clock signal.
  • the allocation heuristic varies over time for the same system.
  • the variant is a random or pseudo-random number generated by the system, preferably according to a secure algorithm. This number can be generated once and for all in a system considered or generated at different times. In the case where it is generated once and for all, the memory allocation heuristic will then be different in identical systems of the same series but it will always be identical in the same system. In the case where this number is not generated once and for all in a given system, the memory allocation heuristic will vary in this system over time.
  • the variant according to the invention may be a complex variable data function of several unit variants. It may be, for example, a variable data function of both a chip identifier according to the first example above and a clock signal according to the second example above.
  • the degree of security of a system according to the invention is proportional to the variability of the variant, especially when faced with the risk of cloning of this system.
  • this identifier can effectively be used alone as a variant.
  • this choice has the disadvantage of being, to a certain extent, predictable.
  • variants with greater variability such as random or pseudo-random numbers, will be favorably selected or combined.
  • the variant is advantageously secured in the system.
  • it is non-modifiable or integrity protected.
  • it is made confidential.
  • the variant is entered in the ROM of the system during its production, or else in programmable memory type PROM or EPROM write once, or in a programmable memory of type with multiple writes. In this latter embodiment, it is then checked in integrity at each memory access or on certain occasions.
  • the variant is made confidential, it is advantageously encrypted in the system and kept secret by it, or else transmitted to the system through a secure channel preserving confidentiality and kept secret.
  • the MAA is able to allocate physical addresses of this memory according to a diversified heuristic according to factors behavioral characteristics of the system, these factors defining different behaviors of the MAA: behavior 1, behavior 2, ..., behavior n.
  • the behavioral factors are known internal conditions of the systems.
  • the memory allocation heuristic used by the MAA may or may not involve a variant depending on whether the system is in a specific state. This specific state can be a persistent state of the system.
  • a specific state of the life cycle of the system such as a customization phase, a phase of production or normal use of the system, for example in a degraded or non-functional state, a threshold state or a debugging state.
  • This specific state may be a transient state of the system. This is for example the opening of a secure section of a program implemented by the system or critical phases of its operation such as restarting or shutdown.
  • the behavioral factors are derived from external information transmitted to the systems.
  • the memory allocation heuristic used by the MAA may or may not involve the variant when this is explicitly requested by an external user of the system - man or machine - through indications transmitted to the system.
  • the behavioral factors derive from the type of memory concerned by the allocation.
  • the memory allocation heuristic used by the MAA may or may not involve the variant depending on the type of programmable memory targeted by the allocation.
  • the behavioral factors are temporal data.
  • the memory allocation heuristic used by the MAA may or may not involve the next variant whether or not one is at a specific time in time.
  • the following exemplary embodiments relate to the heuristics implemented by the MAA, for the writing of data diversified by a variant and, possibly, by behavioral factors, and for access to said written data.
  • the MAA uses a memory allocation heuristic where the physical address of the next memory block to be allocated is calculated from a deterministic algorithm dependent on a variant. We then have a function that associates with logical address and given variant, one and the same physical address of allocation. For the sake of the security of the system, it may be interesting to use, as an algorithm, a function called "one-way", that is to say a function of which it is deemed very difficult, in the current state knowledge, to calculate the input values from the output values. By making this choice, it makes it very difficult to calculate a logical address from a physical address.
  • the heuristic for allocating the physical addresses of the memory blocks for storing the data is diversified by a variant and according to a behavioral factor.
  • the MAA implements a traditional allocation heuristic, which is not diversified by a variant.
  • the MAA implements a heuristic diversified by a variant according to which the MAA performs a reworking of all or part of the memory blocks previously allocated, and according to an algorithm dependent on this variant. After these revisions, the MAA switches back to normal mode.
  • the performance of the system is absolutely not degraded in the normal operating mode.
  • Performance is degraded only in the transient state that is of course triggered at times in which system performance is not required.
  • the reworking of the blocks can be performed on memory blocks by size groups. fixed or variable and that it is likely to be limited to subsets of the programmable memory.
  • the systems according to the invention manipulate logical addresses
  • the MAA then accesses, for the translation of these logical addresses into physical addresses, an address table, or implements a variant-dependent algorithm, or else, uses a combination of such a table and such an algorithm.
  • the use of an address table does not significantly degrade the performance of the system. However, this table requires memory resources.
  • the use of an algorithm is likely to significantly degrade system performance, since a computation is necessary each time it is necessary to convert a logical address into a physical address. Nevertheless, the implementation of this algorithm does not require or little additional memory space.
  • the variant is not necessary that the variant is preserved.
  • the variant is variable such as, in particular, the case of a variant formed of a random number generated several times or if necessary, and in the case where an address table is maintained, then the variant is simply disposable.
  • the address of the address table may itself depend on an initial variant or another variant which, it will be retained.
  • the systems according to the invention are secured against the reproducibility of hardware attacks by simple analysis of the power consumption (SPA) of the system or by electromagnetic analysis.
  • SPA power consumption
  • the power consumption of a given system is generally a function of the physical address of the data to be accessed.
  • the invention makes it possible to vary the physical address of the same information on two identical systems. Attacks, which could be carried out on systems identical to a first system will be as difficult to conduct as the first system attacked, which is not the case for systems of the state of the art.
  • the invention harms the reproducibility of attacks proceeding by time analysis (timing attacks).
  • timing attacks the access time to a given physical address is normally dependent on the physical address to access.
  • this physical address varies from one system to another identical system.
  • the access time to the same information varies from one system to another and the attack is not reproducible.
  • the invention impairs the reproducibility of visualization-based or physical modification-based attacks, in particular using a laser or carrying out chemical etching. Indeed, for these attacks to be carried out, it is necessary to identify the physical locations to attack. However, the invention makes it possible to vary the spatial location of the same information on two identical systems. The implementation of this identification is thus more difficult.
  • the invention is detrimental to the reproducibility of fault injection attacks. These attacks consist in operating systems under particular conditions, for example, at low frequencies, at high temperatures, or by means of a desynchronized clock, or else to operate these systems after a physical damage generated in particular by a laser, then to analyze the behavior of the material under these conditions. If, under the chosen conditions, the current consumption or the access time to a data vary on two identical systems according to the invention, it is necessary to inject a different fault on each system. In addition, the temporal synchronization of these attacks being very often based on an electromagnetic analysis itself disturbed by the invention, the difficulty of reproducing the attack is further increased. The invention is detrimental to attempts at cloning.
  • the content of a first system can not, in this case, be correctly interpreted by the MAA of a second system, making all copy of the contents of the first system on the second useless system.
  • the invention complicates software attacks that exploit particular memory configurations. For example, a virus that uses a stack overflow with a specific coding will not have the same data in the stack and it will be much more complicated for it to be grafted to a program by directly accessing the memory, the position of that last being variable from one copy to another of the system.

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 œ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 .

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.
PCT/FR2007/002152 2006-12-22 2007-12-21 Systemes electroniques securises, procedes de securisation et utilisations de tels systemes WO2008096076A2 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP07872435A EP2104893A2 (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
JP2009542142A JP2010514039A (ja) 2006-12-22 2007-12-21 セキュリティ保護された電子システム、セキュリティ保護方法およびそのシステムの使用

Applications Claiming Priority (2)

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
FRFR0611283 2006-12-22

Publications (2)

Publication Number Publication Date
WO2008096076A2 true WO2008096076A2 (fr) 2008-08-14
WO2008096076A3 WO2008096076A3 (fr) 2008-10-02

Family

ID=38318668

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2007/002152 WO2008096076A2 (fr) 2006-12-22 2007-12-21 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
JP7168776B2 (ja) * 2019-05-07 2022-11-09 株式会社日立製作所 情報処理方法、情報処理装置及び記憶媒体

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
JP2010514039A (ja) 2010-04-30
WO2008096076A3 (fr) 2008-10-02
BRPI0721042A2 (pt) 2014-07-29
FR2910658B1 (fr) 2009-02-20
FR2910658A1 (fr) 2008-06-27
EP2104893A2 (fr) 2009-09-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
EP1904946B1 (fr) Detection d'une faute par perturbation longue
EP2565810A1 (fr) Microprocesseur protégé contre le vidage de mémoire
WO2012085482A1 (fr) Protection des applets contre les analyses par canaux caches
WO2008096076A2 (fr) Systemes electroniques securises, procedes de securisation et utilisations de tels systemes
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
FR2923923A1 (fr) Verification de donnees lues en memoire
WO2005101725A1 (fr) Procede d'authentification dynamique de programmes par un objet portable electronique
EP1715436A2 (fr) Protection du déroulement d'un programme exécuté par un circuit intégré ou de données contenues dans ce circuit
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é
EP3042334B1 (fr) Procédé de mise en place de moyens de sécurité en fonction d'un indice de confiance variant avant et après l'exécution de commandes sous la forme ddans un dispositif électronique à mémoire, et dispositif pour la mise en oeuvre dudit procédé
EP2860669B1 (fr) Procédé mis en oeuvre dans un microcircuit et dispositif associé
FR2974648A1 (fr) Protection d'une memoire vive contre des attaques par injection de fautes
EP3350745B1 (fr) Gestion d'un affichage d'une vue d'une application sur un écran d'un dispositif électronique de saisie de données, procédé, dispositif et produit programme d'ordinateur correspondants
FR3011656A1 (fr) Procede et dispositif de realisation de fonction par un microcircuit
FR3137988A1 (fr) Procédé et circuit pour la vérification de l’intégrité d’un logiciel
FR3105484A1 (fr) Méthode de vérification dynamique de l’intégrité d’un code machine
EP1949292A1 (fr) Procede securise de manipulations de donnees lors de l'execution d'algorithmes cryptographiques sur systemes embarques
EP3203405B1 (fr) Procede d'execution d'instructions d'applications orientees objet par un interpreteur
EP3179400B1 (fr) Procédé de chargement d'une ressource informatique au sein d'un dispositif électronique, module électronique et programme d'ordinateur correspondant
FR2933791A1 (fr) Procede de verification de l'integralite d'une memoire eeprom
FR3120717A1 (fr) Procédé d'exécution d'un code binaire d'un programme d'ordinateur par un microprocesseur
FR2976697A1 (fr) Transfert securise entre memoire non-volatile et memoire volatile

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07872435

Country of ref document: EP

Kind code of ref document: A2

ENP Entry into the national phase

Ref document number: 2009542142

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2007872435

Country of ref document: EP

ENP Entry into the national phase

Ref document number: PI0721042

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20090619