WO2002041235A2 - Method for verifying before activating a programme loaded in a smart card - Google Patents

Method for verifying before activating a programme loaded in a smart card Download PDF

Info

Publication number
WO2002041235A2
WO2002041235A2 PCT/FR2001/003564 FR0103564W WO0241235A2 WO 2002041235 A2 WO2002041235 A2 WO 2002041235A2 FR 0103564 W FR0103564 W FR 0103564W WO 0241235 A2 WO0241235 A2 WO 0241235A2
Authority
WO
WIPO (PCT)
Prior art keywords
program
memory
loaded
loading
characteristic value
Prior art date
Application number
PCT/FR2001/003564
Other languages
French (fr)
Other versions
WO2002041235A3 (en
Inventor
Pierre Girard
Jean-Luc Giraud
Original Assignee
Gemplus
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 Gemplus filed Critical Gemplus
Priority to AU2002223068A priority Critical patent/AU2002223068A1/en
Publication of WO2002041235A2 publication Critical patent/WO2002041235A2/en
Publication of WO2002041235A3 publication Critical patent/WO2002041235A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Definitions

  • the present invention relates to a method for verifying a program loaded in a smart card, before its activation.
  • the program and data memories generally comprise a read-only or non-rewritable memory, but programmable only once at the time of its manufacture, for example of the ROM (Read Only Memory) type, and a volatile memory which is accessible for writing and reading, for example of the RAM (Random Access Memory) type, used for storing temporary data during the execution of a program.
  • the most advanced chips also include a non-volatile memory, accessible in both reading and writing, for example of EEPROM (Electrically Erasable Programmable Read Only Memory) or FLASH type.
  • the program was stored in a ROM memory which has the advantage of occupying less surface than a programmable non-volatile memory, normally used to store variable data like the balance of a wallet electronic.
  • the ROM memory has the disadvantage of having to be loaded at the time of its manufacture, its content being defined by a mask. It is therefore necessary to provide a mask by program, the production of such a mask being carried out by the manufacturer of the chip and being long and costly. In addition, if a programming error is discovered, a new mask must be made.
  • Flash a new technology, known as Flash, has appeared, combining the advantages of ROM memory in terms of surface area, and EEPROM with regard to programming possibilities.
  • This technology allows new architecture in which the chip includes a low capacity ROM memory in which is loaded a small loading program called "bootloader" of the programmable non-volatile memory, following such loading the loading program activates the loaded program which is generally written in machine language, that is to say the command language of the chip's microprocessor.
  • booter a small loading program
  • the contents of the ROM memory are made generic by allowing the loading of a large number of application programs. This possibility is very interesting for the programmer, because it allows him to test his programs directly on the card without the need to start manufacturing a new ROM memory mask. It also makes it possible to reduce the time taken to design and develop a new application.
  • This solution also offers the possibility of operating the chip using several operating systems, and adapting it according to customer needs. It is also conceivable to deliver cards whose programmable memory is empty, the client himself loading an operating system and testing the card. However, if the ROM loader can load any program, this poses security concerns. Indeed, if a malicious person obtains such a card, he can freely load a program giving him access to all the resources of the card, which allows him to very finely study the behavior of the chip, and therefore easily develop attack strategies on other cards of the same type.
  • the invention relates to a method allowing the loading program stored in the ROM memory to ensure that it loads an authorized program.
  • this process is characterized in that it comprises:
  • a first loading phase comprising the loading into a first memory of the component by a first entity of at least one predefined characteristic value of a program authorized to be used by the component
  • a second loading phase comprising the loading by a second entity of a program into a second memory of the component, said second entity not being able to perform loading into the first memory
  • a verification phase by the processing unit of the loaded program comprising the determination of a characteristic value of the loaded program, and the comparison of this characteristic value with the predefined characteristic values loaded in the first memory, and
  • an activation phase by the processing unit of the loaded program comprising activating the loaded program only if the characteristic value of the determined program corresponds to one of the predefined characteristic values loaded in the first memory.
  • the verification phase is carried out following the reception by the processing unit of an end of loading command associated with an authentication signature, and of the verification that this signature is acceptable.
  • the characteristic value can be a program identifier or a condensed value of the program, obtained by applying to the program a function of "hash” or a MAC (Message Authentication Code) function.
  • the first loading phase comprises the. loading into the first memory of the component of a correspondence table associating for each program capable of being loaded into the second memory, a characteristic value of the program and a definition of addresses of memory areas where the program can be loaded, a command loading a program into the second memory of the component being executed only if it contains loading addresses corresponding to those appearing in the correspondence table in association with the characteristic value transmitted.
  • the determination of the characteristic value of the loaded program can be carried out only on the memory areas defined in the correspondence table in association with the condensed value transmitted.
  • the correspondence table further comprises a respective reference of all the programs capable of being loaded into the second memory of the component, the method comprising the transmission to the component of the reference of the program to be loaded, reading the table to obtain the condensed value associated with the received program reference, and comparing the calculated condensed value with the condensed value read from the table to determine whether the program loaded in the second memory can be activated.
  • each program loaded into memory can be associated with an activation authorization indicator, making it possible to prohibit or authorize the subsequent activation of the corresponding program depending on whether the verification phase has failed or not.
  • the programs that can be loaded into the second memory include free areas whose addresses are predefined for receiving specific information. They can be modular programs, each module having a value characteristic stored in the first memory.
  • the first phase is advantageously carried out once and irreversibly.
  • the invention also relates to an electronic component making it possible to implement the method described above.
  • FIG. 1 schematically represents the electronic component of a smart card
  • FIG. 2 shows the organization of the non-volatile memory of the component at the end of the loading phase of the non-confidential information
  • Figure 3 shows in the form of a flowchart the sequence of the different stages of the method according to the invention.
  • FIG. 1 shows an electronic component 1 designed to be integrated into a so-called smart card.
  • This component generally comprises a processing unit 2 or microprocessor, connected by a communication bus 3 to memories 4, 5, 6, and to a link 7 to a reading and possibly writing terminal.
  • This link is made up either of contact pads in the case of a smart card with contacts, or by an antenna in the case of a smart card without contact.
  • These memories include a non-rewritable and non-erasable memory 4, for example of the ROM type, a non-volatile memory 5 accessible for writing and reading, for example of the EEPROM or FLASH type, and a volatile memory 6 or RAM.
  • an initialization treatment 21 is first applied to the electronic component made at the time of its manufacture.
  • This processing consists in writing in the memory 4 a program allowing the loading of the non-volatile memory 5, as well as a table comprising for each program capable of being loaded in the memory 5, a value characteristic of the program or of the 5 addresses of loading it into the memory 5.
  • This characteristic value can be an identifier of the program or a condensed value of the latter or of the loading addresses.
  • This condensed value can be obtained by a CRC calculation (Cyclic Redundancy Check), or even by a "hash” algorithm, for example the SHA-1 function (Secure Hash Algorithm - 10 1), allowing to obtain a sequence binary, for example 160 bits, representing in condensed form the program code.
  • a CRC calculation Cyclic Redundancy Check
  • SHA-1 function Secure Hash Algorithm - 10 1
  • the table preferably also includes the definition of the addresses of the memory area where the program is to be loaded into memory 5.
  • This table can also include a reference of each program capable of being loaded into memory 5, in association with the characteristic value of the program.
  • the loading program stored in the memory 4 is designed so as to be activated as soon as the component 1 is powered up and to wait for the loading of an application program or an operating system.
  • the component 1 is connected to a programming terminal via the link 7, the terminal transmitting to the component one or more commands for writing an application program (step 22).
  • Each command contains a write address and the program or part of the program to be loaded at the address
  • the program thus transmitted is loaded into memory 5.
  • the microprocessor 2 goes to a verification phase 23.
  • the end of loading command can be associated with a signature, for example a code MAC, used to authenticate the entity that has just loaded. If the signature is not valid, the loaded program cannot be validated and activated.
  • the microprocessor 2 determines the characteristic value of the program thus loaded in the memory 5. Then, the microprocessor 2 compares 24 the characteristic value thus obtained with the reference values which were previously loaded in the memory not erasable 4. If the calculated value does not correspond to one of the values memorized in memory 4, the loading of the program is considered to have failed and the loading program starts . waiting for a new load command, after possibly sending an error message to the programming terminal. Otherwise, the loading phase of the application program is validated and it can be activated 25.
  • the content of the memory can for example be as shown in FIG. 2.
  • the loaded program is an operating system occupying two zones 13, 14, in the memory 5 , the other zones 12 of the memory (between zones 13 and 14 and after zone 14) remaining free and allowing the user to include his own data or programs.
  • the loaded application program can also include free areas 11 provided for receiving confidential information during a confidential personalization step.
  • the application program when activated in step 25 waits for commands to load this confidential information.
  • the memory loading program 4 checks in the correspondence table that the transmitted writing address is part of the memory area where the program having the transmitted reference must be loaded.
  • Each characteristic program value that can be loaded into the memory 5 can advantageously be stored in memory 4 in a correspondence table where it is associated with address values of memory zones where the program must be loaded. . .
  • the characteristic value calculation carried out by the loading program relates only to the memory areas defined in the correspondence table in association with the characteristic value of the loaded program.
  • the memory 4 can also store a program reference in association with each characteristic program value which can be loaded into the memory 5.
  • the loading commands include this reference, and the loading program searches in the memory 4 , the reference transmitted in the load command received, and compares the characteristic value calculated with that which is stored in memory 4 in association with the reference transmitted.
  • step 23 provision can be made to verify the loading (step 23) when all the loading commands have been executed, by performing a characteristic value calculation on each memory area associated in the correspondence table with a received program reference.
  • each module of the application program is associated with a program reference which appears in the correspondence table in association with a loading address and a characteristic value of the module.
  • a program reference which appears in the correspondence table in association with a loading address and a characteristic value of the module.
  • such modular program must be designed to execute a command only if it belongs to a module previously loaded. Provision can therefore be made to execute an initialization procedure during which the microprocessor 2 detects the modules loaded to validate the corresponding commands.
  • the method according to the invention is perfectly suited for loading operating systems carrying out what is called a virtual machine, that is to say capable of executing programs written in a specific language. different from the microprocessor control language 2.
  • a means can be provided to prohibit the execution of an invalidated program.
  • This means can consist in erasing the memory zone which was loaded with the received invalid program. It can also consist of an indicator table, at the rate of one indicator per loaded program, the activation of a program being carried out only if the corresponding indicator authorizes this activation.
  • a new program loading can be authorized in a memory zone in which a program has already been validated.
  • a procedure must be provided which can be activated systematically at each load, making it possible to prohibit the subsequent use of the previously loaded program which is overwritten by the new load.
  • a secure extension mode making it possible to add a condensed program value capable of being loaded into the memory 5.
  • Such an extension can for example be carried out using a command provided for this purpose, this command being associated with a MAC code applied to the command allowing the microprocessor 2 to authenticate the entity which issued such a command.
  • the set of characteristic values programs capable of being loaded into the memory of the component can all be stored in a non-volatile and erasable memory of the component.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Lock And Its Accessories (AREA)

Abstract

The invention concerns a method for loading a programme in an electronic component storage, said method comprising: a first phase which consists in loading in a first storage of the component by a first entity at least a predefined characteristic value of a programme authorised for use by the component, a second loading phase (22) which consists in loading by a second entity a programme in a second storage of the component, said second entity not being capable of loading in the first storage; a phase which consists in verifying (23) the loaded programme, consisting in determining a value characteristic of the loaded programme, and comparing said characteristic value to the predefined characteristic values loaded in the first storage; and a phase which consists in activating (25) the loaded programme, if the determined characteristic value of the programme corresponds to one of the characteristic values loaded in the first storage.

Description

PROCEDE DE VERIFICATION AVANT ACT ATION D'UN PROGRAMME CHARGE DANS UNE CARTE A PUCE.VERIFICATION PROCESS BEFORE ACT ATION OF A PROGRAM LOADED IN A CHIP CARD.
La présente invention concerne un procédé pour vérifier un programme chargé dans une carte à puce, avant son activation.The present invention relates to a method for verifying a program loaded in a smart card, before its activation.
Elle s'applique notamment, mais non exclusivement aux dispositifs électroniques portatifs tels que les cartes à microcircuits électroniques, dites cartes à puce. Elle s'applique plus généralement à tout dispositif embarqué indépendant, doté d'une unité de traitement ou microprocesseur, associée à des mémoires de programme et de données, et d'un module de communication avec ou sans contact pour être connecté avec un dispositif électronique de lecture et/ou d'écriture. Les mémoires de programme et de données comprennent généralement une mémoire morte ou non réinscriptible, mais programmable une seule fois au moment de sa fabrication, par exemple de type ROM (Read Only Memory), et une mémoire volatile et accessible en écriture et en lecture, par exemple de type RAM (Random Access Memory), servant au stockage de données temporaires durant l'exécution d'un programme. Les puces les plus évoluées comprennent également une mémoire non volatile, accessible à la fois en lecture et en écriture, par exemple de type EEPROM (Electrically Erasable Programmable Read Only Memory) ou FLASH.It applies in particular, but not exclusively to portable electronic devices such as electronic microcircuit cards, called smart cards. It more generally applies to any independent on-board device, equipped with a processing unit or microprocessor, associated with program and data memories, and a communication module with or without contact to be connected with an electronic device. reading and / or writing. The program and data memories generally comprise a read-only or non-rewritable memory, but programmable only once at the time of its manufacture, for example of the ROM (Read Only Memory) type, and a volatile memory which is accessible for writing and reading, for example of the RAM (Random Access Memory) type, used for storing temporary data during the execution of a program. The most advanced chips also include a non-volatile memory, accessible in both reading and writing, for example of EEPROM (Electrically Erasable Programmable Read Only Memory) or FLASH type.
Jusqu'à présent, la plus grande partie des informations à stocker dans une carte à puce était le programme de la carte lui-même. Pour gagner de la place mémoire, le programme était stocké dans une mémoire ROM qui présente l'avantage d'occuper moins de surface qu'une mémoire non volatile programmable, normalement utilisée pour stocker des données variables comme la balance d'un porte-monnaie électronique. Cependant, la mémoire ROM présente l'inconvénient de devoir être chargée au moment de sa fabrication, son contenu étant défini par un masque. Il est donc nécessaire de prévoir un masque par programme, la réalisation d'un tel masque étant effectuée par le fabricant de la puce et étant longue et coûteuse. En outre, si une erreur de programmation est découverte, il faut réaliser un nouveau masque.Until now, most of the information to be stored in a smart card has been the program of the card itself. To save memory space, the program was stored in a ROM memory which has the advantage of occupying less surface than a programmable non-volatile memory, normally used to store variable data like the balance of a wallet electronic. However, the ROM memory has the disadvantage of having to be loaded at the time of its manufacture, its content being defined by a mask. It is therefore necessary to provide a mask by program, the production of such a mask being carried out by the manufacturer of the chip and being long and costly. In addition, if a programming error is discovered, a new mask must be made.
Récemment, est apparue une nouvelle technologie, dite Flash, alliant les avantages de la mémoire ROM en terme de surface, et de l'EEPROM en ce qui concerne les possibilités de programmation. Cette technologie permet une nouvelle architecture dans laquelle la puce comprend une mémoire ROM de faible capacité dans laquelle est chargé un petit programme de chargement appelé "bootloader" de la mémoire non volatile programmable, à la suite d'un tel chargement le programme de chargement active le programme chargé qui est généralement écrit en langage machine c'est-à-dire le langage de commande du microprocesseur de la puce. De cette manière, le contenu de la mémoire ROM est rendu générique en permettant le chargement d'un grand nombre de programmes applicatifs. Cette possibilité est très intéressante pour le programmeur, car elle lui permet de tester ses programmes directement sur la carte sans avoir besoin de lancer la fabrication d'un nouveau masque de mémoire ROM. Elle permet également de réduire la durée de conception et de mise au point d'une nouvelle application.Recently, a new technology, known as Flash, has appeared, combining the advantages of ROM memory in terms of surface area, and EEPROM with regard to programming possibilities. This technology allows new architecture in which the chip includes a low capacity ROM memory in which is loaded a small loading program called "bootloader" of the programmable non-volatile memory, following such loading the loading program activates the loaded program which is generally written in machine language, that is to say the command language of the chip's microprocessor. In this way, the contents of the ROM memory are made generic by allowing the loading of a large number of application programs. This possibility is very interesting for the programmer, because it allows him to test his programs directly on the card without the need to start manufacturing a new ROM memory mask. It also makes it possible to reduce the time taken to design and develop a new application.
Cette solution offre également la possibilité de faire fonctionner la puce à l'aide de plusieurs systèmes d'exploitation, et d'adapter celui-ci en fonction des besoins du client. Il est également envisageable de livrer des cartes dont la mémoire programmable est vierge, le client effectuant lui-même le chargement d'un système d'exploitation et le test de la carte. Toutefois, si le programme de chargement dans la mémoire ROM permet de charger n'importe quel programme, cela pose des problèmes de sécurité. En effet, si une personne malintentionnée se procure une telle carte, elle peut en toute liberté y charger un programme lui donnant accès à toutes les ressources de la carte, ce qui lui permet d'étudier très finement le comportement de la puce, et donc de mettre au point facilement des stratégies d'attaque sur d'autres cartes du même type.This solution also offers the possibility of operating the chip using several operating systems, and adapting it according to customer needs. It is also conceivable to deliver cards whose programmable memory is empty, the client himself loading an operating system and testing the card. However, if the ROM loader can load any program, this poses security concerns. Indeed, if a malicious person obtains such a card, he can freely load a program giving him access to all the resources of the card, which allows him to very finely study the behavior of the chip, and therefore easily develop attack strategies on other cards of the same type.
Il existe par ailleurs le principe de la machine virtuelle selon lequel le système d'exploitation de la carte n'accepte que des commandes ou des programmes qui sont écrits dans un langage différent du langage de commande du microprocesseur. Si le langage de commande du système d'exploitation ne donne pas accès à toutes les ressources de la carte, celle-ci est moins vulnérable. Toutefois, le système d'exploitation et la machine virtuelle doivent être préalablement chargés. S'ils sont chargés dans la mémoire non effaçable, on retrouve les problèmes de mise au point et de délais et coûts de fabrication mentionnés ci-avant. S'ils sont chargés dans la mémoire non volatile, comme ils sont écrits dans en langage machine, ils peuvent donc être remplacés par d'autres programmes permettant d'analyser le fonctionnement de la puce. Par conséquent, cette dernière solution rend la puce vulnérable. Dans ce contexte, l'invention a pour objet un procédé permettant au programme de chargement stocké dans la mémoire ROM de s'assurer qu'il charge un programme autorisé.There is also the principle of the virtual machine according to which the operating system of the card accepts only commands or programs which are written in a language different from the command language of the microprocessor. If the operating system command language does not give access to all of the card's resources, the card is less vulnerable. However, the operating system and the virtual machine must be loaded beforehand. If they are loaded into the non-erasable memory, there are the problems of development and of manufacturing times and costs mentioned above. If they are loaded into non-volatile memory, as they are written in machine language, they can therefore be replaced by other programs allowing to analyze the functioning of the chip. Consequently, the latter solution makes the chip vulnerable. In this context, the invention relates to a method allowing the loading program stored in the ROM memory to ensure that it loads an authorized program.
A cet effet, elle propose un procédé de chargement d'un programme dans une mémoire d'un composant électronique comprenant une unité de traitement.To this end, it proposes a method for loading a program into a memory of an electronic component comprising a processing unit.
Selon l'invention, ce procédé est caractérisé en ce qu'il comprend :According to the invention, this process is characterized in that it comprises:
- une première phase de chargement comprenant le chargement dans une première mémoire du composant par une première entité d'au moins une valeur caractéristique prédéfinie d'un programme autorisé à être utilisé par le composant,a first loading phase comprising the loading into a first memory of the component by a first entity of at least one predefined characteristic value of a program authorized to be used by the component,
- une seconde phase de chargement comprenant le chargement par une seconde entité d'un programme dans une seconde mémoire du composant, ladite seconde entité n'étant pas apte à effectuer un chargement dans la première mémoire,a second loading phase comprising the loading by a second entity of a program into a second memory of the component, said second entity not being able to perform loading into the first memory,
- une phase de vérification par l'unité de traitement du programme chargé, comprenant la détermination d'une valeur caractéristique du programme chargé, et la comparaison de cette valeur caractéristique aux valeurs caractéristiques prédéfinies chargées dans la première mémoire, eta verification phase by the processing unit of the loaded program, comprising the determination of a characteristic value of the loaded program, and the comparison of this characteristic value with the predefined characteristic values loaded in the first memory, and
- une phase d'activation par l'unité de traitement du programme chargé, comprenant l'activation du programme chargé uniquement si la valeur caractéristique du programme déterminée correspond à l'une des valeurs caractéristiques prédéfinies, chargées dans la première mémoire.an activation phase by the processing unit of the loaded program, comprising activating the loaded program only if the characteristic value of the determined program corresponds to one of the predefined characteristic values loaded in the first memory.
Grâce à ces dispositions, seuls les programmes préalablement vérifiés et référencés dans la première mémoire de la puce, qui peut être une mémoire non effaçable, peuvent être chargés dans la seconde mémoire et activés. Il n'est donc pas possible de charger un programme permettant d'étudier précisément le fonctionnement de la puce.Thanks to these provisions, only the programs previously checked and referenced in the first memory of the chip, which can be a non-erasable memory, can be loaded in the second memory and activated. It is therefore not possible to load a program allowing to study precisely the functioning of the chip.
Avantageusement, la phase de vérification est effectuée à la suite de la réception par l'unité de traitement d'une commande de fin de chargement associée à une signature d'authentification, et de la vérification que cette signature est acceptable.Advantageously, the verification phase is carried out following the reception by the processing unit of an end of loading command associated with an authentication signature, and of the verification that this signature is acceptable.
La valeur caractéristique peut être un identifiant de programme ou une valeur condensée du programme, obtenue en appliquant au programme une fonction de "hash" ou une fonction MAC (Message Authentification Code).The characteristic value can be a program identifier or a condensed value of the program, obtained by applying to the program a function of "hash" or a MAC (Message Authentication Code) function.
Selon une particularité de l'invention, la première phase de chargement comprend le. chargement dans la première mémoire du composant d'une table de correspondance associant pour chaque programme susceptible d'être chargé dans la seconde mémoire, une valeur caractéristique du programme et une définition d'adresses de zones mémoire où peut être chargé le programme, une commande de chargement d'un programme dans la seconde mémoire du composant n'étant exécutée que si elle contient des adresses de chargement correspondant à celles figurant dans la table de correspondance en association avec la valeur caractéristique transmise.According to a feature of the invention, the first loading phase comprises the. loading into the first memory of the component of a correspondence table associating for each program capable of being loaded into the second memory, a characteristic value of the program and a definition of addresses of memory areas where the program can be loaded, a command loading a program into the second memory of the component being executed only if it contains loading addresses corresponding to those appearing in the correspondence table in association with the characteristic value transmitted.
Si la valeur caractéristique du programme chargé est une valeur condensée du programme, la détermination de la valeur caractéristique du programme chargé peut être effectuée uniquement sur les zones mémoire définies dans la table de correspondance en association avec la valeur condensée transmise.If the characteristic value of the loaded program is a condensed value of the program, the determination of the characteristic value of the loaded program can be carried out only on the memory areas defined in the correspondence table in association with the condensed value transmitted.
Selon une autre particularité de l'invention, la table de correspondance comprend en outre une référence respective de tous les programmes susceptibles d'être chargés dans la seconde mémoire du composant, le procédé comprenant la transmission au composant de la référence du programme à charger, la lecture de table pour obtenir la valeur condensée associée à la référence de programme reçue, et la comparaison de la valeur condensée calculée avec la valeur condensée lue dans la table pour déterminer si le programme chargé dans la seconde mémoire peut être activé.According to another feature of the invention, the correspondence table further comprises a respective reference of all the programs capable of being loaded into the second memory of the component, the method comprising the transmission to the component of the reference of the program to be loaded, reading the table to obtain the condensed value associated with the received program reference, and comparing the calculated condensed value with the condensed value read from the table to determine whether the program loaded in the second memory can be activated.
Si la phase de vérification a échoué, on peut prévoir d'effacer le programme chargé dans la seconde mémoire.If the verification phase has failed, provision can be made to erase the program loaded in the second memory.
Alternativement, chaque programme chargé en mémoire peut être associé à un indicateur d'autorisation d'activation, permettant d'interdire ou d'autoriser l'activation ultérieure du programme correspondant selon que la phase de vérification a échoué ou non.Alternatively, each program loaded into memory can be associated with an activation authorization indicator, making it possible to prohibit or authorize the subsequent activation of the corresponding program depending on whether the verification phase has failed or not.
Les programmes susceptibles d'être chargés dans la seconde mémoire, comprennent des zones libres dont les adresses sont prédéfinies pour recevoir des informations ponctuelles. Ils peuvent être des programmes modulaires, chaque module ayant une valeur caractéristique stockée dans la première mémoire.The programs that can be loaded into the second memory include free areas whose addresses are predefined for receiving specific information. They can be modular programs, each module having a value characteristic stored in the first memory.
La première phase est avantageusement effectuée une seule fois et de manière irréversible.The first phase is advantageously carried out once and irreversibly.
On peut prévoir en outre un mode d'extension sécurisé permettant d'ajouter dans une mémoire du composant une valeur caractéristique de programme susceptible d'être chargé dans la seconde mémoire.It is also possible to provide a secure extension mode making it possible to add to a memory of the component a characteristic value of the program capable of being loaded into the second memory.
L'invention concerne également un composant électronique permettant de mettre en œuvre le procédé décrit ci-avant.The invention also relates to an electronic component making it possible to implement the method described above.
Un mode de mise en œuvre du procédé selon l'invention sera décrit ci-après, à titre d'exemple non limitatif, avec référence aux dessins annexés dans lesquels :An embodiment of the method according to the invention will be described below, by way of nonlimiting example, with reference to the appended drawings in which:
La figure 1 représente schématiquement le composant électronique d'une carte à puce ;FIG. 1 schematically represents the electronic component of a smart card;
La figure 2 montre l'organisation de la mémoire non volatile du composant à la fin de la phase de chargement des informations non confidentielles ;FIG. 2 shows the organization of the non-volatile memory of the component at the end of the loading phase of the non-confidential information;
La figure 3 montre sous la forme d'un organigramme l'enchaînement des différentes étapes du procédé selon l'invention.Figure 3 shows in the form of a flowchart the sequence of the different stages of the method according to the invention.
La figure 1 montre un composant électronique 1 conçu pour être intégré dans une carte à puce dite intelligente. Ce composant comprend généralement une unité de traitement 2 ou microprocesseur, reliée par un bus de communication 3 à des mémoires 4, 5, 6, et à une liaison 7 vers un terminal de lecture et éventuellement d'écriture. Cette liaison est constituée soit de plages de contact dans le cas d'une carte à puce à contacts, soit par une antenne dans le cas d'une carte à puce sans contact. Ces mémoires comportent une mémoire non réinscriptible et non effaçable 4, par exemple de type ROM, une mémoire non volatile 5 accessible en écriture et en lecture, par exemple de type EEPROM ou FLASH, et une mémoire volatile 6 ou RAM.FIG. 1 shows an electronic component 1 designed to be integrated into a so-called smart card. This component generally comprises a processing unit 2 or microprocessor, connected by a communication bus 3 to memories 4, 5, 6, and to a link 7 to a reading and possibly writing terminal. This link is made up either of contact pads in the case of a smart card with contacts, or by an antenna in the case of a smart card without contact. These memories include a non-rewritable and non-erasable memory 4, for example of the ROM type, a non-volatile memory 5 accessible for writing and reading, for example of the EEPROM or FLASH type, and a volatile memory 6 or RAM.
Conformément au procédé selon l'invention 20 illustré sur la figure 3, on applique tout d'abord au composant électronique un traitement d'initialisation 21 effectué au moment de sa fabrication. Ce traitement consiste à inscrire dans la mémoire 4 un programme permettant le chargement de la mémoire non volatile 5, ainsi qu'une table comprenant pour chaque programme susceptible d'être chargé dans la mémoire 5, une valeur caractéristique du programme ou des 5 adresses de chargement de celui-ci dans la mémoire 5. Cette valeur caractéristique peut être un identifiant du programme ou une valeur condensée de celui-ci ou des adresses de chargement. Cette valeur condensée peut-être obtenue par un calcul de CRC (Cyclic Redundancy Check), ou encore par un algorithme de "hash", par exemple la fonction SHA-1 (Secure Hash Algorithm - 10 1), permettant d'obtenir une séquence binaire, par exemple de 160 bits, représentant de manière condensée le code du programme. Une telle fonction est conçue de manière à ce qu'une légère modification de contenu entraîne une modification importante de la séquence binaire ainsi calculée.In accordance with the method according to the invention 20 illustrated in FIG. 3, an initialization treatment 21 is first applied to the electronic component made at the time of its manufacture. This processing consists in writing in the memory 4 a program allowing the loading of the non-volatile memory 5, as well as a table comprising for each program capable of being loaded in the memory 5, a value characteristic of the program or of the 5 addresses of loading it into the memory 5. This characteristic value can be an identifier of the program or a condensed value of the latter or of the loading addresses. This condensed value can be obtained by a CRC calculation (Cyclic Redundancy Check), or even by a "hash" algorithm, for example the SHA-1 function (Secure Hash Algorithm - 10 1), allowing to obtain a sequence binary, for example 160 bits, representing in condensed form the program code. Such a function is designed so that a slight modification of content results in a significant modification of the binary sequence thus calculated.
15 La table comprend de préférence également, la définition des adresses de la zone mémoire où doit être chargé le programme dans la mémoire 5.The table preferably also includes the definition of the addresses of the memory area where the program is to be loaded into memory 5.
Cette table peut également comprendre une référence de chaque programme susceptible d'être chargé dans la mémoire 5, en association avec la valeur 20 caractéristique du programme.This table can also include a reference of each program capable of being loaded into memory 5, in association with the characteristic value of the program.
Durant cette phase, on peut également prévoir de charger dans la mémoire 4 des informations confidentielles, telles qu'un numéro de série et une clé secrète qui peut être déterminée en fonction du numéro de série. 25During this phase, provision can also be made to load into the memory 4 confidential information, such as a serial number and a secret key which can be determined as a function of the serial number. 25
Le programme de chargement stocké dans la mémoire 4 est conçu de manière à être activé dès la mise sous tension du composant 1 et pour se mettre en attente du chargement d'un programme applicatif ou d'un système d'exploitation.The loading program stored in the memory 4 is designed so as to be activated as soon as the component 1 is powered up and to wait for the loading of an application program or an operating system.
30 Durant la phase suivante du procédé selon l'invention, le composant 1 est connecté à un terminal de programmation par l'intermédiaire de la liaison 7, le terminal transmettant au composant une ou plusieurs commandes d'écriture d'un programme applicatif (étape 22). Chaque commande contient une adresse d'écriture et le programme ou la partie de programme à charger à l'adresseDuring the next phase of the method according to the invention, the component 1 is connected to a programming terminal via the link 7, the terminal transmitting to the component one or more commands for writing an application program (step 22). Each command contains a write address and the program or part of the program to be loaded at the address
35. indiquée, et éventuellement la taille des informations à charger contenues dans la commande de chargement.35. indicated, and possibly the size of the information to be loaded contained in the loading command.
Le programme ainsi transmis est chargé dans la mémoire 5. A la fin de ce chargement qui peut être indiqué par le terminal en envoyant une commande de fin de chargement, le microprocesseur 2 passe à une phase de vérification 23. La commande de fin de chargement peut être associée à une signature, par exemple un code MAC, permettant d'authentifier l'entité qui vient d'effectuer le chargement. Si la signature n'est pas valide, le programme chargé ne peut pas être validé et activé.The program thus transmitted is loaded into memory 5. At the end of this loading which can be indicated by the terminal by sending an end of loading command, the microprocessor 2 goes to a verification phase 23. The end of loading command can be associated with a signature, for example a code MAC, used to authenticate the entity that has just loaded. If the signature is not valid, the loaded program cannot be validated and activated.
Durant la phase de vérification du programme chargé, le microprocesseur 2 détermine la valeur caractéristique du programme ainsi chargé dans la mémoire 5. Ensuite, le microprocesseur 2 compare 24 la valeur caractéristique ainsi obtenue aux valeurs de référence qui ont été préalablement chargées dans la mémoire non effaçable 4. Si la valeur calculée ne correspond pas à l'une des valeurs mémorisées dans la mémoire 4, le chargement du programme est considéré comme ayant échoué et le programme de chargement se met en. attente d'une nouvelle commande de chargement, après avoir éventuellement émis un message d'erreur au terminal de programmation. Dans le cas contraire, la phase de chargement du programme applicatif est validée et celui-ci peut être activé 25.During the verification phase of the loaded program, the microprocessor 2 determines the characteristic value of the program thus loaded in the memory 5. Then, the microprocessor 2 compares 24 the characteristic value thus obtained with the reference values which were previously loaded in the memory not erasable 4. If the calculated value does not correspond to one of the values memorized in memory 4, the loading of the program is considered to have failed and the loading program starts . waiting for a new load command, after possibly sending an error message to the programming terminal. Otherwise, the loading phase of the application program is validated and it can be activated 25.
A la fin du chargement du programme applicatif, le contenu de la mémoire peut être par exemple tel quel représenté sur la figure 2. Sur cette figure, le programme chargé est un système d'exploitation occupant deux zones 13, 14, dans la mémoire 5, les autres zones 12 de la mémoire (entre les zones 13 et 14 et après la zone 14) restant libres et permettant à l'utilisateur d'inclure ses propres données ou programmes.At the end of the loading of the application program, the content of the memory can for example be as shown in FIG. 2. In this figure, the loaded program is an operating system occupying two zones 13, 14, in the memory 5 , the other zones 12 of the memory (between zones 13 and 14 and after zone 14) remaining free and allowing the user to include his own data or programs.
Le programme applicatif chargé peut également inclure des zones libres 11 prévues pour recevoir des informations confidentielles au cours d'une étape de personnalisation confidentielle. Dans ce cas, le programme applicatif lorsqu'il est activé à l'étape 25 se met en attente de commandes de chargement de ces informations confidentielles.The loaded application program can also include free areas 11 provided for receiving confidential information during a confidential personalization step. In this case, the application program when activated in step 25 waits for commands to load this confidential information.
A la réception d'une telle commande, le programme de chargement en mémoire 4 vérifie dans la table de correspondance que l'adresse d'écriture transmise fait partie de la zone mémoire où doit être chargé le programme ayant la référence transmise.On receipt of such a command, the memory loading program 4 checks in the correspondence table that the transmitted writing address is part of the memory area where the program having the transmitted reference must be loaded.
Chaque valeur caractéristique de programme susceptible d'être chargé dans la mémoire 5 peut être avantageusement stockée dans la mémoire 4 dans une table de correspondance où elle est associée à des valeurs d'adresses de zones mémoire où doit être chargé le programme. . .Each characteristic program value that can be loaded into the memory 5 can advantageously be stored in memory 4 in a correspondence table where it is associated with address values of memory zones where the program must be loaded. . .
On peut ainsi prévoir qu'un chargement de programme n'est effectué par l'unité de traitement 2 que si les adresses transmises dans la commande de chargement du programme, correspondent à celles qui sont stockées dans la mémoire 4 en association avec la valeur caractéristique du programme.It is thus possible to provide for a program loading to be carried out by the processing unit 2 only if the addresses transmitted in the program loading command correspond to those which are stored in the memory 4 in association with the characteristic value. from the program.
On peut également prévoir que le calcul de valeur caractéristique effectué par le programme de chargement ne porte que sur les zones mémoires définies dans la table de correspondance en association avec la valeur caractéristique du programme chargé.It can also be provided that the characteristic value calculation carried out by the loading program relates only to the memory areas defined in the correspondence table in association with the characteristic value of the loaded program.
La mémoire 4 peut également mémoriser une référence de programme en association avec chaque valeur caractéristique de programme susceptible d'être chargé dans la mémoire 5. Dans ce cas, les commandes de chargement incluent cette référence, et le programme de chargement recherche dans la mémoire 4, la référence transmise dans la commande de chargement reçue, et compare la valeur caractéristique calculée avec celle qui est mémorisée dans la mémoire 4 en association avec la référence transmise.The memory 4 can also store a program reference in association with each characteristic program value which can be loaded into the memory 5. In this case, the loading commands include this reference, and the loading program searches in the memory 4 , the reference transmitted in the load command received, and compares the characteristic value calculated with that which is stored in memory 4 in association with the reference transmitted.
Le procédé qui vient d'être décrit peut être réalisé de manière à pouvoir s'appliquer au chargement de plusieurs programmes applicatifs ou systèmes d'exploitation. Dans ce cas, les zones de la mémoire 5 où doivent être chargés les programmes à stocker simultanément sont bien entendu disjointes. Ainsi, on peut prévoir d'effectuer la vérification du chargement (étape 23) lorsque toutes les commandes de chargement ont été exécutées, en effectuant un calcul de valeur caractéristique sur chaque zone mémoire associée dans la table de correspondance à une référence de programme reçue.The process which has just been described can be carried out so that it can be applied to the loading of several application programs or operating systems. In this case, the areas of the memory 5 where the programs to be stored must be loaded simultaneously are of course separate. Thus, provision can be made to verify the loading (step 23) when all the loading commands have been executed, by performing a characteristic value calculation on each memory area associated in the correspondence table with a received program reference.
En outre, à la mise sous tension du composant, il faut prévoir un moyen de sélection du programme applicatif à activer.In addition, when the component is powered up, provision must be made for selecting the application program to be activated.
De même, le procédé qui vient d'être décrit peut également être appliqué à un programme applicatif ou système d'exploitation modulaire. Dans ce cas, chaque module du programme applicatif est associé à une référence de programme qui figure dans la table de correspondance en association avec une adresse de chargement et une valeur caractéristique du module. Bien entendu, un tel programme modulaire doit être conçu pour n'exécuter une commande que si elle appartient à un module préalablement chargé. On peut donc prévoir d'exécuter une procédure d'initialisation au cours de laquelle le microprocesseur 2 détecte les modules chargés pour valider les commandes correspondantes.Likewise, the method which has just been described can also be applied to an application program or modular operating system. In this case, each module of the application program is associated with a program reference which appears in the correspondence table in association with a loading address and a characteristic value of the module. Of course, such modular program must be designed to execute a command only if it belongs to a module previously loaded. Provision can therefore be made to execute an initialization procedure during which the microprocessor 2 detects the modules loaded to validate the corresponding commands.
Il est à noter que le procédé selon l'invention est parfaitement adapté au chargement de systèmes d'exploitation réalisant ce que l'on appelle une machine virtuelle, c'est-à-dire capables d'exécuter des programmes écrits dans un langage spécifique différent du langage de commande du microprocesseur 2.It should be noted that the method according to the invention is perfectly suited for loading operating systems carrying out what is called a virtual machine, that is to say capable of executing programs written in a specific language. different from the microprocessor control language 2.
On peut prévoir un moyen pour interdire l'exécution d'un programme non Validé. Ce moyen peut consister à effacer la zone mémoire qui a été chargée avec le programme reçu non valide. Il peut également consister en une table d'indicateurs, à raison d'un indicateur par programme chargé, l'activation d'un programme n'étant effectuée que si l'indicateur correspondant autorise cette activation.A means can be provided to prohibit the execution of an invalidated program. This means can consist in erasing the memory zone which was loaded with the received invalid program. It can also consist of an indicator table, at the rate of one indicator per loaded program, the activation of a program being carried out only if the corresponding indicator authorizes this activation.
Dans le cas où les adresses de chargement de chaque programme autorisé ne sont pas imposées, on peut autoriser un nouveau chargement de programme dans une zone mémoire dans laquelle un programme a déjà été validé. Dans ce cas, il faut prévoir une procédure qui peut être activée systématiquement à chaque chargement, permettant d'interdire l'utilisation ultérieure du programme préalablement chargé qui est écrasé par le nouveau chargement. On peut à cet effet prévoir une table de validation dans laquelle est inscrite la définition des adresses de la zone mémoire où est chargé chaque programme, en association avec un indicateur de validation représentant l'état validé ou non du programme correspondant. Si l'unité de traitement reçoit une commande de chargement dans une zone mémoire qui est référencée dans la table de validation comme ayant été préalablement validée, elle exécute la commande de chargement en ayant au préalable changé l'état de l'indicateur de validation correspondant.In the case where the loading addresses of each authorized program are not imposed, a new program loading can be authorized in a memory zone in which a program has already been validated. In this case, a procedure must be provided which can be activated systematically at each load, making it possible to prohibit the subsequent use of the previously loaded program which is overwritten by the new load. To this end, it is possible to provide a validation table in which is included the definition of the addresses of the memory area where each program is loaded, in association with a validation indicator representing the validated state or not of the corresponding program. If the processing unit receives a loading command in a memory area which is referenced in the validation table as having been previously validated, it executes the loading command having previously changed the state of the corresponding validation indicator .
On peut prévoir également un mode d'extension sécurisé permettant d'ajouter une valeur condensée de programme susceptible d'être chargé dans la mémoire 5. Une telle extension peut par exemple être effectuée à l'aide d'une commande prévue à cet effet, cette commande étant associée à un code MAC appliqué à la commande permettant au microprocesseur 2 d'authentifier l'entité qui a émis une telle commande. De cette manière, l'ensemble des valeurs caractéristiques des programmes susceptibles d'être chargés dans la mémoire du composant peuvent être toutes stockées dans une mémoire non volatile et effaçable du composant. It is also possible to provide a secure extension mode making it possible to add a condensed program value capable of being loaded into the memory 5. Such an extension can for example be carried out using a command provided for this purpose, this command being associated with a MAC code applied to the command allowing the microprocessor 2 to authenticate the entity which issued such a command. In this way, the set of characteristic values programs capable of being loaded into the memory of the component can all be stored in a non-volatile and erasable memory of the component.

Claims

REVENDICATIONS
1. Procédé de chargement d'un programme dans une mémoire d'un composant électronique (1) comprenant une unité de traitement (2), caractérisé en ce qu'il comprend :1. Method for loading a program into a memory of an electronic component (1) comprising a processing unit (2), characterized in that it comprises:
- une première phase de chargement comprenant le chargement dans une première mémoire (4) du composant (1) par une première entité d'au moins une valeur caractéristique prédéfinie d'un programme autorisé à être utilisé par le composant, - une seconde phase de chargement (22) comprenant le chargement par une seconde entité d'un programme dans une seconde mémoire (5) du composant (1), ladite seconde entité n'étant pas apte à effectuer un chargement dans la première mémoire (4),- a first loading phase comprising loading into a first memory (4) of the component (1) by a first entity of at least one predefined characteristic value of a program authorized to be used by the component, - a second phase of loading (22) comprising the loading by a second entity of a program into a second memory (5) of the component (1), said second entity not being capable of performing loading into the first memory (4),
- une phase de vérification (23) par l'unité de traitement du programme chargé, comprenant la détermination d'une valeur caractéristique du programme chargé, et la comparaison de cette valeur caractéristique aux valeurs caractéristiques prédéfinies chargées dans la première mémoire, eta verification phase (23) by the processing unit of the loaded program, comprising the determination of a characteristic value of the loaded program, and the comparison of this characteristic value with the predefined characteristic values loaded in the first memory, and
- une phase d'activation (25) par l'unité de traitement du programme chargé, comprenant l'activation du programme chargé uniquement si la valeur caractéristique du programme déterminée correspond à l'une des valeurs . caractéristiques prédéfinies, chargées dans la première mémoire.an activation phase (25) by the processing unit of the loaded program, comprising activating the loaded program only if the characteristic value of the determined program corresponds to one of the values. predefined characteristics, loaded into the first memory.
2. Procédé selon la revendication 1 , caractérisé en ce que la phase de vérification est effectuée à la suite de la réception par l'unité de traitement (2) d'une commande de fin de chargement.2. Method according to claim 1, characterized in that the verification phase is carried out following the reception by the processing unit (2) of an end of loading command.
3. Procédé selon la revendication 2, caractérisé en ce que la commande de fin de chargement est associée à une signature d'authentification qui est vérifiée, la phase de vérification n'étant effectuée que si cette signature est acceptable.3. Method according to claim 2, characterized in that the end of loading command is associated with an authentication signature which is verified, the verification phase being carried out only if this signature is acceptable.
4. Procédé selon la revendication 1 ou 3, caractérisé en ce que la valeur caractéristique est un identifiant de programme.4. Method according to claim 1 or 3, characterized in that the characteristic value is a program identifier.
5. Procédé selon la revendication 1 ou 3, caractérisé en ce que la valeur caractéristique est une valeur condensée du programme. 5. Method according to claim 1 or 3, characterized in that the characteristic value is a condensed value of the program.
._._
6. Procédé selon la revendication 1 ou 3, caractérisé en ce que la valeur caractéristique est une valeur condensée du programme obtenue en appliquant au programme une fonction de "hash".6. Method according to claim 1 or 3, characterized in that the characteristic value is a condensed value of the program obtained by applying to the program a "hash" function.
7. Procédé selon la revendication 1 ou 3, caractérisé en ce que la valeur caractéristique est une valeur condensée du programme obtenue en appliquant au programme une fonction MAC.7. Method according to claim 1 or 3, characterized in that the characteristic value is a condensed value of the program obtained by applying to the program a MAC function.
8. Procédé selon l'une des revendications 1 à 7, caractérisé en ce que la première phase de chargement comprend le chargement dans la première mémoire (4) du composant d'une table de correspondance associant pour chaque programme susceptible d'être chargé dans la seconde mémoire (5), une valeur caractéristique du programme et des informations de définition de zones mémoire où peut être chargé le programme, une commande de chargement d'un programme dans la seconde mémoire (5) du composant n'étant exécutée que si elle contient des adresses de chargement correspondant à celles figurant dans la table de correspondance en association avec la valeur caractéristique transmise.8. Method according to one of claims 1 to 7, characterized in that the first loading phase comprises loading into the first memory (4) the component of a correspondence table associating for each program capable of being loaded in the second memory (5), a characteristic value of the program and information defining memory areas where the program can be loaded, a command for loading a program into the second memory (5) of the component being executed only if it contains loading addresses corresponding to those appearing in the correspondence table in association with the transmitted characteristic value.
9. Procédé selon la revendication 8, caractérisé en ce la valeur caractéristique est une valeur condensée du programme, et en ce que la détermination de la valeur caractéristique du programme chargé est effectuée uniquement sur les zones mémoire définies dans la table de correspondance en association avec la valeur condensée transmise.9. Method according to claim 8, characterized in that the characteristic value is a condensed value of the program, and in that the determination of the characteristic value of the loaded program is carried out only on the memory areas defined in the correspondence table in association with the condensed value transmitted.
10. Procédé selon la revendication 8 ou 9, caractérisé en ce qu'il comprend en outre la transmission au composant d'une référence du programme à charger, la lecture de la table de correspondance dans laquelle chaque valeur condensée de programme est associée à une référence de programme respective, pour obtenir la valeur condensée associée à la référence de programme reçue, et la comparaison de la valeur condensée calculée avec la valeur condensée lue dans la table pour déterminer si le programme chargé dans la seconde mémoire peut être activé.10. Method according to claim 8 or 9, characterized in that it further comprises the transmission to the component of a reference of the program to be loaded, the reading of the correspondence table in which each condensed program value is associated with a respective program reference, to obtain the condensed value associated with the received program reference, and comparing the calculated condensed value with the condensed value read from the table to determine whether the program loaded in the second memory can be activated.
11. Procédé selon l'une des revendications 1 à 10, caractérisé en ce que si la phase de vérification a échoué, le programme chargé dans la seconde mémoire est effacé. 11. Method according to one of claims 1 to 10, characterized in that if the verification phase has failed, the program loaded in the second memory is erased.
12. Procédé selon l'une des revendications 1 à 10, caractérisé en ce que chaque programme chargé en mémoire est associé à un indicateur d'autorisation d'activation, permettant d'interdire ou d'autoriser l'utilisation du programme correspondant selon que la phase de vérification a échoué ou non.12. Method according to one of claims 1 to 10, characterized in that each program loaded in memory is associated with an activation authorization indicator, making it possible to prohibit or authorize the use of the corresponding program according to whether the verification phase has failed or not.
13. Procédé selon l'une des revendications 1 à 12, caractérisé en ce qu'il comprend avant chaque chargement d'une zone mémoire l'invalidation de ladite zone mémoire pour rendre son contenu inutilisable, de manière à interdire l'utilisation ultérieure d'un programme préalablement chargé dans ladite zone mémoire qui est modifié par un nouveau chargement.13. Method according to one of claims 1 to 12, characterized in that before each loading of a memory area the invalidation of said memory area to make its content unusable, so as to prohibit the subsequent use d 'A program previously loaded in said memory area which is modified by a new loading.
14. Procédé selon l'une des revendications 1 à 13, caractérisé en ce que les programmes susceptibles d'être chargés dans la seconde mémoire, ' comprennent des zones libres dont les adresses sont prédéfinies pour recevoir des informations ponctuelles.14. Method according to one of claims 1 to 13, characterized in that the programs capable of being loaded into the second memory, ' include free areas whose addresses are predefined to receive punctual information.
15. Procédé selon l'une des revendications 1 à 14, caractérisé en ce que les programmes susceptibles d'être chargés dans la seconde mémoire, sont des programmes modulaires, chaque module ayant une valeur caractéristique stockée dans la première mémoire.15. Method according to one of claims 1 to 14, characterized in that the programs capable of being loaded into the second memory, are modular programs, each module having a characteristic value stored in the first memory.
16. Procédé selon l'une des revendications 1 à 15, caractérisé en ce que la première phase est effectuée une seule fois et de manière irréversible.16. Method according to one of claims 1 to 15, characterized in that the first phase is carried out only once and irreversibly.
17. Procédé selon l'une des revendications 1 à 15, caractérisé en ce qu'il comprend un mode d'extension sécurisé permettant d'ajouter dans la première mémoire une valeur caractéristique de programme susceptible d'être chargé dans la seconde mémoire.17. Method according to one of claims 1 to 15, characterized in that it comprises a secure extension mode making it possible to add in the first memory a characteristic value of the program capable of being loaded in the second memory.
18. Composant électronique (1) comprenant une unité de traitement18. Electronic component (1) comprising a processing unit
(2), caractérisé en ce qu'il comprend au moins une première mémoire (4) accessible uniquement par une première entité et dans laquelle est stocké au moins une valeur caractéristique d'un programme susceptible d'être chargé dans une seconde mémoire (5), l'unité de traitement (2) comprenant des moyens pour recevoir une commande de chargement d'un programme et charger ce programme dans la seconde mémoire, des moyens pour déterminer une valeur caractéristique du programme chargé dans la seconde mémoire, des moyens pour comparer la valeur caractéristique déterminée avec les valeurs caractéristiques stockées dans la première mémoire, et des moyens pour activer le programme chargé dans la seconde mémoire si la valeur caractéristique déterminée correspond à une valeur caractéristique stockée dans la première mémoire.(2), characterized in that it comprises at least a first memory (4) accessible only by a first entity and in which is stored at least one characteristic value of a program capable of being loaded in a second memory (5 ), the processing unit (2) comprising means for receiving a command to load a program and loading this program into the second memory, means for determining a characteristic value of the program loaded in the second memory, means for comparing the determined characteristic value with the characteristic values stored in the first memory , and means for activating the program loaded in the second memory if the determined characteristic value corresponds to a characteristic value stored in the first memory.
19. Composant électronique selon la revendication 18, caractérisé en ce que la première mémoire (4) est une mémoire non effaçable, et la seconde mémoire (5) est une mémoire non volatile et effaçable.19. Electronic component according to claim 18, characterized in that the first memory (4) is a non-erasable memory, and the second memory (5) is a non-volatile and erasable memory.
20. Composant électronique selon la revendication 18, caractérisé en ce que la première mémoire (4) est une mémoire effaçable, protégée de manière a être accessible en écriture uniquement par une entité autorisée.20. Electronic component according to claim 18, characterized in that the first memory (4) is an erasable memory, protected so as to be accessible in writing only by an authorized entity.
21. Carte à microcircuit, caractérisée en ce qu'elle comprend un composant électronique selon l'une des revendications 18 à 20. 21. Microcircuit card, characterized in that it comprises an electronic component according to one of claims 18 to 20.
PCT/FR2001/003564 2000-11-14 2001-11-14 Method for verifying before activating a programme loaded in a smart card WO2002041235A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2002223068A AU2002223068A1 (en) 2000-11-14 2001-11-14 Method for verifying before activating a programme loaded in a smart card

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR00/14634 2000-11-14
FR0014634A FR2816729B1 (en) 2000-11-14 2000-11-14 VERIFICATION PROCESS BEFORE ACTIVATION OF A PROGRAM LOADED IN A CHIP CARD

Publications (2)

Publication Number Publication Date
WO2002041235A2 true WO2002041235A2 (en) 2002-05-23
WO2002041235A3 WO2002041235A3 (en) 2002-12-27

Family

ID=8856426

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2001/003564 WO2002041235A2 (en) 2000-11-14 2001-11-14 Method for verifying before activating a programme loaded in a smart card

Country Status (3)

Country Link
AU (1) AU2002223068A1 (en)
FR (1) FR2816729B1 (en)
WO (1) WO2002041235A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009047438A1 (en) * 2007-09-18 2009-04-16 Thomson Licensing Semi-permament application hosting

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007104899A1 (en) * 2006-03-16 2007-09-20 Thomson Licensing Method for robust software updating

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2777673A1 (en) * 1998-04-15 1999-10-22 Bull Cp8 INFORMATION PROCESSING DEVICE COMPRISING MEANS FOR MANAGING VIRTUAL MEMORY, AND INFORMATION STORAGE METHOD THEREOF

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2777673A1 (en) * 1998-04-15 1999-10-22 Bull Cp8 INFORMATION PROCESSING DEVICE COMPRISING MEANS FOR MANAGING VIRTUAL MEMORY, AND INFORMATION STORAGE METHOD THEREOF

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009047438A1 (en) * 2007-09-18 2009-04-16 Thomson Licensing Semi-permament application hosting

Also Published As

Publication number Publication date
FR2816729B1 (en) 2003-02-07
AU2002223068A1 (en) 2002-05-27
WO2002041235A3 (en) 2002-12-27
FR2816729A1 (en) 2002-05-17

Similar Documents

Publication Publication Date Title
EP0540095B1 (en) Microcircuit for an IC-card with protected programmable memory
EP2688010B1 (en) Update of an operating system for a secure element
EP0651394B1 (en) Integrated circuit comprising a protected memory and protected circuit using said integrated circuit
EP0621569A1 (en) Protection device of the keys of a chip card
EP1605333B1 (en) Program execution control
FR2646942A1 (en) MAP WITH INTEGRATED CIRCUIT
EP0785514A1 (en) Secure programme operating method in a microprocessor card comprising a secure programme
EP0552079A1 (en) Mass memory card for microcomputer
FR2777673A1 (en) INFORMATION PROCESSING DEVICE COMPRISING MEANS FOR MANAGING VIRTUAL MEMORY, AND INFORMATION STORAGE METHOD THEREOF
FR2686171A1 (en) MEMORY MEMORY CARD FOR MICROCOMPUTER WITH FACILITIES FOR EXECUTING INTERNAL PROGRAMS.
WO2005109742A1 (en) Secure data processing method and associated device
FR2960328A1 (en) METHOD FOR MANAGING INTEGRATED CIRCUITS WITH INTERNAL GENERATION OF A PERSONAL AUTHENTICATION KEY
EP0735489A1 (en) Method of protecting zones of non-volatile memories
WO2002041267A1 (en) Method for loading and customizing data and programmes loaded in a smart card
FR2960327A1 (en) METHOD AND SYSTEM FOR ACCESSING AN INTEGRATED CIRCUIT COMPRISING A PERSONAL AUTHENTICATION KEY
EP2336938B1 (en) Method for controlling access to a contactless interface in an integrated circuit with double communication interface, with and without contact
WO2002041235A2 (en) Method for verifying before activating a programme loaded in a smart card
FR2805073A1 (en) SECURE REAL TIME WRITING FOR NON-VOLATILE MEMORY
WO1997040474A1 (en) Security access control system enabling transfer of authorisation to make keys
WO1997040473A1 (en) Security access control system enabling automatic invalidation of stolen or lost electronic keys and/or transfer of authorisation to make keys
EP2252978B1 (en) Integrated circuit card having a modifiable operating program and corresponding method of modification
EP1547005B9 (en) Microcircuit card whereof the performances can be modified after customization
EP3179400B1 (en) Method for loading a computing resource into an electronic device, electronic module and corresponding computer program
FR3042626A1 (en) METHOD AND SYSTEM FOR SECURE ACCESS AND DISCRIMINATION TO INTEGRATED CIRCUIT SERVICES BY DIVERSIFYING A SINGLE ROOT KEY
EP3690685A1 (en) Method for authenticating a user and associated device

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP