WO2008096076A2 - Secured electronic systems, securing methods and uses of such systems - Google Patents

Secured electronic systems, securing methods and uses of such systems 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
French (fr)
Other versions
WO2008096076A3 (en
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 JP2009542142A priority Critical patent/JP2010514039A/en
Priority to EP07872435A priority patent/EP2104893A2/en
Priority to BRPI0721042-6A priority patent/BRPI0721042A2/en
Publication of WO2008096076A2 publication Critical patent/WO2008096076A2/en
Publication of WO2008096076A3 publication Critical patent/WO2008096076A3/en

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

The invention relates to an electronic system including a processor and a computer data storage memory, to a securing method, and to the use of such a system. The system of the invention is characterised in that it further comprises a module for allocating physical writing addresses of such data in the memory, said module being capable of allocating said addresses according to a variant-diversified heuristic. The invention can particularly be used for securing onboard systems made in series against hardware or software attacks.

Description

SYSTEMES ELECTRONIQUES SECURISES, PROCEDES DE SECURISATION ET UTILISATIONS DE TELS SYSTEMES SECURE ELECTRONIC SYSTEMS, METHODS OF SECURING AND USES OF SUCH SYSTEMS
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.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.
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.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.
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.Known software attacks are extremely varied and involve, for example, viruses, malicious code injections, memory overflow methods, or disassembly techniques. These attacks regularly make one of the magazines specialized in computer science. They are, for the most part, relatively simple to code. In addition, their implementation costs are generally reduced, which explains their profusion. Of course, these attacks are the subject of the development of a multitude of protection systems, often themselves software, sometimes hardware, and whose effectiveness is 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.The hardware attacks are, for their part, much less varied than the software attacks. They are also more difficult to implement and generally require the implementation of expensive equipment. These include, for example, attacks by analyzing the power consumption of the systems, by analysis variations of electromagnetic radiation, by injection of faults, or attacks proceeding by cloning. Physical attacks are formidable in terms of security and, in some cases, they are not known to be fully effective, but rather a succession of imperfect relief processes. Thus, in the case of simple or differential attacks proceeding by analyzing the current consumed by the microcontroller of a smart card, voltage, temperature, noise source or address or data bus sensors are used. duplicated. However, none of these solutions is perfect, even though each of them is expensive at the silicon level and has a negative impact on the overall performance of the system.
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 .Software and hardware attacks, when they are immediately reproducible on a large scale, are the cause of considerable harm to the designers of embedded electronic systems. Their consequences are likely to be disastrous, both financially and in terms of the image of the said designers.
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.In view of the above, 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. In addition, 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.
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.Finally, its third object is to use a method as defined above for securing an electronic system against software and hardware attacks.
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.Thus, 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. However, with regard to hardware attacks, 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. Similarly, with respect to software attacks, 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.
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 .Advantageously: 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 computed from a deterministic algorithm dependent on the variant; the algorithm is a one-way function; the system manipulates logical addresses and in that, for access to the physical addresses, the access management module uses an address table or a variant-dependent algorithm; - the system is embedded; and - the memory is a persistent memory of the system.
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.The invention will be better understood on reading the following description of non-limiting embodiments, in which FIG. 1 is a schematic representation of a system according to the 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) .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).
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 MMUThe 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. Like the allocation module, the memory access management module forms a hardware or software entity. In the case where it forms a physical entity, it is the 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.(memory management unit). In the case where it forms a software entity, it is a software algorithm. In the remainder of the present disclosure of the invention, the assembly formed by the memory allocation module and the memory management module, as shown diagrammatically in FIG. 1, is called MAA (memory access and memory allocation module). ). According to the invention, for writing computer data in a storage memory, 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. These are not logical addresses. As a result, unlike the security elements that appear to have been implemented in some versions of the Windows ™ Vista ™ operating environment / operating system for personal computers and not for portable embedded systems, the system according to the invention makes it possible to only to complicate software attacks, but also, and especially, large-scale physical attacks. In addition, the system allows protection of the data itself and, not only, as in the aforementioned version of the Windows ™ environment, the execution of programs against attacks by stack overflow.
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.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. Here, 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.
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.In a first example, 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.
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.In a second example, 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. In this case, the allocation heuristic varies over time for the same system.
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é.In a third example, 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. Of course, 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.
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.In practice, 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. Thus, if each copy of a series of systems can be identified by a unique identifier, this identifier can effectively be used alone as a variant. However, this choice has the disadvantage of being, to a certain extent, predictable. Also, variants with greater variability, such as random or pseudo-random numbers, will be favorably selected or combined. These variants present the advantage of not being predictable, which significantly increases the degree of security of the systems according to the 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.According to the invention, the variant is advantageously secured in the system. In some embodiments, it is non-modifiable or integrity protected. In other embodiments, it is made confidential.
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.In the case where the variant is unmodifiable or protected in integrity, it 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.
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 .In the case where 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.
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.In addition, according to the invention, and as is schematized in FIG. 1, for writing computer data in a storage memory, 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. In a first example, the behavioral factors are known internal conditions of the systems. Thus, 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. It is then in particular, 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. In a second example, the behavioral factors are derived from external information transmitted to the systems. Thus, 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.
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.In a third example, the behavioral factors derive from the type of memory concerned by the allocation. Thus, 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.
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.Finally, in a fourth example, the behavioral factors are temporal data. Thus, 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.
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.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.
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.In a first exemplary embodiment, 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. This, coupled with the unpredictability of the variant, makes it possible to prevent an attacker having carried out a hardware attack on a first system, to calculate the corresponding logical address, then to recalculate the corresponding physical address on a second identical system which he would know the 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.In a second exemplary embodiment, 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. In a so-called normal operating mode of the system, the MAA implements a traditional allocation heuristic, which is not diversified by a variant. However, in transient operating modes of the system, 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. Thus, 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. Furthermore, it will be noted that, in this second exemplary embodiment, 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.
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.In the case where, as in the previous examples, 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. On the other hand, 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.
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é.Note also that it is not necessary that the variant is preserved. For example, in the case where 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.
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.Regarding the security aspects, it appears that 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. Indeed, the power consumption of a given system is generally a function of the physical address of the data to be accessed. However, 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.
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 .In addition, it appears that the invention harms the reproducibility of attacks proceeding by time analysis (timing attacks). Indeed, the access time to a given physical address is normally dependent on the physical address to access. However, this physical address varies from one system to another identical system. Also, the access time to the same information varies from one system to another and the attack is not reproducible.
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.Moreover, 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.
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.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. In fact, when the variant is written in non-modifiable memory or of the write-once type and has a sufficient degree of variability, 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.
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 . Finally, 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.

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.An electronic system provided with a processor and a computer data storage memory, characterized in that it further comprises a module for allocating physical addresses for writing such data in said memory, said module being capable of allocating said addresses according to a heuristic diversified by a 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.2. System according to claim 1, characterized in that it further comprises a data access management module contained in the memory and in that said access management module is correlated to the allocation module.
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.3. System according to one of claims 1 or 2, characterized in that it is produced in series of identical systems.
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.4. System according to claim 3, in that the variant is a datum unique to each system in a series of identical systems.
5. Système selon la revendication 4, caractérisé en ce que le variant est un identifiant de puce.5. System according to claim 4, characterized in that the variant is a chip identifier.
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 .6. System according to one of claims 1, 2 or 3, characterized in that the variant is a variable data in the system.
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. 7. System according to claim 6, characterized in that 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.
8. Système selon l'une des revendications 4 ou 6, caractérisé en ce que le variant est aléatoire ou pseudoaléatoire .8. System according to one of claims 4 or 6, characterized in that the variant is random or pseudo-random.
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 .9. System according to one of the preceding claims, characterized in that the variant is not modifiable in the system or the integrity of the variant is protected.
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.10. System according to one of the preceding claims, characterized in that the variant is encrypted content in the system.
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 .11. System according to one of the preceding claims, characterized in that the address allocation heuristic is further diversified according to one or a plurality of behavioral factors of the system.
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.12. System according to claim 11, characterized in that the behavioral factors are states of the life cycle of the system.
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.13. System according to one of claims 11 or 12, characterized in that the behavioral factors are derived from external information transmitted to the system.
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.System according to one of the preceding claims, characterized in that the address allocation heuristic is diversified by a variant only in one or a plurality of specific persistent or transient states of the system.
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. 15. System according to one of the preceding claims, characterized in that the address allocation heuristic is calculated from a deterministic algorithm dependent on the variant.
16. Système selon la revendication 15, caractérisé en ce que cet algorithme est une fonction à sens unique.16. System according to claim 15, characterized in that this algorithm is a one-way function.
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.17. System according to one of the preceding claims, characterized in that it manipulates logical addresses and in that, for access to physical addresses, the access management module uses an address table or a dependent algorithm. of the variant.
18. Système selon l'une des revendications précédentes, caractérisé en ce qu'il est embarqué.18. System according to one of the preceding claims, characterized in that it is embedded.
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.19. System according to one of the preceding claims, characterized in that the memory is a persistent memory of the system.
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 .20. A method for securing an electronic system provided with a processor and a computer data storage memory, characterized in that said system comprises a module for allocating physical addresses for writing such data in said memory. and in that said module allocates said addresses according to a heuristic diversified by a 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.21. Use of a method according to claim 20 for securing an electronic system according to one of claims 1 to 19 against software and hardware attacks.
22. Utilisation selon la revendication 21, caractérisée en ce que l'attaque est une attaque procédant par clonage. 22. Use according to claim 21, characterized in that the attack is an attack proceeding by cloning.
PCT/FR2007/002152 2006-12-22 2007-12-21 Secured electronic systems, securing methods and uses of such systems WO2008096076A2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009542142A JP2010514039A (en) 2006-12-22 2007-12-21 Secure electronic system, security protection method and use of the system
EP07872435A EP2104893A2 (en) 2006-12-22 2007-12-21 Secured electronic systems, securing methods and uses of such systems
BRPI0721042-6A BRPI0721042A2 (en) 2006-12-22 2007-12-21 SAFE ELECTRONIC SYSTEMS, SECURITY PROCESS AND USE OF THEIR SYSTEMS

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0611283A FR2910658B1 (en) 2006-12-22 2006-12-22 SECURE ELECTRONIC SYSTEMS, METHODS OF SECURING AND USES OF SUCH SYSTEMS
FRFR0611283 2006-12-22

