FR2834573A1 - Electronic data processing device suitable for execution of software protected against copying, whereby software is sub-divided with an auxiliary program stocked and executed in a secure chip card reader - Google Patents

Electronic data processing device suitable for execution of software protected against copying, whereby software is sub-divided with an auxiliary program stocked and executed in a secure chip card reader Download PDF

Info

Publication number
FR2834573A1
FR2834573A1 FR0200155A FR0200155A FR2834573A1 FR 2834573 A1 FR2834573 A1 FR 2834573A1 FR 0200155 A FR0200155 A FR 0200155A FR 0200155 A FR0200155 A FR 0200155A FR 2834573 A1 FR2834573 A1 FR 2834573A1
Authority
FR
France
Prior art keywords
software
program
reader
executed
auxiliary program
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.)
Pending
Application number
FR0200155A
Other languages
French (fr)
Inventor
Jean Claude Huot
Gerald Galan
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.)
Idemia France SAS
Original Assignee
Oberthur Card Systems SA France
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 Oberthur Card Systems SA France filed Critical Oberthur Card Systems SA France
Priority to FR0200155A priority Critical patent/FR2834573A1/en
Publication of FR2834573A1 publication Critical patent/FR2834573A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Storage Device Security (AREA)

Abstract

Electronic device for processing data comprises a central unit (UC) for execution of a software application and a reader (16), e.g. a chip card reader. A main program is executed by the central unit, while an auxiliary program is stocked and executed in a secure electronic device, such as a chip card (17) inserted in the reader. An Independent claim is made for: a software medium, such as a CD comprising two units, each containing two parts of the same program, i.e. a main and auxiliary program. The invention also relates to a corresponding electronic device such as a mobile phone or PDA, suitable for accepting such a software medium.

Description

<Desc/Clms Page number 1> <Desc / Clms Page number 1>

L'invention se rapporte à un dispositif électronique de traitement de données comportant une unité centrale apte à exécuter un logiciel. Elle a plus particulièrement pour objet un perfectionnement visant à la fois les caractéristiques du dispositif électronique et le conditionnement du logiciel luimême, pour éviter une duplication sans autorisation. L'invention s'applique notamment au domaine des logiciels commercialisés pour être utilisés sur un ordinateur personnel, une console de jeux électronique, un dispositif dit"PDA" (Personal Digital Assistant, en anglais), un téléphone portable ou analogue.  The invention relates to an electronic data processing device comprising a central unit capable of executing software. It more particularly relates to an improvement for both the characteristics of the electronic device and the packaging of the software itself, to avoid duplication without authorization. The invention applies in particular to the field of software marketed for use on a personal computer, an electronic game console, a device called "PDA" (Personal Digital Assistant, in English), a mobile phone or the like.

On sait que beaucoup de logiciels, pour le travail, l'étude ou le divertissement, sont commercialisés sous forme de disques dits CD-ROM ou bien par téléchargement, par exemple sur un site Internet. La lecture du CD ou le téléchargement, se traduisant éventuellement par le transfert des informations vers le disque dur de l'unité centrale d'un ordinateur, permet d'exécuter le programme. Des sécurités sont prévues pour empêcher des utilisations illicites, par exemple en copiant le disque. L'un de ces moyens est couramment dénommé"Dongle". Il s'agit d'un dispositif qu'on intègre ou associe à l'unité centrale et qui contient une "clé" utilisant des codes et des mots de passe autorisant le déroulement du programme. Le logiciel appelle la clé correspondant à ce"Dongle"et ne peut fonctionner que si le dispositif dit"Dongle"est associé à l'ordinateur. Ce moyen est utilisé pour protéger des codes sources importants, des informations confidentielles et des fichiers. Cependant, ce système peut être détourné si on utilise un outil logiciel permettant de repérer, dans le programme exécutable, les portions de code destinées à vérifier la présence du"Dongle". Il suffit alors de supprimer ces portions de code ou de leur substituer une autre portion de code permettant d'omettre la vérification de la présence du"Dongle" pour que le programme puisse être exécuté et recopié sans autorisation. Il est connu de réaliser un"Dongle"sous forme de carte à microcircuit (encore dénommée carte à puce) par exemple dans le document de brevet DE 1 0001126.  We know that many software, for work, study or entertainment, are marketed in the form of CD-ROM discs or by downloading, for example on a website. Reading the CD or downloading, possibly resulting in the transfer of information to the hard disk of the central unit of a computer, allows the program to be executed. Safeguards are provided to prevent illicit uses, for example by copying the disc. One of these means is commonly referred to as "Dongle". It is a device that integrates or associates with the central unit and contains a "key" using codes and passwords authorizing the program. The software calls the key corresponding to this "Dongle" and can only work if the device called "Dongle" is associated with the computer. This means is used to protect important source codes, confidential information and files. However, this system can be hijacked if a software tool is used to identify, in the executable program, the portions of code intended to check the presence of the "Dongle". It is then enough to delete these portions of code or to replace them with another portion of code making it possible to omit the verification of the presence of the "Dongle" so that the program can be executed and copied without authorization. It is known to make a "dongle" in the form of a microcircuit card (also referred to as a smart card) for example in patent document DE 10001126.

<Desc/Clms Page number 2> <Desc / Clms Page number 2>

L'invention permet de surmonter l'inconvénient du"Dongle"mentionné cidessus. L'idée de base de l'invention consiste à partager physiquement le logiciel lui-même en deux parties, l'une des parties étant stockée et exécutée dans une entité électronique sécurisée, c'est-à-dire ne pouvant être aisément copiée. Une telle entité est, par exemple, une carte à microcircuit.  The invention overcomes the disadvantage of the "Dongle" mentioned above. The basic idea of the invention is to physically share the software itself in two parts, one of the parts being stored and executed in a secure electronic entity, that is to say, can not be easily copied. Such an entity is, for example, a microcircuit card.

Plus précisément, l'invention concerne un dispositif électronique de traitement de données comportant une unité centrale apte à exécuter un logiciel, caractérisé en ce qu'il comporte un lecteur d'une entité électronique sécurisée, en ce qu'un tel logiciel comprend au moins deux parties : un programme principal exécuté par ladite unité centrale et au moins un programme auxiliaire stocké et exécuté dans une telle entité électronique sécurisée placée dans ledit lecteur et en ce que ledit programme principal génère des commandes d'exécution de tout ou partie dudit programme auxiliaire.  More specifically, the invention relates to an electronic data processing device comprising a central unit capable of executing software, characterized in that it comprises a reader of a secure electronic entity, in that such software comprises at least two parts: a main program executed by said central unit and at least one auxiliary program stored and executed in such a secure electronic entity placed in said reader and in that said main program generates commands for executing all or part of said auxiliary program .

Ainsi, le fait de placer dans une entité électronique sécurisée et de garder secrète une partie du programme lui-même, c'est-à-dire le programme auxiliaire et non plus une simple clé, permet d'éviter une utilisation frauduleuse du logiciel dans la mesure où l'appel du programme auxiliaire par le programme principal n'entraîne pas la même réponse dudit programme auxiliaire (contrairement à une clé) selon le stade de déroulement du programme principal où intervient l'appel du programme auxiliaire. Ce dernier, stocké et exécuté dans une carte à microcircuit, ne peut donc être copié en tant que tel. Pour constituer le programme auxiliaire, l'éditeur du logiciel choisira les parties qui semblent les plus critiques pour le fonctionnement du logiciel à protéger. Les deux parties du logiciel sont interdépendantes. Autrement dit, le programme principal ne peut être exécuté (ou son exécution ne peut être poursuivie) sans l'exécution du programme auxiliaire chaque fois qu'il est appelé. Inversement le programme auxiliaire n'a aucun sens seul.  Thus, placing in a secure electronic entity and keeping a part of the program itself secret, that is to say the auxiliary program and no longer a simple key, makes it possible to avoid fraudulent use of the software in the extent that the call of the auxiliary program by the main program does not cause the same response of said auxiliary program (unlike a key) depending on the stage of the main program where the call auxiliary program. The latter, stored and executed in a microcircuit card, can not be copied as such. To constitute the auxiliary program, the publisher of the software will choose the parts that seem the most critical for the operation of the software to be protected. The two parts of the software are interdependent. In other words, the main program can not be executed (or its execution can not be continued) without the execution of the auxiliary program each time it is called. Conversely, the auxiliary program is meaningless.

Par"lecteur"de ladite entité électronique sécurisée, on entend tout dispositif capable de coupler fonctionnellement l'entité électronique sécurisée placée dans le lecteur à l'unité centrale pour que le programme principal puisse s'exécuter normalement en appelant chaque fois que nécessaire le programme auxiliaire qui est stocké et exécuté dans l'entité électronique sécurisée ellemême. Seule la réponse est renvoyée à l'unité centrale. Dans le cas d'une carte  By "reader" of said secure electronic entity is meant any device capable of functionally coupling the secure electronic entity placed in the reader to the central unit so that the main program can execute normally by calling the program whenever necessary. auxiliary that is stored and executed in the secure electronic entity itself. Only the response is returned to the CPU. In the case of a card

<Desc/Clms Page number 3><Desc / Clms Page number 3>

à microcircuit, le lecteur peut comporter un système de connexion capable d'entrer en contact électrique avec les plages de raccordement situées à la surface de la carte. S'il s'agit d'une carte dite sans contact, comportant une antenne, le lecteur comportera des moyens d'émission-réception HF.  With a microcircuit, the reader may include a connection system capable of making electrical contact with the connection pads located on the surface of the card. If it is a so-called contactless card, including an antenna, the reader will include RF transmission-reception means.

Pour ce qui concerne l'unité centrale chargée d'exécuter le programme principal et de transmettre les commandes d'exécution de tout ou partie dudit programme auxiliaire, plusieurs solutions sont possibles. Si le dispositif comporte une mémoire centrale, le programme principal pourra y être stocké. L'unité centrale pourra alors être munie d'un lecteur de support de logiciel non nécessairement protégé contre la copie, par exemple un lecteur de CD-ROM ou analogue. Dans ce cas, le programme principal sera mis à disposition de l'utilisateur sur un tel support, c'est-à-dire un CD-ROM ou analogue. Une fois lu, le contenu du CD-ROM pourra être transféré en mémoire centrale, typiquement le disque dur d'un ordinateur. Dans ce cas, le dispositif électronique de traitement de données comportera aussi un lecteur de ladite entité électronique sécurisée et le logiciel complet sera mis à la disposition de l'utilisateur sous forme de deux entités renfermant les deux parties du même programme, c'est-àdire le CD-ROM renfermant le programme principal et la carte à microcircuit renfermant le programme auxiliaire.  With regard to the central unit responsible for executing the main program and transmitting the execution commands for all or part of said auxiliary program, several solutions are possible. If the device has a central memory, the main program can be stored there. The central unit may then be provided with a software support reader not necessarily copy-protected, for example a CD-ROM reader or the like. In this case, the main program will be made available to the user on such a medium, that is to say a CD-ROM or the like. Once read, the contents of the CD-ROM can be transferred to the main memory, typically the hard disk of a computer. In this case, the electronic data processing device will also include a reader of said secure electronic entity and the complete software will be made available to the user in the form of two entities containing the two parts of the same program, ie ie the CD-ROM containing the main program and the microcircuit card containing the auxiliary program.

Une autre variante intéressante consiste à mettre le programme principal à disposition sur un réseau de télécommunication du type Internet et à associer au dispositif électronique de traitement de données un modem de décodage d'informations relié audit réseau, pour permettre le téléchargement du programme principal dans une mémoire de ladite unité centrale. Dans ce cas, l'utilisateur autorisé reçoit (par exemple achète) ladite entité électronique sécurisée, c'est-à-dire typiquement la carte à microcircuit. Egalement, il est possible de charger ou de télécharger le programme auxiliaire dans une entité électronique sécurisée déjà utilisée sur ladite unité centrale. Par exemple, un fournisseur de jeux sur le réseau Internet peut munir ses clients d'une carte à microcircuit. A chaque nouvel achat de jeu, le programme auxiliaire peut être téléchargé sur cette carte par le moyen d'un protocole sécurisé. Ce procédé de téléchargement de programme dans une carte à microcircuit tout au long de durée de vie est bien connu de l'homme de l'art et s'appelle la"post-insuance".  Another interesting variant consists in making the main program available on an Internet-type telecommunication network and in associating with the electronic data processing device an information decoding modem connected to said network, in order to allow the downloading of the main program into a network. memory of said central unit. In this case, the authorized user receives (for example purchases) said secure electronic entity, that is to say typically the microcircuit card. Also, it is possible to load or download the auxiliary program in a secure electronic entity already used on said central unit. For example, a gaming provider on the Internet can provide its customers with a microcircuit card. With each new game purchase, the auxiliary program can be downloaded to this card by means of a secure protocol. This method of downloading a program into a microcircuit card throughout the lifetime is well known to those skilled in the art and is called "post-blindness".

<Desc/Clms Page number 4> <Desc / Clms Page number 4>

Le client peut donc utiliser la même carte pour exécuter plusieurs jeux et acquérir à tout moment un nouveau jeu. The customer can therefore use the same card to run multiple games and acquire a new game at any time.

Un autre dispositif électronique de traitement de données, plus spécialisé, peut consister en une console de jeux vidéo dès lors que celle-ci est équipée à la fois d'un lecteur de support de logiciel non nécessairement protégé contre la copie (par exemple un lecteur de CD) et un lecteur d'une entité électronique sécurisée, par exemple un lecteur de carte à microcircuit. La carte à microcircuit étant par nature non"piratable"l'utilisateur ne pourra mettre en oeuvre le jeu vidéo ainsi édité en deux parties que s'il dispose à la fois du disque CD et de la carte à microcircuit. Il devient dès lors inutile de réaliser des copies du disque CD.  Another more specialized electronic data processing device may consist of a video game console provided that it is equipped both with a software support reader that is not necessarily copy-protected (for example a reader CD) and a reader of a secure electronic entity, for example a microcircuit card reader. The microcircuit card being by nature not "piratable" the user can implement the video game and edited in two parts only if he has both the CD and the microcircuit card. It becomes unnecessary to make copies of the CD.

En outre, un autre dispositif dans lequel l'invention peut être mise en oeuvre est un téléphone équipé d'une carte à microcircuit, notamment un téléphone portable, ou encore un dispositif dit"PDA"comme défini plus haut, équipé d'une carte à microcircuit.  In addition, another device in which the invention can be implemented is a telephone equipped with a microcircuit card, including a mobile phone, or a device called "PDA" as defined above, equipped with a card with microcircuit.

Avantageusement, pour exécuter le logiciel dans sa totalité, sans défaillance, l'unité centrale pourra générer des commandes"APDU"ou analogues en exécutant le programme principal, pour l'exécution de tout ou partie dudit programme auxiliaire. En retour, ladite entité électronique sécurisée sera agencée pour générer des réponses"APDU"correspondantes qui seront renvoyées à l'unité centrale pour la poursuite de l'exécution du programme principal. Toute exécution du programme auxiliaire se déroule entièrement dans l'entité électronique sécurisée, c'est-à-dire par exemple la carte à microcircuit. Seule la réponse nécessaire au bon déroulement du programme principal est renvoyée vers l'unité centrale.  Advantageously, in order to execute the entire software without failure, the central unit may generate "APDU" commands or the like by executing the main program, for the execution of all or part of said auxiliary program. In return, said secure electronic entity will be arranged to generate corresponding "APDU" responses which will be sent back to the central unit for further execution of the main program. Any execution of the auxiliary program takes place entirely in the secure electronic entity, that is to say for example the microcircuit card. Only the answer necessary for the smooth running of the main program is sent back to the central unit.

Les commandes et réponses"APDU"sont connues de l'homme du métier. Il s'agit d'un ensemble de commandes standardisées notamment par la norme ISO 7816-4. Elles sont définies indépendamment du protocole de transfert de données. On distingue les instructions"APDU"qui représentent des instructions envoyées à la carte par l'unité centrale et les réponses"APDU"qui sont les réponses de la carte. Autrement dit, l'unité centrale envoie des commandes"APDU"à la carte, la carte effectue ces instructions et renvoie le résultat à l'unité centrale.  "APDU" commands and responses are known to those skilled in the art. It is a set of commands standardized in particular by the ISO 7816-4 standard. They are defined independently of the data transfer protocol. One distinguishes the instructions "APDU" which represent instructions sent to the card by the central unit and the answers "APDU" which are the answers of the card. In other words, the central unit sends "APDU" commands to the card, the card performs these instructions and returns the result to the central unit.

<Desc/Clms Page number 5> <Desc / Clms Page number 5>

Une instruction"APDU"contient une en-tête et un corps de longueur arbitraire qui peut se représenter comme suit :

Figure img00050001
An "APDU" statement contains a header and a body of arbitrary length that can be represented as follows:
Figure img00050001

<tb>
<tb> CLA <SEP> INS <SEP> P1 <SEP> P2 <SEP> Lc <SEP> CH <SEP> Le
<tb>
<Tb>
<tb> CLA <SEP> INS <SEP> P1 <SEP> P2 <SEP> Lc <SEP> CH <SEP> The
<Tb>

CLA est un byte qui définit la classe d'instruction. CLA is a byte that defines the instruction class.

INS est un byte qui définit l'instruction à exécuter par la carte.  INS is a byte that defines the instruction to be executed by the card.

P1 et P2 sont des bytes qui définissent les options éventuelles de l'instruction.  P1 and P2 are bytes that define the possible options of the instruction.

Les bytes définis ci-dessus constituent l'en-tête de l'instruction. Le corps de l'instruction comprend les bytes suivants : Lc est un byte qui fixe la longueur du champ d'instruction.  The bytes defined above constitute the header of the instruction. The body of the instruction includes the following bytes: Lc is a byte that sets the length of the instruction field.

CH est le champ d'instruction proprement dit. Il contient les informations envoyées à la carte pour lui permettre de traiter l'instruction.  CH is the actual instruction field. It contains the information sent to the card to enable it to process the instruction.

Le est un byte qui fixe la longueur du champ d'instruction de la réponse "APDU"qui sera envoyée par la carte.  The is a byte that sets the length of the instruction field of the "APDU" response that will be sent by the card.

Une réponse "APDU" contient les éléments suivants :

Figure img00050002
An APDU response contains the following:
Figure img00050002

<tb>
<tb> CHR <SEP> SW1 <SEP> SW2
<tb>
<Tb>
<tb> CHR <SEP> SW1 <SEP> SW2
<Tb>

CHR est le champ de réponse de la carte. CHR is the response field of the card.

SW1 et SW2 donnent le code de retour de l'instruction exécutée par la carte. Dans le cas présent, on peut définir une commande particulière (INS) qui donne l'ordre à la carte d'exécuter une portion au moins du programme auxiliaire.  SW1 and SW2 give the return code of the instruction executed by the card. In the present case, it is possible to define a particular command (INS) which instructs the card to execute at least a portion of the auxiliary program.

Cette portion peut être spécifiée grâce aux octets P1 et P2 ou en utilisant une partie du champ CH. Les paramètres ou les données complémentaires ou plus généralement le contexte nécessaires à l'exécution de la portion du programme auxiliaire B (dans le cas de fonctions, il s'agit d'arguments de la fonction) peuvent être fournis à la carte en utilisant le champ CH. This portion may be specified by P1 and P2 bytes or by using a portion of the CH field. The parameters or the additional data or more generally the context necessary for the execution of the portion of the auxiliary program B (in the case of functions, these are arguments of the function) can be provided to the card using the CH field.

L'invention sera mieux comprise et d'autres avantages de celle-ci apparaîtront plus clairement à la lumière de la description qui va suivre de plusieurs exemples de dispositif électronique de traitement de données conforme à son principe, donnée uniquement à titre d'exemple et faite en référence aux dessins annexés dans lesquels :  The invention will be better understood and other advantages thereof will appear more clearly in the light of the following description of several examples of an electronic data processing device according to its principle, given solely by way of example and with reference to the accompanying drawings in which:

