[go: up one dir, main page]

FR2816729A1 - 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 PDF

Info

Publication number
FR2816729A1
FR2816729A1 FR0014634A FR0014634A FR2816729A1 FR 2816729 A1 FR2816729 A1 FR 2816729A1 FR 0014634 A FR0014634 A FR 0014634A FR 0014634 A FR0014634 A FR 0014634A FR 2816729 A1 FR2816729 A1 FR 2816729A1
Authority
FR
France
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.)
Granted
Application number
FR0014634A
Other languages
English (en)
Other versions
FR2816729B1 (fr
Inventor
Jean Luc Giraud
Pierre Girard
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gemplus SA
Original Assignee
Gemplus Card International SA
Gemplus SA
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 Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Priority to FR0014634A priority Critical patent/FR2816729B1/fr
Priority to PCT/FR2001/003564 priority patent/WO2002041235A2/fr
Priority to AU2002223068A priority patent/AU2002223068A1/en
Publication of FR2816729A1 publication Critical patent/FR2816729A1/fr
Application granted granted Critical
Publication of FR2816729B1 publication Critical patent/FR2816729B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

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

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

Pour le chargement d'un programme dans une mémoire d'un composant électronique, ce procédé comprend : 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, une seconde phase de chargement (22) 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; une phase de vérification (23) 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; et une phase d'activation (25) du programme chargé, si la valeur caractéristique du programme déterminée correspond à l'une des valeurs caractéristiques chargées dans la première mémoire.

Description

<Desc/Clms Page number 1>
PROCÉDÉ DE VÉRIFICATION AVANT ACTIVATION D'UN PROGRAMME CHARGÉ DANS UNE CARTE À PUCE.
La présente invention concerne un procédé pour vérifier un programme chargé dans une carte à puce, avant son 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.
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.
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
<Desc/Clms Page number 2>
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.
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.
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.
<Desc/Clms Page number 3>
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é.
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.
Selon l'invention, ce procédé est caractérisé en ce qu'il comprend : - 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, - 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, - 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, et - 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.
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.
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.
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
<Desc/Clms Page number 4>
"hash"ou une fonction MAC (Message Authentification Code). 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.
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.
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é.
Si la phase de vérification a échoué, on peut prévoir d'effacer le programme chargé dans la seconde mémoire.
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
Figure img00040001

'f v vérification a échoué ou non. 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
<Desc/Clms Page number 5>
caractéristique stockée dans la première mémoire.
La première phase est avantageusement effectuée une seule fois et de manière irréversible.
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.
L'invention concerne également un composant électronique permettant de mettre en oeuvre le procédé décrit ci-avant.
Un mode de mise en oeuvre 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 :
La figure 1 représente schématiquement le composant électronique d'une carte à puce ;
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 ;
La figure 3 montre sous la forme d'un organigramme l'enchaînement des différentes étapes du procédé selon l'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.
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
<Desc/Clms Page number 6>
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 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- l), 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.
Figure img00060001
La table comprend de préférence également, la définition des adresses de la c zone mémoire où doit être chargé le programme dans la mémoire 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 caractéristique du programme.
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.
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.
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'adresse indiquée, et éventuellement la taille des informations à charger contenues dans la commande de chargement.
Le programme ainsi transmis est chargé dans la mémoire 5.
<Desc/Clms Page number 7>
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é.
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.
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.
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.
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.
Chaque valeur caractéristique de programme susceptible d'être chargé dans la
<Desc/Clms Page number 8>
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.
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.
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é.
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.
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.
En outre, à la mise sous tension du composant, il faut prévoir un moyen de sélection du programme applicatif à activer.
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
<Desc/Clms Page number 9>
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.
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.
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.
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.
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
<Desc/Clms Page number 10>
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.

Claims (21)

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 : - 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), - 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, et - 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.
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.
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.
4. Procédé selon la revendication 1 ou 3, caractérisé en ce que la valeur caractéristique est un identifiant de programme.
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.
<Desc/Clms Page number 12>
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".
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.
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.
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.
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é.
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é.
<Desc/Clms Page number 13>
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.
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.
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.
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.
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.
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.
18. Composant électronique (1) comprenant une unité de traitement (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
<Desc/Clms Page number 14>
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.
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.
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.
21. Carte à microcircuit, caractérisée en ce qu'elle comprend un composant électronique selon l'une des revendications 18 à 20.
FR0014634A 2000-11-14 2000-11-14 Procede de verification avant activation d'un programme charge dans une carte a puce Expired - Fee Related FR2816729B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR0014634A FR2816729B1 (fr) 2000-11-14 2000-11-14 Procede de verification avant activation d'un programme charge dans une carte a puce
PCT/FR2001/003564 WO2002041235A2 (fr) 2000-11-14 2001-11-14 Procede de verification avant activation d'un programme charge dans une carte a puce
AU2002223068A AU2002223068A1 (en) 2000-11-14 2001-11-14 Method for verifying before activating a programme loaded in a smart card

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
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
FR2816729A1 true FR2816729A1 (fr) 2002-05-17
FR2816729B1 FR2816729B1 (fr) 2003-02-07

Family

ID=8856426

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0014634A Expired - Fee Related FR2816729B1 (fr) 2000-11-14 2000-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)

