WO2002041235A2 - Procede de verification avant activation d'un programme charge dans une carte a puce - Google Patents
Procede de verification avant activation d'un programme charge dans une carte a puce Download PDFInfo
- 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
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software 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
Description
Claims
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 (fr) | 2000-11-14 | 2000-11-14 | Procede de verification avant activation d'un programme charge dans une carte a puce |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2002041235A2 true WO2002041235A2 (fr) | 2002-05-23 |
| WO2002041235A3 WO2002041235A3 (fr) | 2002-12-27 |
Family
ID=8856426
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/FR2001/003564 Ceased WO2002041235A2 (fr) | 2000-11-14 | 2001-11-14 | Procede de verification avant activation d'un programme charge dans une carte a puce |
Country Status (3)
| Country | Link |
|---|---|
| AU (1) | AU2002223068A1 (fr) |
| FR (1) | FR2816729B1 (fr) |
| WO (1) | WO2002041235A2 (fr) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2009047438A1 (fr) * | 2007-09-18 | 2009-04-16 | Thomson Licensing | Hebergement d'applications semi-permanent |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007104899A1 (fr) * | 2006-03-16 | 2007-09-20 | Thomson Licensing | Procede de mise a jour robuste de logiciel |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2777673B1 (fr) * | 1998-04-15 | 2001-09-21 | Bull Cp8 | Dispositif de traitement de l'information comprenant des moyens pour gerer une memoire virtuelle, et procede de stockage d'informations associe |
-
2000
- 2000-11-14 FR FR0014634A patent/FR2816729B1/fr not_active Expired - Fee Related
-
2001
- 2001-11-14 AU AU2002223068A patent/AU2002223068A1/en not_active Abandoned
- 2001-11-14 WO PCT/FR2001/003564 patent/WO2002041235A2/fr not_active Ceased
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2009047438A1 (fr) * | 2007-09-18 | 2009-04-16 | Thomson Licensing | Hebergement d'applications semi-permanent |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2002041235A3 (fr) | 2002-12-27 |
| AU2002223068A1 (en) | 2002-05-27 |
| FR2816729A1 (fr) | 2002-05-17 |
| FR2816729B1 (fr) | 2003-02-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0540095B1 (fr) | Microcircuit pour carte à puce à mémoire programmable protégée | |
| EP2688010B1 (fr) | Mise à jour d'un système d'exploitation pour élément sécurisé | |
| EP0651394B1 (fr) | Circuit intégré contenant une mémoire protégée et système sécurisé utilisant ledit circuit intégré | |
| EP0785514B1 (fr) | Procédé de mise en oeuvre d'un programme sécurisé dans une carte à microprocesseur et carte à microprocesseur comportant un programme sécurisé | |
| EP0621569A1 (fr) | Dispositif de protection des clés d'une carte à puce | |
| FR2646942A1 (fr) | Carte a circuit integre | |
| EP0552079A1 (fr) | Carte à mémoire de masse pour microordinateur | |
| FR2777673A1 (fr) | Dispositif de traitement de l'information comprenant des moyens pour gerer une memoire virtuelle, et procede de stockage d'informations associe | |
| FR2686171A1 (fr) | Carte a memoire de masse pour microordinateur avec facilites d'execution de programmes internes. | |
| CA2296009A1 (fr) | Procede de gestion d'un terminal securise | |
| FR2960328A1 (fr) | Procede de gestion de circuits integres avec generation interne d'une cle personnelle d'authentification | |
| WO2002041267A1 (fr) | Procede de chargement et de personnalisation des informations et programmes charges dans une carte a puce | |
| EP1605333B1 (fr) | Contrôle de l'exécution d'un programme | |
| EP0735489A1 (fr) | Procédé de protection de zones de mémoires non volatiles | |
| FR2960327A1 (fr) | Procede et systeme d'acces a un circuit integre comprenant une cle personnelle d'authentification | |
| EP4032000B1 (fr) | Système sur puce et procédé garantissant la fraicheur des données stockées dans une mémoire extérieure | |
| EP2336938B1 (fr) | Procédé de contrôle d'accès à une interface sans contact dans un circuit intégré à double interface de communication avec et sans contact | |
| WO2002041235A2 (fr) | Procede de verification avant activation d'un programme charge dans une carte a puce | |
| WO2005109742A1 (fr) | Procédé de traitement de données sécurisé et dispositif associé | |
| FR2805073A1 (fr) | Ecriture en temps reel securisee pour memoire non volatile | |
| EP2252978B1 (fr) | Carte a circuit integre ayant un programme d'exploitation modifiable et procede de modification correspondant | |
| EP1547005B9 (fr) | Carte à microcircuit dont les performances peuvent être modifiées après personnalisation | |
| EP3514749B1 (fr) | Procede de controle de regles de dependances d'objets mis a jour dans un microcircuit, et dispositif correspondant | |
| EP3179400B1 (fr) | Procédé de chargement d'une ressource informatique au sein d'un dispositif électronique, module électronique et programme d'ordinateur correspondant | |
| WO2019234346A1 (fr) | Carte a puce personnalisable de façon securisée et procede de personnalisation securisé |
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 |