<Desc/Clms Page number 6><Desc / Clms Page number 6>

- la figure 1 est un schéma-bloc d'un premier mode de réalisation d'un dispositif conforme à l'invention ; - la figure 2 illustre une variante de la figure 1 ; - la figure 3 illustre un autre dispositif électronique de traitement de données formant jeu vidéo ou analogue ; et - la figure 4 est un chronogramme illustrant la reconstitution du logiciel par exécution entrelacée du programme principal et du programme auxiliaire.  - Figure 1 is a block diagram of a first embodiment of a device according to the invention; FIG. 2 illustrates a variant of FIG. 1; FIG. 3 illustrates another electronic data processing device forming a video game or the like; and FIG. 4 is a timing diagram illustrating the reconstitution of the software by interleaved execution of the main program and the auxiliary program.

Le dispositif électronique de traitement de données très schématiquement représenté sur la figure 1 est constitué par un ordinateur de type PC dont l'unité centrale UC comporte notamment un processeur Pr couplé à une mémoire du type disque dur, DD. Le processeur est également en liaison avec un lecteur de disque 15 susceptible de recevoir un support de logiciel non nécessairement protégé, par exemple, un disque du type CD-ROM et avec un lecteur 16 d'une entité électronique sécurisée. Dans l'exemple, ladite entité électronique sécurisée est constituée par une carte à microcircuit 17. Autrement, dit, le logiciel protégé est partagé en deux parties : un programme principal inscrit sur le disque 18 lu par le lecteur 15 et exécuté par ladite unité centrale et au moins un programme auxiliaire stocké et exécuté dans l'unité électronique sécurisée, c'est-à-dire dans la carte 17, dès lors que celle-ci est placée dans le lecteur 16.  The electronic data processing device very schematically represented in FIG. 1 is constituted by a computer of the PC type whose central unit UC notably comprises a processor Pr coupled to a memory of the hard disk type, DD. The processor is also connected to a disk drive 15 capable of receiving software support that is not necessarily protected, for example, a disk of the CD-ROM type and with a reader 16 of a secure electronic entity. In the example, said secure electronic entity is constituted by a microcircuit card 17. In other words, the protected software is divided into two parts: a main program written on the disk 18 read by the reader 15 and executed by said central unit and at least one auxiliary program stored and executed in the secure electronic unit, i.e. in the card 17, as long as it is placed in the reader 16.

Comme indiqué précédemment, le programme principal inscrit sur le disque 18 et éventuellement transféré sur le disque dur DD génère des commandes d'exécution de tout ou partie dudit programme auxiliaire. As indicated above, the main program written on the disk 18 and possibly transferred to the hard disk DD generates commands to execute all or part of said auxiliary program.

Pour mettre en oeuvre le logiciel, l'utilisateur place donc le disque 18 dans le lecteur 15 et la carte 17 dans le lecteur 16. Le processeur charge éventuellement le programme principal dans le disque dur DD et commence à l'exécuter. Chaque fois qu'une commande"APDU"est traitée par le processeur, celui-ci commande l'exécution du programme auxiliaire ou d'une partie de celuici dans la carte 17 elle-même. Il reçoit et traite la réponse"APDU" correspondante. A titre d'exemple, la figure 4 illustre la reconstitution du logiciel à partir de l'exécution du programme principal A entrecoupée d'exécutions du programme auxiliaire B ou d'au moins une partie de celui-ci. L'exécution du logiciel est schématisée de gauche à droite. Une première partie du programme principal est exécutée en E. A Puis une instruction"APDU"est analysée qui  To implement the software, the user places the disk 18 in the reader 15 and the card 17 in the reader 16. The processor optionally loads the main program into the hard disk DD and begins to run it. Whenever an "APDU" command is processed by the processor, it controls the execution of the auxiliary program or part of it in the card 17 itself. It receives and processes the corresponding "APDU" response. By way of example, FIG. 4 illustrates the reconstitution of the software from the execution of the main program A interspersed with executions of the auxiliary program B or at least a part of it. The execution of the software is shown schematically from left to right. A first part of the main program is executed in E. Then an "APDU" instruction is analyzed which

<Desc/Clms Page number 7><Desc / Clms Page number 7>

provoque l'appel A. B du programme auxiliaire B qui se traduit par l'exécution E. B de ce programme auxiliaire ou d'une partie de celui-ci, selon l'instruction.  causes call A. B of the auxiliary program B which results in the execution E. B of this auxiliary program or part of it, according to the instruction.

Pendant ce temps, l'exécution du programme principal E. A se poursuit (si le logiciel a été conçu pour cela). Lorsque l'exécution du programme auxiliaire B est terminée, une réponse R. B est générée et traitée par le processeur. Le programme principal continue à être exécuté en E'A jusqu'à l'apparition d'une nouvelle commande"APDU"constituant à nouveau l'appel A. B du programme auxiliaire. Celui-ci est à nouveau exécuté en E. B en même temps que l'exécution E'A du programme principal se poursuit, jusqu'à l'élaboration d'une réponse R. B qui permet la poursuite de l'exécution E. A du programme principal et ainsi de suite. Meanwhile, the execution of the main program E. A continues (if the software was designed for that). When the execution of the auxiliary program B is completed, a response R. B is generated and processed by the processor. The main program continues to be executed in E'A until the appearance of a new command "APDU" again constituting the call A. B of the auxiliary program. This is again executed in E. B at the same time that the execution E'A of the main program continues, until the elaboration of a response R. B which allows the continuation of the execution E. A of the main program and so on.