* Cited by examiner, † Cited by third party
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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009047438A1 (fr) * 2007-09-18 2009-04-16 Thomson Licensing Hebergement d'applications semi-permanent

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2777673A1 (fr) * 1998-04-15 1999-10-22 Bull Cp8 Dispositif de traitement de l'information comprenant des moyens pour gerer une memoire virtuelle, et procede de stockage d'informations associe

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2777673A1 (fr) * 1998-04-15 1999-10-22 Bull Cp8 Dispositif de traitement de l'information comprenant des moyens pour gerer une memoire virtuelle, et procede de stockage d'informations associe

Cited By (1)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
AU2002223068A1 (en) 2002-05-27
WO2002041235A3 (fr) 2002-12-27
FR2816729B1 (fr) 2003-02-07
WO2002041235A2 (fr) 2002-05-23

Similar Documents

Publication Publication Date Title
EP0540095B1 (fr) Microcircuit pour carte à puce à mémoire programmable protégée
EP2688010B1 (fr) Mise à jour d&#39;un système d&#39;exploitation pour élément sécurisé
EP0621569B1 (fr) Dispositif et procédé de protection des clés d&#39;une carte à puce
FR2666671A1 (fr) Procede de gestion d&#39;un programme d&#39;application charge dans un support a microcircuit.
FR2968799A1 (fr) Procede et dispositif de controle d&#39;execution pour des fonctions internes et des applications protegees embarquees dans des cartes a microcircuits pour terminaux mobiles
FR2646942A1 (fr) Carte a circuit integre
FR2777673A1 (fr) Dispositif de traitement de l&#39;information comprenant des moyens pour gerer une memoire virtuelle, et procede de stockage d&#39;informations associe
CA2296009A1 (fr) Procede de gestion d&#39;un terminal securise
FR2816731A1 (fr) Procede de chargement et de personnalisation des informations et programmes charges dans une carte a puce
EP1605333B1 (fr) Contrôle de l&#39;exécution d&#39;un programme
FR2833374A1 (fr) Procede et dispositif de controle d&#39;acces dans un systeme embarque
EP2309409B1 (fr) Procédé et dispositif de traitement de données
EP4032000B1 (fr) Système sur puce et procédé garantissant la fraicheur des données stockées dans une mémoire extérieure
FR2960327A1 (fr) Procede et systeme d&#39;acces a un circuit integre comprenant une cle personnelle d&#39;authentification
WO2005109742A1 (fr) Procédé de traitement de données sécurisé et dispositif associé
FR2816729A1 (fr) Procede de verification avant activation d&#39;un programme charge dans une carte a puce
FR2805073A1 (fr) Ecriture en temps reel securisee pour memoire non volatile
FR2867929A1 (fr) Procede d&#39;authentification dynamique de programmes par un objet portable electronique
EP2252978B1 (fr) Carte a circuit integre ayant un programme d&#39;exploitation modifiable et procede de modification correspondant
FR2923041A1 (fr) Procede d&#39;ouverture securisee a des tiers d&#39;une carte a microcircuit.
CA2252001A1 (fr) Systeme securise de controle d&#39;acces permettant l&#39;invalidation automatique de cles electroniques volees ou perdues et/ou le transfert d&#39;habilitation a produire des cles
EP1547005B9 (fr) Carte à microcircuit dont les performances peuvent être modifiées après personnalisation
EP3179400B1 (fr) Procédé de chargement d&#39;une ressource informatique au sein d&#39;un dispositif électronique, module électronique et programme d&#39;ordinateur correspondant
FR3062501A1 (fr) Procede pour la securite d&#39;une operation electronique
WO2019234346A1 (fr) Carte a puce personnalisable de façon securisée et procede de personnalisation securisé

Legal Events

Date Code Title Description
CD Change of name or company name
TP Transmission of property
ST Notification of lapse

Effective date: 20150731