Publications (2)

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

Family

ID=38318668

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2007/002152 WO2008096076A2 (en) 2006-12-22 2007-12-21 Secured electronic systems, securing methods and uses of such systems

Country Status (5)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020226054A1 (en) * 2019-05-07 2020-11-12 株式会社日立製作所 Information processing method, information processing device, and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997033217A1 (en) * 1996-03-07 1997-09-12 Bull Cp8 Improved integrated circuit and method for using same
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 (en) * 1986-12-19 1988-06-30 Fuji Xerox Co Ltd Physical address converter
JP3936630B2 (en) * 2002-06-20 2007-06-27 株式会社日立製作所 Semiconductor test apparatus, semiconductor device inspection method, or semiconductor device manufacturing method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997033217A1 (en) * 1996-03-07 1997-09-12 Bull Cp8 Improved integrated circuit and method for using same
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
FR2910658B1 (en) 2009-02-20
JP2010514039A (en) 2010-04-30
FR2910658A1 (en) 2008-06-27
EP2104893A2 (en) 2009-09-30
BRPI0721042A2 (en) 2014-07-29
WO2008096076A3 (en) 2008-10-02

Similar Documents

Publication Publication Date Title
EP1616242B1 (en) Method and device for controlling an access to peripherals
EP2164031B2 (en) Method and device for protecting an integrated circuit against attacks
EP1904946B1 (en) Detection of faults during a long perturbation
EP2565810A1 (en) Microprocessor protected against memory dump
WO2012085482A1 (en) Protection of applets against hidden-channel analyses
WO2005101725A1 (en) Method for dynamically authenticating programmes with an electronic portable object
EP3392791B1 (en) Method for executing a program intended for being interpreted by a virtual machine protected against fault-injection attacks
FR2923923A1 (en) CHECKING DATA IN MEMORY
WO2008096076A2 (en) Secured electronic systems, securing methods and uses of such systems
EP3042334B1 (en) Method of setting up safety means depending on a trust indicia varying before and after command execution in an electronic device with memory, and device for implementing said method
Gravellier Remote hardware attacks on connected devices
EP2860669B1 (en) Method implemented in a microcircuit and related device
EP3350745B1 (en) Management of a display of a view of an application on a screen of an electronic data input device, corresponding method, device and computer program product
FR2974648A1 (en) Method for protecting RAM against attacks by injections of faults in integrated circuit, involves filling blank areas or unused areas of RAM with pattern, and monitoring entire RAM for possible modification of state of bit
FR3011656A1 (en) METHOD AND DEVICE FOR REALIZING FUNCTION BY A MICROCIRCUIT
FR3105484A1 (en) METHOD OF DYNAMIC VERIFICATION OF THE INTEGRITY OF A MACHINE CODE
EP3203405B1 (en) Method for executing instructions of object-oriented applications by an interpreter
FR3137988A1 (en) Method and circuit for verifying the integrity of software
EP1949292A1 (en) Method for securely handling data during the running of cryptographic algorithms on embedded systems
EP3179400B1 (en) Method for loading a computing resource into an electronic device, electronic module and corresponding computer program
FR2933791A1 (en) Electrically EPROM e.g. NOR flash memory, integrity verifying method for e.g. onboard system, involves deducing integrity of electrically EPROM from verification of physical address groups, on completion of cycle of verification processes
FR3120717A1 (en) METHOD FOR EXECUTING A BINARY CODE OF A COMPUTER PROGRAM BY A MICROPROCESSOR
EP3242215A1 (en) Method for optimising writing to the memory of a device
FR2976697A1 (en) SECURE TRANSFER BETWEEN NON-VOLATILE MEMORY AND VOLATILE MEMORY
FR3011657A1 (en) METHOD USED BY A PROCESSOR AND ASSOCIATED ELECTRONIC ENTITY

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