La figure 2 illustre une simple variante de la figure 1 où les éléments de structure analogues portent les mêmes références et ne seront pas décrits à nouveau. Selon cette variante, l'unité centrale est associée à un modem de décodage d'information 20, relié à un réseau de télécommunication 22, par exemple du type Internet. Dans ce cas, le programme principal est téléchargé sous le contrôle du processeur dans une mémoire de l'unité centrale, par exemple le disque dur DD. Le lecteur de carte 16 est relié au processeur comme indiqué en référence à la figure 1. Une fois le téléchargement du programme principal effectué, le logiciel est exécuté exactement de la même façon que dans l'exemple précédent.  FIG. 2 illustrates a simple variant of FIG. 1 where the analogous structural elements bear the same references and will not be described again. According to this variant, the central unit is associated with an information decoding modem 20 connected to a telecommunications network 22, for example of the Internet type. In this case, the main program is downloaded under the control of the processor into a memory of the central unit, for example the hard disk DD. The card reader 16 is connected to the processor as indicated with reference to FIG. 1. Once the downloading of the main program has been carried out, the software is executed exactly in the same way as in the previous example.

La figure 3 représente très schématiquement une console de jeu vidéo 25 équipée d'un lecteur de disque 15a apte à recevoir un disque 18a renfermant le programme principal. La console de jeu comporte en outre un lecteur de carte à microcircuit 16a apte à recevoir une carte à microcircuit 17a. Le jeu vidéo est proposé à la vente en deux parties, c'est-à-dire le disque 18a et la carte 17a.  FIG. 3 very schematically represents a video game console 25 equipped with a disk player 15a able to receive a disc 18a enclosing the main program. The game console further comprises a microcircuit card reader 16a adapted to receive a microcircuit card 17a. The video game is offered for sale in two parts, that is to say the disc 18a and the card 17a.

Toute copie du disque 18a est inutile puisque le jeu ne peut fonctionner qu'à la condition que la carte 17a soit présente dans le lecteur 16a pendant toute la durée du jeu, cette carte étant réputée inviolable. Any copy of the disc 18a is useless since the game can only work if the card 17a is present in the player 16a for the duration of the game, this card being deemed inviolable.

Avantageusement, on pourra utiliser la technologie"Javacard"pour inscrire le programme auxiliaire dans une carte à microcircuit. Cette technologie  Advantageously, one can use the technology "Javacard" to register the auxiliary program in a microcircuit card. This technology

<Desc/Clms Page number 8><Desc / Clms Page number 8>

permet de développer des applications indépendamment du type de carte. La technologie"Javacard"développe un langage orienté objet dont la compilation produit un code standardisé appelé "code byte" indépendant de la carte sur laquelle sera installé le programme auxiliaire. La carte possède un interpréteur de "code byte" appelé machine virtuelle, qui permet d'exécuter un programme auxiliaire contenu dans sa mémoire (de type EEPROM) sous forme de"code byte". En langage"Javacard", de tels programmes sont appelés"applets". Ce sont de petits logiciels interprétés sur une machine virtuelle. Le programme auxiliaire pourra donc être constitué d"'applets"stockées dans la carte ellemême. Ces"applets"seront aussi exécutées dans la carte, comme mentionné précédemment.  allows you to develop applications regardless of the type of card. The technology "Javacard" develops an object-oriented language whose compilation produces a standardized code called "code byte" independent of the card on which will be installed the auxiliary program. The card has a "code byte" interpreter called a virtual machine, which makes it possible to execute an auxiliary program contained in its memory (of the EEPROM type) in the form of "code byte". In the language "Javacard", such programs are called "applets". These are small software interpreted on a virtual machine. The auxiliary program may therefore consist of "applets" stored in the card itself. These "applets" will also be executed in the map, as mentioned before.

L'installation d'une applet est réalisée par le fabricant de carte, par l'organisation émettrice de la carte et éventuellement tout au long de la vie de la carte (mécanisme appelé"post-insuance", en anglais) par l'une des procédures suivantes : - chargement de l'applet par un terminal de confiance ; - chargement de l'apple par un terminal quelconque en utilisant une connexion sécurisée vers un terminal de confiance ; - chargement par installation sécurisée : avant d'installer une applet, la carte vérifie la légitimité de l'apple par un système de signature cryptographique numérique. The installation of an applet is carried out by the card manufacturer, by the issuing organization of the card and possibly throughout the life of the card (mechanism called "post-blindness", in English) by one following procedures: - loading the applet by a trusted terminal; - loading the apple by any terminal using a secure connection to a trusted terminal; - secure installation loading: before installing an applet, the card checks the legitimacy of the apple by a digital cryptographic signature system.

Claims (13)

REVENDICATIONS 1. Dispositif électronique de traitement de données comportant une unité centrale (UC) apte à exécuter un logiciel, caractérisé en ce qu'il comporte un lecteur (16) d'une entité électronique sécurisée, en ce qu'un tel logiciel comprend au moins deux parties : un programme principal exécuté par ladite unité centrale et au moins un programme auxiliaire stocké et exécuté dans une telle entité électronique sécurisée (17) placée dans ledit lecteur et en ce que ledit programme principal génère des commandes d'exécution de tout ou partie dudit programme auxiliaire.  1. An electronic data processing device comprising a central unit (CPU) capable of executing software, characterized in that it comprises a reader (16) of a secure electronic entity, in that such software includes the at least two parts: a main program executed by said central unit and at least one auxiliary program stored and executed in such a secure electronic entity (17) placed in said reader and in that said main program generates commands for execution of all or part of the said auxiliary program. 2. Dispositif électronique selon la revendication 1, caractérisé en ce que ledit lecteur (16) de ladite entité électronique sécurisée est un lecteur de carte à microcircuit ou analogue.  2. Electronic device according to claim 1, characterized in that said reader (16) of said secure electronic entity is a microcircuit card reader or the like. 3. Dispositif électronique selon la revendication 1 ou 2, caractérisé en ce qu'il comporte une mémoire centrale (DD) dans laquelle ledit programme principal est stocké.  3. Electronic device according to claim 1 or 2, characterized in that it comprises a central memory (DD) in which said main program is stored. 4. Dispositif selon la revendication 2 ou 3, caractérisé en ce qu'il comporte un lecteur (15) de support de logiciel non nécessairement protégé contre la copie, ledit programme principal étant mis à disposition sur un tel support.  4. Device according to claim 2 or 3, characterized in that it comprises a reader (15) for software support not necessarily protected against copying, said main program being made available on such a support. 5. Dispositif selon la revendication 4, caractérisé en ce que ledit lecteur (15) de support de logiciel non nécessairement protégé est un lecteur de disque CD-ROM ou analogue.  5. Device according to claim 4, characterized in that said software support reader (15) not necessarily protected is a CD-ROM disk drive or the like. 6. Dispositif selon l'une des revendications 3 à 5, caractérisé en ce qu'il est associé à un modem (20) de décodage d'informations relié à un réseau de télécommunication, par exemple du type Internet, pour le téléchargement dudit programme principal dans une mémoire de ladite unité centrale.  6. Device according to one of claims 3 to 5, characterized in that it is associated with a modem (20) for decoding information connected to a telecommunications network, for example of the Internet type, for downloading said program in a memory of said central unit. 7. Dispositif selon l'une des revendications précédentes, caractérisé en ce que, en exécutant ledit programme principal, ladite unité centrale (UC) génère des commandes APDU ou analogues pour l'exécution de tout ou partie dudit programme auxiliaire et en ce que ladite entité électronique sécurisée (16) génère des réponses APDU correspondantes, renvoyées à ladite unité centrale.  7. Device according to one of the preceding claims, characterized in that, by executing said main program, said central unit (CPU) generates APDU commands or the like for the execution of all or part of said auxiliary program and in that said secure electronic entity (16) generates corresponding APDU responses, returned to said CPU. <Desc/Clms Page number 10> <Desc / Clms Page number 10> 8. Dispositif selon l'une des revendications 2 à 7, caractérisé en ce qu'il est essentiellement constitué d'un ordinateur équipé d'un lecteur (16) de carte à microcircuit précité.  8. Device according to one of claims 2 to 7, characterized in that it consists essentially of a computer equipped with a reader (16) microcircuit card aforementioned. 9. Dispositif selon l'une des revendications 2 à 7, caractérisé en ce qu'il est essentiellement constitué d'une console de jeu vidéo (25) équipée d'un lecteur (16a) de carte à microcircuit précité.  9. Device according to one of claims 2 to 7, characterized in that it consists essentially of a video game console (25) equipped with a reader (16a) microcircuit card aforesaid. 10. Support de logiciel caractérisé en ce qu'il comporte deux entités renfermant deux parties d'un même programme, respectivement un programme principal et un programme auxiliaire.  10. Software support characterized in that it comprises two entities containing two parts of the same program, respectively a main program and an auxiliary program. 11. Support de logiciel selon la revendication 10, caractérisé en ce que l'entité qui renferme ledit programme auxiliaire est une carte à microcircuit (17).  11. Software support according to claim 10, characterized in that the entity which encloses said auxiliary program is a microcircuit card (17). 12. Dispositif électronique apte à recevoir un support de logiciel selon la revendication 10 ou 11, caractérisé en ce qu'il constitue un téléphone, notamment un téléphone portable.  12. Electronic device adapted to receive a software support according to claim 10 or 11, characterized in that it constitutes a telephone, including a mobile phone. 13. Dispositif apte à recevoir un support de logiciel selon la revendication 10 ou 11, caractérisé en ce qu'il constitue un appareil dit"PDA". 13. Device adapted to receive a software support according to claim 10 or 11, characterized in that it constitutes a device called "PDA".
FR0200155A 2002-01-08 2002-01-08 Electronic data processing device suitable for execution of software protected against copying, whereby software is sub-divided with an auxiliary program stocked and executed in a secure chip card reader Pending FR2834573A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0200155A FR2834573A1 (en) 2002-01-08 2002-01-08 Electronic data processing device suitable for execution of software protected against copying, whereby software is sub-divided with an auxiliary program stocked and executed in a secure chip card reader

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0200155A FR2834573A1 (en) 2002-01-08 2002-01-08 Electronic data processing device suitable for execution of software protected against copying, whereby software is sub-divided with an auxiliary program stocked and executed in a secure chip card reader

Publications (1)

Publication Number Publication Date
FR2834573A1 true FR2834573A1 (en) 2003-07-11

Family

ID=27619375

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0200155A Pending FR2834573A1 (en) 2002-01-08 2002-01-08 Electronic data processing device suitable for execution of software protected against copying, whereby software is sub-divided with an auxiliary program stocked and executed in a secure chip card reader

Country Status (1)

Country Link
FR (1) FR2834573A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009095691A1 (en) * 2008-02-01 2009-08-06 Iti Scotland Ltd Secure partitioning
EP2502154A2 (en) * 2009-11-18 2012-09-26 Icelero LLC Method and system for cloud computing services for use with client devices having memory cards

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0175557A1 (en) * 1984-09-20 1986-03-26 Kenneth John Fifield Processing device and method
US5754646A (en) * 1995-07-19 1998-05-19 Cable Television Laboratories, Inc. Method for protecting publicly distributed software
WO1999062210A2 (en) * 1998-05-26 1999-12-02 Sun Microsystems, Inc. Secure token device access to services provided by an internet service provider (isp)
WO1999066387A1 (en) * 1998-06-12 1999-12-23 Gemplus Method for verifying the execution of a software product

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0175557A1 (en) * 1984-09-20 1986-03-26 Kenneth John Fifield Processing device and method
US5754646A (en) * 1995-07-19 1998-05-19 Cable Television Laboratories, Inc. Method for protecting publicly distributed software
WO1999062210A2 (en) * 1998-05-26 1999-12-02 Sun Microsystems, Inc. Secure token device access to services provided by an internet service provider (isp)
WO1999066387A1 (en) * 1998-06-12 1999-12-23 Gemplus Method for verifying the execution of a software product

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009095691A1 (en) * 2008-02-01 2009-08-06 Iti Scotland Ltd Secure partitioning
EP2502154A2 (en) * 2009-11-18 2012-09-26 Icelero LLC Method and system for cloud computing services for use with client devices having memory cards
EP2502154A4 (en) * 2009-11-18 2013-09-11 Icelero Llc Method and system for cloud computing services for use with client devices having memory cards

Similar Documents

Publication Publication Date Title
EP1616242B1 (en) Method and device for controlling an access to peripherals
EP2764462B1 (en) Method of generating, from an initial package file comprising an application to be secured and an initial configuration file, a package file for securing the application, and associated computer program product and computing device
EP0990204B1 (en) Chip card comprising means for managing a virtual memory, associated communication method and protocol
FR2713803A1 (en) Memory card and method of operation
EP0475837A1 (en) Method of managing an application program stored in an IC card
EP0552077B1 (en) Mass memory card for microcomputer with facilities for execution of internal programs
EP2447835B1 (en) Method for configuring an electronic entity
RU2348968C2 (en) System for interlinking of secrets with computer system having some tolerance on hardware changes
US20100153667A1 (en) Method, computer program and electronic device
FR2762417A1 (en) Security system preventing unauthorised copying of computer software from distribution disks
EP1761835A1 (en) Security module and method of customising one such module
WO2007068706A1 (en) Method for making secure execution of an intermediate language software code in a portable appliance
WO2008065264A1 (en) Portable electronic entity and method for customising such electronic entity
FR2841997A1 (en) APPLICATION SECURITY DOWNLOADED IN PARTICULAR FROM A CHIP CARD
FR2765363A1 (en) METHOD AND SYSTEM FOR CONTROLLING THE USE OF A SOFTWARE
FR2834573A1 (en) Electronic data processing device suitable for execution of software protected against copying, whereby software is sub-divided with an auxiliary program stocked and executed in a secure chip card reader
FR2814557A1 (en) PROTECTION AGAINST THE ABUSE OF AN INSTRUCTION IN A MEMORY
WO2008084154A2 (en) Processing of data associated with a digital service
EP1410152B1 (en) Making secure instruction reading in a data processing system
FR2841667A1 (en) GRAPHICAL USER INTERFACE FOR INSTALLING COMPUTER PROGRAMS OF A STARTUP LOT
EP3179400B1 (en) Method for loading a computing resource into an electronic device, electronic module and corresponding computer program
EP1547005B9 (en) Microcircuit card whereof the performances can be modified after customization
EP0770951A1 (en) Apparatus for controlling the use of software, system containing several such apparatuses and corresponding control procedure
EP3242215A1 (en) Method for optimising writing to the memory of a device
FR3094515A1 (en) secure code execution process, corresponding devices, system and programs