FR2812101A1 - Protocol for exchange of messages between applications embedded in a multi-function smart card, uses transmission of calls from master application to cause operating system to load and execute slave application - Google Patents

Protocol for exchange of messages between applications embedded in a multi-function smart card, uses transmission of calls from master application to cause operating system to load and execute slave application Download PDF

Info

Publication number
FR2812101A1
FR2812101A1 FR0009657A FR0009657A FR2812101A1 FR 2812101 A1 FR2812101 A1 FR 2812101A1 FR 0009657 A FR0009657 A FR 0009657A FR 0009657 A FR0009657 A FR 0009657A FR 2812101 A1 FR2812101 A1 FR 2812101A1
Authority
FR
France
Prior art keywords
application
slave
operating system
master
applications
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.)
Withdrawn
Application number
FR0009657A
Other languages
French (fr)
Inventor
Alain Boudou
Christoph Siegelin
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.)
Bull CP8 SA
Original Assignee
Bull CP8 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 Bull CP8 SA filed Critical Bull CP8 SA
Priority to FR0009657A priority Critical patent/FR2812101A1/en
Priority to PCT/FR2001/002364 priority patent/WO2002008897A1/en
Publication of FR2812101A1 publication Critical patent/FR2812101A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

The message protocol operates between applications on a smart card. A call request holding input/output information for the slave is transmitted (1000) from the master application to the card operating system. The master is deactivated and the slave (1001) activated and transmitted (1002) to the operating system, which supervises execution (1003) of the slave, returning results to the master.

Description

!!

PROTOCOLE D'ÉCHANGE DE MESSAGES ENTRE APPLICATIONS  PROTOCOL FOR EXCHANGING MESSAGES BETWEEN APPLICATIONS

IMPLANTEES SUR UN SYSTEME EMBARQUE, ET SYSTEME EMBARQUE  IMPLANTED ON AN ON-BOARD SYSTEM, AND ON-BOARD SYSTEM

CORRESPONDANTCORRESPONDING

Les systèmes embarqués, ou objets portatifs, actuels, notamment les cartes à microprocesseur, encore désignées par cartes à puce, tendent à remplir des fonctions de plus en plus complexes, en raison, notamment, de l'implantation de programmes d'application multiples, ces cartes à puce étant désignées par cartes "multi-application". Ces implantations multiples sont rendues possibles, d'une part, par la miniaturisation des circuits électroniques, finesse de gravure du silicium, et en conséquence, augmentation corrélative de la capacité mémoire des cartes à puce, et, d'autre part, par l'augmentation de la puissance de calcul des unités centrales de traitement. Une implantation structurelle  Current on-board systems, or portable objects, in particular microprocessor cards, also referred to as smart cards, tend to fulfill increasingly complex functions, due, in particular, to the implementation of multiple application programs, these smart cards being designated by "multi-application" cards. These multiple implantations are made possible, on the one hand, by the miniaturization of electronic circuits, fineness of etching of silicon, and consequently, correlative increase in the memory capacity of smart cards, and, on the other hand, by increase in the computing power of central processing units. A structural location

d'une carte à mémoire est représentée en figure la.  of a memory card is shown in Figure la.

En référence à la figure la, on rappelle que l'objet portatif, constitué par une carte à microprocesseur et référencé 10, comprend, de manière classique, des circuits d'entrée/sortie, notés I/O et référencés 12, permettant de communiquer avec un terminal tel qu'un terminal de transaction bancaire par exemple, des ressources de traitement de l'information, référencées 14, constituées par un micro-contrôleur, ces ressources de traitement de l'information étant reliées aux circuits d'entrée/sortie 12. En outre, une mémoire non volatile 18 est prévue, laquelle consiste en une mémoire programmable 18a et en une mémoire de type ROM, ou mémoire de type à accès en lecture seulement 18b. Ces deux mémoires sont reliées au microprocesseur 14. Enfin, une mémoire de type mémoire de travail, mémoire RAM, portant la référence 16, est également reliée au microprocesseur 14. Les liaisons précitées s'entendent d'une liaison par BUS de type classique. Un système d'exploitation OS est prévu, lequel  Referring to FIG. 1 a, it is recalled that the portable object, constituted by a microprocessor card and referenced 10, comprises, in a conventional manner, input / output circuits, denoted I / O and referenced 12, making it possible to communicate with a terminal such as a bank transaction terminal for example, information processing resources, referenced 14, constituted by a microcontroller, these information processing resources being connected to the input / output circuits 12. In addition, a non-volatile memory 18 is provided, which consists of a programmable memory 18a and of a ROM type memory, or memory type of read-only access 18b. These two memories are connected to the microprocessor 14. Finally, a memory of the working memory type, RAM memory, bearing the reference 16, is also connected to the microprocessor 14. The aforementioned connections are understood to be a connection by BUS of conventional type. An OS is planned, which

peut être implanté en mémoire non volatile 18.  can be installed in non-volatile memory 18.

Enfin, et dans certains cas seulement, l'objet portatif multi-application peut comporter, ainsi que représenté en figure la, une unité de calcul de chiffrement/déchiffrement S, portant la référence 20,  Finally, and in certain cases only, the portable multi-application object can comprise, as represented in FIG. 1a, an encryption / decryption calculation unit S, bearing the reference 20,

elle-même reliée au microprocesseur 14.  itself connected to the microprocessor 14.

Les éléments structurels de l'objet portatif multi-application, objet de la présente invention, ne seront pas décrits plus en détail car ils correspondent  The structural elements of the portable multi-application object, object of the present invention, will not be described in more detail because they correspond

à des éléments connus de l'état de la technique.  to elements known from the state of the art.

Dans une variante, le microprocesseur est remplacé - ou tout du moins complété - par des circuits logiques implantés dans une puce à semiconducteurs. En effet, de tels circuits sont aptes à effectuer des calculs, notamment d'authentification et de signature, grâce à de l'électronique câblée, et non microprogrammée. Ils peuvent notamment être de type ASIC (de l'anglais "Application Specific Integrated Circuit"). Dans une architecture connue de carte à puce multi-application, telle que représentée en figure lb, plusieurs applications indépendantes coexistent sur la  In a variant, the microprocessor is replaced - or at least supplemented - by logic circuits implanted in a semiconductor chip. Indeed, such circuits are capable of carrying out calculations, in particular of authentication and signature, thanks to wired, and not microprogrammed, electronics. They can in particular be of the ASIC type (from the English "Application Specific Integrated Circuit"). In a known architecture of a multi-application smart card, as represented in FIG. 1b, several independent applications coexist on the

même carte, dans la zone mémoire non volatile de celle-  same card, in its non-volatile memory area

ci. Ce type d'architecture comprend, habituellement, le système d'exploitation OS et les applications désignées par Appl1 et Appl2 sur la figure précitée. De manière optionnelle, l'architecture précitée peut comporter une machine virtuelle, telle qu'une machine virtuelle JAVA  this. This type of architecture usually includes the operating system OS and the applications designated by Appl1 and Appl2 in the above-mentioned figure. Optionally, the above architecture can include a virtual machine, such as a JAVA virtual machine

(marque déposée) dédiée, encore appelée JCVM.  (registered trademark), also called JCVM.

Le système d'exploitation OS n'est autre qu'un programme générique qui rend des services d'intercommunication aux applications implantées, services tels que la gestion des messages d'entrées/sorties échangés avec un terminal d'utilisation de la carte, tel qu'un terminal de paiement ou autre par exemple, ainsi que l'accès à la mémoire équipant le système embarqué. La gestion des messages d'entrées/sorties est normalement réalisée selon le protocole APDU pour Application Protocol Data Unit, défini par la norme ISO 7816. Dans le cadre de ce protocole, on rappelle que la commande d'invitation en lecture/écriture provient de l'extérieur du système embarqué, c'est-à-dire du terminal d'utilisation précité. Les différents champs d'une commande APDU sont représentés en figure ld, ces champs désignant: CLA: classe d'instruction INS:code d'instruction P1, P2:paramètres d'instruction Lcf:longueur en bits du champ de données Df: champ de données Lef:nombre maximum de bits dans le champ de  The operating system OS is nothing other than a generic program which provides intercommunication services to the applications installed, services such as the management of input / output messages exchanged with a terminal for using the card, such as such as a payment terminal or the like, as well as access to the memory fitted to the on-board system. The management of input / output messages is normally carried out according to the APDU protocol for Application Protocol Data Unit, defined by the ISO 7816 standard. In the context of this protocol, it is recalled that the read / write invitation command comes from outside the on-board system, that is to say the aforementioned use terminal. The different fields of an APDU command are represented in FIG. Ld, these fields designating: CLA: instruction class INS: instruction code P1, P2: instruction parameters Lcf: length in bits of the data field Df: field Lef data: maximum number of bits in the field

données de la réponse.response data.

SWI, SW2:statut de la commande, qualificatif de  SWI, SW2: order status, qualifier of

la commande.the command.

Les applications Appll ou Appl2 sont des programmes spécifiques qui réalisent, chacune, une tâche ou fonction particulière, telles que les fonctions d'un porte-monnaie électronique PME, système d'accès à des programmes de télévision à péage, ou autres. Dans ce but, les applications Appll ou Appl2 utilisent les services du système d'exploitation. Les commandes APDU, commandes d'entrées/sorties, en provenance du terminal d'utilisation, sont traitées par  The applications Appll or Appl2 are specific programs which each carry out a particular task or function, such as the functions of an electronic purse PME, system for access to pay television programs, or others. For this purpose, the Appll or Appl2 applications use the services of the operating system. APDU commands, input / output commands, from the user terminal, are processed by

le système d'exploitation OS et par les applications.  OS operating system and by applications.

Toutes les commandes APDU sont examinées par le système d'exploitation, certaines étant filtrées et d'autres étant remises aux applications, en fonction d'un  All APDU commands are reviewed by the operating system, some being filtered and others being delivered to applications, based on a

critère d'utilisation.usage criteria.

En effet, pour activer, c'est-à-dire rendre fonctionnellement active, une application implantée sur la carte, le programme implanté sur le terminal d'utilisation envoie à la carte, insérée dans ce dernier, une commande APDU spécifique de sélection, SELECTAPDU. Le système d'exploitation OS examine cette  In fact, to activate, that is to say to make functionally active, an application located on the card, the program installed on the user terminal sends to the card, inserted in the latter, a specific APDU command for selection, SELECTAPDU. The OS operating system examines this

commande et active l'application correspondante.  controls and activates the corresponding application.

Ensuite, toutes les commandes qui suivent sont directement remises à l'application active, par le système d'exploitation OS. Sur la figure lb, l'application Appl2 est représentée comme l'application active par la double flèche illustrant la mise en correspondance biunivoque de l'application active précitée et du système d'exploitation OS. Ce processus et le lien de correspondance biunivoque précité se terminent lorsque le système d'exploitation OS détecte de nouveau une commande de sélection d'une autre application, distincte de l'application active, ensuite de quoi le système d'exploitation désactive  Then all the commands that follow are directly delivered to the active application by the OS operating system. In FIG. 1b, the application Appl2 is represented as the active application by the double arrow illustrating the one-to-one mapping of the aforementioned active application and the operating system OS. This process and the aforementioned one-to-one correspondence link end when the OS operating system again detects a command to select another application, distinct from the active application, after which the operating system deactivates

l'application active et active cette autre application.  the application activates and activates this other application.

Dans certains cas, en particulier en vue d'augmenter les fonctionnalités d'une pluralité d'applications implantées sur une même carte à puce, il est souhaitable que l'application active puisse faire appel à une autre application, non active, implantée sur la carte. C'est par exemple le cas lorsqu'une application d'accès à des programmes de télévision à péage, PTV, doit faire appel à une application de porte-monnaie électronique, PME, pour effectuer un paiement. L'application d'accès aux programmes de télévision à péage doit ensuite reprendre la main, afin de gérer conditionnellement l'accès au programme de télévision choisi par l'utilisateur, en fonction de  In some cases, in particular with a view to increasing the functionality of a plurality of applications installed on the same smart card, it is desirable that the active application can use another application, not active, installed on the menu. This is for example the case when an application for access to pay-TV programs, PTV, must use an electronic wallet application, PME, to make a payment. The application for access to pay-TV programs must then regain control, in order to conditionally manage access to the television program chosen by the user, depending on

l'exécution valable ou non du paiement précité.  whether the aforementioned payment is valid or not.

Un tel mode opératoire nécessite donc que l'application, active, puisse activer l'autre application, application esclave, et qu'un canal de communication partagé (sharable interface en langage anglo-saxon) convenable soit installé entre  Such an operating mode therefore requires that the active application be able to activate the other application, the slave application, and that a suitable shared communication channel (sharable interface in Anglo-Saxon language) be installed between

l'application maître et l'application esclave.  the master application and the slave application.

La figure lc montre, à titre d'exemple,  Figure lc shows, by way of example,

l'installation d'un tel canal de communication.  the installation of such a communication channel.

D'une manière connue en tant que telle, l'activation de l'application esclave par l'application maître, ainsi que l'installation du canal de communication partagé, consiste à établir un tel canal partagé, ou interface partagée, à partir de la mémoire disponible de la carte à puce. Une solution connue correspond à une interface  In a manner known as such, the activation of the slave application by the master application, as well as the installation of the shared communication channel, consists in establishing such a shared channel, or shared interface, from the available memory of the smart card. A known solution corresponds to an interface

partagée JavaCard.2.1. Pour une description plus  shared JavaCard. 2.1. For a more description

détaillée de l'interface partagée JavaCard.2.1, on pourra utilement se reporter aux spécifications: - JavaCard 2.1 runtime environment JCRE specification final revision 1.0 du 24 février 1999. Auteur: Sun  detailed description of the shared JavaCard.2.1 interface, we can usefully refer to the specifications: - JavaCard 2.1 runtime environment JCRE specification final revision 1.0 of February 24, 1999. Author: Sun

Microsystems Incorporated Palo Alto California. USA.  Microsystems Incorporated Palo Alto California. USA.

- JavaCard 2.1 application programming interface final revision 1.0 du 24 février 1999. Auteur: Sun Microsystems Incorporated Palo Alto California. USA L'inconvénient majeur de la solution précitée consiste dans le fait qu'elle nécessite une interface particulière supplémentaire, consommatrice de mémoire, entre l'application maître et l'application esclave, l'interface partagée dans le cas de la spécification JavaCard.2. 1. Cette interface partagée est donc distincte de l'interface principale des applications implantées avec le système d'exploitation OS vis-à-vis du terminal, interface principale constituée par le jeu des commandes d'entrées/sorties, commandes APDU,  - JavaCard 2.1 application programming interface final revision 1.0 of February 24, 1999. Author: Sun Microsystems Incorporated Palo Alto California. USA The major drawback of the aforementioned solution consists in the fact that it requires an additional particular interface, consuming memory, between the master application and the slave application, the shared interface in the case of the JavaCard specification. . 1. This shared interface is therefore distinct from the main interface of the applications installed with the OS operating system vis-à-vis the terminal, the main interface constituted by the set of input / output commands, APDU commands,

compris par chaque application.understood by each application.

Pour cette raison, une application existante donnée ne peut pas servir d'application esclave pour autant qu'elle n'a pas été modifiée de façon à intégrer l'interface de partage. Il en est sensiblement de même pour ce qui concerne l'application maître, et, en conséquence, l'installation d'une interface partagée bidirectionnelle dans laquelle deux applications peuvent en outre devenir maître ou esclave respectivement apparait hypothétique. En effet, la modification d'une application existante est le plus souvent très coûteuse, voire difficilement réalisable, notamment lorsque l'application considérée a déjà fait l'objet d'une certification de sécurité, toute  For this reason, a given existing application cannot be used as a slave application as long as it has not been modified in order to integrate the sharing interface. It is substantially the same with regard to the master application, and, consequently, the installation of a bidirectional shared interface in which two applications can also become master or slave respectively appears hypothetical. Indeed, the modification of an existing application is most often very expensive, or even difficult to carry out, in particular when the application considered has already been the subject of a security certification, any

modification rendant le certificat de sécurité caduc.  modification rendering the safety certificate obsolete.

En outre, les mécanismes d'activation d'applications sont limités à un modèle de programmation spécifique, par exemple le langage JavaCard, et ne permettent cependant pas les interactions ou mises en communication entre appliquettes, établies en Java bytecode, et  In addition, the application activation mechanisms are limited to a specific programming model, for example the JavaCard language, and do not however allow interactions or communication between applets, established in Java bytecode, and

applications natives, établies en code natif.  native applications, established in native code.

La présente invention a pour objet de remédier aux inconvénients des interfaces partagées de l'art antérieur, par émulation d'une opération de sélection, entre une application maître et une application esclave. En conséquence, la présente invention a pour objet un protocole d'échange de messages entre applications implantées sur un système embarqué, par l'intermédiaire de l'interface principale et des commandes d'entrées/sorties, commandes APDU, gérées par  The object of the present invention is to remedy the drawbacks of shared interfaces of the prior art, by emulating a selection operation, between a master application and a slave application. Consequently, the subject of the present invention is a protocol for exchanging messages between applications installed on an on-board system, via the main interface and input / output commands, APDU commands, managed by

le système d'exploitation OS.the OS operating system.

Un autre objet de la présente invention est, également, la mise en oeuvre d'un protocole d'échange de messages entre applications implantées sur un système embarqué, tel qu'une carte à puce, dans lequel l'application esclave est gérée par les commandes d'entrées/sorties externes, l'application maitre jouant sensiblement le rôle d'un terminal d'utilisation  Another object of the present invention is, also, the implementation of a message exchange protocol between applications installed on an embedded system, such as a smart card, in which the slave application is managed by the external input / output commands, the master application playing the role of a user terminal

externe.external.

Un autre objet de la présente invention est, également, la mise en oeuvre d'un protocole d'échange de messages entre applications implantées sur un système embarqué, tel qu'une carte à puce, dans lequel toute application implantée est susceptible d'être sélectionnée comme application maître, cette application maître étant en mesure elle-même d'entrer en communication avec toute autre application distincte, constituant alors, vis-à-vis de cette  Another object of the present invention is, also, the implementation of a protocol for exchanging messages between applications installed on an embedded system, such as a smart card, in which any implanted application is capable of being selected as the master application, this master application itself being able to enter into communication with any other separate application, thus constituting vis-à-vis this

application maître, une application esclave.  master application, a slave application.

Un autre objet de la présente invention est, enfin, la mise en oeuvre d'un protocole sécurisé d'échange de messages entre applications implantées sur un système embarqué muni d'un système d'exploitation, tel qu'une carte à puce, ainsi que celle de tout  Another object of the present invention is, finally, the implementation of a secure protocol for exchanging messages between applications installed on an embedded system provided with an operating system, such as a smart card, as well than that of everything

système embarqué ou carte à puce correspondant.  embedded system or corresponding smart card.

Le protocole d'échange de messages entre applications implantées sur un système embarqué muni d'un système d'exploitation, objet de la présente invention, ce système d'exploitation permettant, par commande d'entrées/sorties, l'échange de messages de données et de commande d'interface principale entre une application maître active parmi ces applications, les autres applications étant inactives, et un système externe par l'intermédiaire de cette interface principale et de commandes d'entrées/sorties, est remarquable en ce qu'il consiste au moins à transmettre, à partir de l'application maître, vers le système d'exploitation, une requête d'appel d'une application esclave inactive, cette requête d'appel comportant au moins une commande d'entrée/sortie spécifique destinée à cette application esclave, à désactiver l'application maître et à activer cette application esclave inactive par l'intermédiaire du système d'exploitation, à transmettre à l'application esclave activée la commande d'entrée/sortie destinée à cette application esclave, par l'intermédiaire du système d'exploitation, à exécuter au niveau de cette application esclave activée la commande d'entrée/sortie destinée à cette application esclave, à retourner à partir de cette application esclave un message d'acquittement et/ou de réponse, au système d'exploitation. Le protocole, objet de l'invention, trouve application à la gestion de tout type d'applications implantées dans la mémoire non volatile d'un système  The message exchange protocol between applications installed on an on-board system provided with an operating system, object of the present invention, this operating system allowing, by input / output command, the exchange of messages from data and main interface command between a master application active among these applications, the other applications being inactive, and an external system via this main interface and input / output commands, is remarkable in that it consists at least of transmitting, from the master application, to the operating system, a call request from an inactive slave application, this call request comprising at least one specific input / output command intended for this slave application, to deactivate the master application and to activate this inactive slave application via the operating system, to be transmitted to the application e slave activated the input / output command intended for this slave application, via the operating system, to be executed at the level of this activated slave application the input / output command intended for this slave application, to return to from this slave application an acknowledgment and / or response message to the operating system. The protocol, object of the invention, finds application in the management of all types of applications located in the non-volatile memory of a system.

embarqué, tel qu'une carte à puce, notamment.  embedded, such as a smart card, in particular.

Il sera mieux compris à la lecture de la  It will be better understood on reading the

description et à l'observation des dessins dans  description and observation of the drawings in

lesquels, outre les figures la à ld relatives à l'art antérieur; - la figure 2a représente, à titre illustratif, un organigramme général représentant la mise en oeuvre séquentielle des étapes du protocole, objet de la présente invention; - la figure 2b représente, à titre illustratif, le chemin des échanges de commandes APDU au moyen d'une interface principale et du système d'exploitation OS  which, in addition to Figures la to ld relating to the prior art; - Figure 2a shows, by way of illustration, a general flowchart representing the sequential implementation of the steps of the protocol, object of the present invention; - Figure 2b shows, by way of illustration, the path for the exchange of APDU commands by means of a main interface and of the operating system OS

dans le cadre d'une architecture de carte multi-  as part of a multi-card architecture

application, lors de la mise en oeuvre du protocole objet de l'invention illustré en figure 2a; - la figure 2c représente, à titre illustratif, une mise en oeuvre successive du protocole objet de la présente invention entre différentes applications implantées dans une carte multiapplication; - la figure 3a représente, à titre illustratif, une variante de mise en oeuvre avantageuse du protocole objet de la présente invention dans le cas o l'application maître n'est pas suspendue mais désactivée; la figure 3b représente, à titre illustratif, le chemin des échanges de commandes, commandes APDU et commandes OS, au moyen d'une interface principale et du système d'exploitation dans le cadre d'une architecture de carte multi-application, lors de la mise en oeuvre du protocole objet de l'invention illustré en figure 3a; - la figure 4a représente, à titre illustratif, une variante de mise en oeuvre du protocole objet de la présente invention, dans laquelle une procédure d'authentification de la requête d'appel de l'application esclave et de cette application esclave par l'application maître est introduite; - la figure 4b représente, à titre illustratif, un mode de mise en oeuvre particulier de la procédure d'authentification selon une variante distincte de celle décrite en figure 4a; - la figure 5 représente, à titre illustratif, l'implantation d'un objet portatif ou système embarqué, tel qu'une carte à puce, conforme à l'objet de la  application, during the implementation of the object of the invention protocol illustrated in Figure 2a; - Figure 2c shows, by way of illustration, a successive implementation of the protocol object of the present invention between different applications installed in a multi-application card; - Figure 3a shows, by way of illustration, an advantageous variant of implementation of the protocol object of the present invention in the case where the master application is not suspended but deactivated; FIG. 3b represents, by way of illustration, the path for exchanging commands, APDU commands and OS commands, by means of a main interface and the operating system within the framework of a multi-application card architecture, during the implementation of the object of the invention protocol illustrated in Figure 3a; - Figure 4a shows, by way of illustration, an alternative implementation of the protocol object of the present invention, in which a procedure for authenticating the call request of the slave application and of this slave application by the master application is introduced; - Figure 4b shows, by way of illustration, a particular mode of implementation of the authentication procedure according to a variant different from that described in Figure 4a; FIG. 5 represents, by way of illustration, the installation of a portable object or on-board system, such as a smart card, in accordance with the object of the

présente invention.present invention.

Une description plus détaillée du protocole  A more detailed description of the protocol

d'échange de messages entre applications implantées sur Il un système embarqué, conforme à l'objet de la présente invention, sera maintenant donnée en liaison avec les  exchange of messages between applications installed on it, an on-board system, in accordance with the object of the present invention, will now be given in conjunction with the

figures 2a, 2b et les figures suivantes.  Figures 2a, 2b and the following figures.

D'une manière générale, on rappelle qu'un système embarqué désigne tout système informatique muni d'un système d'exploitation, tel qu'une carte à puce  In general, it is recalled that an on-board system designates any computer system provided with an operating system, such as a smart card

par exemple, une carte PCMCIA ou autre.  for example, a PCMCIA card or the like.

Ce système d'exploitation permet, par commandes d'entrées/sorties, l'échange de messages de données et de commandes d'interface principale entre une application maître, active parmi ces applications, les autres applications étant inactives, et un système externe tel que par exemple un terminal d'utilisation de ce système embarqué par l'intermédiaire d'un circuit d'interface d'entrée/sortie tel que le circuit 12  This operating system allows, by input / output commands, the exchange of data messages and main interface commands between a master application, active among these applications, the other applications being inactive, and an external system such that for example a terminal for using this on-board system by means of an input / output interface circuit such as circuit 12

représenté en figure la.shown in Figure la.

D'une manière générale, on considère que, dans l'ensemble des applications implantées dans le système embarqué, à chaque instant, aucune des applications n'est active, lorsque le système embarqué ou la carte à puce considérés ne sont pas utilisés, ou, au contraire, l'une des applications est active lorsque le système embarqué est inséré dans un terminal d'utilisation, les autres applications étant considérées inactives. On comprend en particulier que le caractère actif ou inactif de chaque application est géré par le système d'exploitation OS en fonction de l'utilisation du  In general, it is considered that, in all of the applications installed in the on-board system, at each instant, none of the applications is active, when the on-board system or the smart card in question are not used, or , on the contrary, one of the applications is active when the on-board system is inserted in a user terminal, the other applications being considered inactive. It is understood in particular that the active or inactive nature of each application is managed by the operating system OS according to the use of the

système embarqué ou de la carte à puce précités.  on-board system or the aforementioned smart card.

En conséquence, le protocole, objet de la présente invention, sera tout d'abord décrit en liaison avec les figures 2a et 2b dans le cas o le système embarqué multi-application considéré est utilisé,  Consequently, the protocol which is the subject of the present invention will firstly be described in connection with FIGS. 2a and 2b in the case where the multi-application on-board system considered is used,

c'est-à-dire inséré dans un terminal d'utilisation.  that is to say inserted into a terminal of use.

En référence à la figure 2a, on indique que ce système embarqué étant inséré dans un terminal d'utilisation, le terminal d'utilisation adresse, par l'intermédiaire du système d'exploitation OS et bien entendu de l'interface principale précitée, une commande de type APDU à l'attention de l'application maître, c'est-à-dire l'application pour laquelle le terminal d'utilisation est conçu. Suite à la réception de cette commande APDU, référencée o1, l'application maitre considérée qui a été activée effectue le traitement de cette commande à l'étape o2 représentée  Referring to FIG. 2a, it is indicated that this on-board system being inserted in a user terminal, the user terminal addresses, via the operating system OS and of course the aforementioned main interface, a APDU type command for the attention of the master application, i.e. the application for which the user terminal is designed. Following the reception of this APDU command, referenced o1, the considered master application which has been activated performs the processing of this command in step o2 represented

sur la figure 2a.in Figure 2a.

Le protocole d'échange de messages entre applications conforme à l'objet de la présente  The message exchange protocol between applications in accordance with the subject of this

invention est alors mis en oeuvre de la manière ci-  invention is then implemented in the following manner

après. En référence à la figure 2a, ce protocole consiste au moins, en une étape 1000, à transmettre à partir de l'application maître vers le système d'exploitation OS, une requête d'appel d'une application esclave inactive, cette requête d'appel comportant une commande d'entrée/sortie spécifique, dite commande ADPU, destinée à l'application esclave considérée. L'étape 1000 précitée est alors suivie d'une étape 1001, laquelle consiste, par l'intermédiaire du système d'exploitation OS, à désactiver l'application maître et à activer l'application esclave, inactive,  after. With reference to FIG. 2a, this protocol consists at least, in a step 1000, of transmitting from the master application to the operating system OS, a request for calling an inactive slave application, this request d call comprising a specific input / output command, called ADPU command, intended for the slave application considered. The above-mentioned step 1000 is then followed by a step 1001, which consists, by means of the operating system OS, of deactivating the master application and activating the slave application, inactive,

par l'intermédiaire de ce même système d'exploitation.  through this same operating system.

Les opérations de désactivation, respectivement d'activation des applications maître et esclave sont réalisées de manière classique conformément à la norme ISO 7816 et, pour cette raison, ne seront pas décrites en détail. L'étape 1001 précitée est alors suivie d'une étape 1002 consistant à transmettre à l'application  The deactivation operations, respectively activation of the master and slave applications are carried out in a conventional manner in accordance with ISO standard 7816 and, for this reason, will not be described in detail. The aforementioned step 1001 is then followed by a step 1002 consisting in transmitting to the application

esclave activée la commande d'entrée/sortie, c'est-à-  slave activated the input / output command, i.e.

dire la commande APDU destinée à cette application esclave, par l'intermédiaire du système d'exploitation OS. Suite à la réception de la commande APDU par l'application esclave après exécution de l'étape 1002, cette étape est suivie d'une étape 1003 d'exécution, au niveau de l'application esclave considérée activée, de la commande d'entrée/sortie ou commande ADPU précitée destinée à cette même application esclave. L'étape 1003 de traitement de la commande reçue par l'application esclave considérée est alors suivie d'une étape de retour, à partir de cette application esclave, d'un message d'acquittement et/ou d'un message de réponse au système d'exploitation OS. Cette étape est notée 1004 sur la figure 2a. Les messages d'acquittement et de  say the APDU command intended for this slave application, via the OS operating system. Following reception of the APDU command by the slave application after execution of step 1002, this step is followed by a step 1003 of execution, at the level of the slave application considered activated, of the input command / output or ADPU command mentioned above intended for this same slave application. Step 1003 of processing the command received by the slave application in question is then followed by a return step, from this slave application, of an acknowledgment message and / or of a response message to the OS operating system. This step is denoted 1004 in FIG. 2a. Acknowledgment and

réponse peuvent être combinés.answer can be combined.

Bien entendu, on comprend que le protocole objet de la présente invention permet alors une reprise des opérations réalisées par l'application maître dans les conditions habituelles à celles définies par l'exécution des commandes d'interface principale échangées entre l'application maître et le terminal d'utilisation. A titre d'exemple non limitatif, ainsi que représenté à la figure 2a, on indique que dans ce but, l'étape 1004 peut alors être suivie d'une étape 1005 selon laquelle le système d'exploitation procède à la désactivation de l'application esclave et à la réactivation, c'est-à-dire à la restauration, de l'application maître, pour poursuivre les opérations  Of course, it is understood that the protocol object of the present invention then allows a resumption of the operations carried out by the master application under the usual conditions to those defined by the execution of the main interface commands exchanged between the master application and the user terminal. By way of nonlimiting example, as shown in FIG. 2a, it is indicated that for this purpose, step 1004 can then be followed by a step 1005 according to which the operating system deactivates the slave application and reactivation, i.e. restoration, of the master application, to continue operations

d'échange avec le terminal d'utilisation.  exchange with the user terminal.

L'étape 1005 peut alors elle-même être suivie d'une étape 1006 consistant à transmettre à l'application maître ainsi réactivée la réponse de l'application esclave de façon à réaliser le traitement de cette réponse au niveau de l'application maitre,  Step 1005 can then itself be followed by a step 1006 consisting in transmitting to the master application thus reactivated the response from the slave application so as to carry out the processing of this response at the level of the master application,

ainsi que représenté à l'étape 1006.  as shown in step 1006.

L'étape 1006 précitée peut alors être suivie d'une étape de réponse 1007, c'est-à-dire d'envoi d'une réponse APDU, par l'application maître au terminal d'utilisation, en fonction des résultats du traitement de la réponse de l'application esclave par  The aforementioned step 1006 can then be followed by a response step 1007, that is to say sending an APDU response, by the master application to the use terminal, according to the results of the processing. of the slave application response by

l'application maître réalisés à l'étape 1006.  the master application made in step 1006.

Une description plus détaillée des chemins  A more detailed description of the paths

empruntés par les différents échanges de messages de données et/ou de commandes échangés au cours de la mise en oeuvre du protocole objet de la présente invention,  borrowed by the different exchanges of data messages and / or commands exchanged during the implementation of the protocol which is the subject of the present invention,

sera maintenant donnée en liaison avec la figure 2b.  will now be given in connection with FIG. 2b.

On considère à titre d'exemple non limitatif que le terminal d'utilisation est un terminal d'accès à un récepteur de télévision par exemple, comprenant les équipements nécessaires pour autoriser ou non l'accès à  It is considered by way of nonlimiting example that the user terminal is a terminal for accessing a television receiver for example, comprising the equipment necessary to authorize or not the access to

des émissions télévisées à péage.  Pay TV shows.

Le système embarqué utilisé est constitué par exemple par une carte à puce dans laquelle sont  The on-board system used consists for example of a smart card in which are

implantées deux applications, une application de porte-  implemented two applications, a carrier application

monnaie électronique PME et une application d'accès à des émissions télévisées à péage, notée P TV. D'une manière générale, cette application gère l'accès conditionnel à la diffusion du programme télévisé compte tenu du paiement valablement effectué des droits  PME electronic money and an application for access to pay TV programs, denoted P TV. In general, this application manages conditional access to the broadcasting of the television program taking into account the valid payment of rights

d'accès correspondants.corresponding access points.

On considère en particulier que dans cet exemple donné, le système embarqué est inséré dans le terminal d'utilisation, que l'application maître dès l'insertion est l'application P TV et que l'application esclave est  We consider in particular that in this given example, the on-board system is inserted into the user terminal, that the master application upon insertion is the P TV application and that the slave application is

l'application PME.the SME application.

Compte tenu de ces éléments, les opérations ou étapes ol et 02 sont réalisées par l'échange de commandes APDU entre le système d'exploitation, l'application maître PTV et le terminal. Les chemins  Given these elements, the operations or steps ol and 02 are carried out by the exchange of APDU commands between the operating system, the PTV master application and the terminal. Paths

d'accès empruntés sont notés (1) sur la figure 2b.  Access borrowed are noted (1) in Figure 2b.

Suite à l'exécution des étapes ol et 02, les étapes 1000 à 1004 sont alors réalisées entre l'application maître PTV, le système d'exploitation OS et bien entendu l'application esclave PME selon le chemin (2). On comprend en particulier que les échanges de messages précités peuvent, le cas échéant, être bidirectionnels sur le chemin considéré, ainsi qu'il  Following the execution of steps ol and 02, steps 1000 to 1004 are then performed between the PTV master application, the OS operating system and of course the PME slave application along the path (2). It is understood in particular that the exchanges of the aforementioned messages can, if necessary, be bidirectional on the path considered, as well as

sera décrit ultérieurement dans la description.  will be described later in the description.

L'échange de messages précité est alors réalisé par l'intermédiaire de commandes d'entrées/sorties spécifiques, lesquelles constituent des commandes APDU dédiées aux applications et qui, pour cette raison,  The aforementioned message exchange is then carried out by means of specific input / output commands, which constitute APDU commands dedicated to the applications and which, for this reason,

sont notées APDU*.are denoted APDU *.

Bien entendu, les étapes 1005 et 1006 représentées en figure 2a sont réalisées par l'intermédiaire du chemin (2) tel que représenté en figure 2b. Enfin, l'étape 1007 est réalisée à nouveau par l'intermédiaire du chemin (1), c'est-à-dire grâce à la mise en oeuvre de commandes ADPU classiques dans le  Of course, steps 1005 and 1006 shown in Figure 2a are carried out via the path (2) as shown in Figure 2b. Finally, step 1007 is performed again via the path (1), that is to say by means of the implementation of conventional ADPU commands in the

cadre de l'environnement de l'interface principale.  framework of the main interface environment.

En ce qui concerne la mise en oeuvre des étapes 1005 et 1006 et bien entendu ensuite la mise en oeuvre de l'étape 1007, on indique que les étapes 1005 et 1006 peuvent être mises en oeuvre vis-à-vis, non seulement de l'application maître initiale A1, laquelle est restaurée dans son état actif, mais également d'une autre application précédemment inactive, A2, A3, laquelle peut être rendue active successivement par l'intermédiaire du système d'exploitation OS. Ainsi, ainsi que représenté en figure 2c, une ou plusieurs autres applications inactives A2, A3, distinctes de l'application maître initiale A1 et de l'application esclave active A4, peuvent être rendues actives successivement afin de procéder à divers traitements de données, la réponse globale donnée par la dernière, l'application esclave active A4 étant alors transférée à l'application maître initiale A3 et le résultat global successif correspondant, au terminal d'utilisation conformément aux étapes 1005, 1006 et 1007 précitées par l'intermédiaire des applications A2, A1 rendues successivement actives. On comprend en particulier que l'application Ai étant sélectionnée comme application maître par le terminal par une commande APDU, le système d'exploitation OS peut ensuite, sur requête de l'application maître A,, sélectionner l'application A2 puis, tour à tour, les applications A3 et A4, et enfin revenir successivement à l'application maître A1, par l'intermédiaire des applications A2, A3, le retour à l'application maître A1 ayant été effectué par l'intermédiaire de commandes APDU spécifiques notées APDU*. Le retour du résultat global au terminal est  As regards the implementation of steps 1005 and 1006 and of course thereafter the implementation of step 1007, it is indicated that steps 1005 and 1006 can be implemented opposite, not only from the the initial master application A1, which is restored to its active state, but also from another previously inactive application, A2, A3, which can be made active successively via the operating system OS. Thus, as represented in FIG. 2c, one or more other inactive applications A2, A3, distinct from the initial master application A1 and from the active slave application A4, can be made successively active in order to carry out various data processing operations, the global response given by the last, the active slave application A4 then being transferred to the initial master application A3 and the corresponding successive overall result, to the use terminal in accordance with the steps 1005, 1006 and 1007 mentioned above via the applications A2, A1 successively made active. It is understood in particular that the application Ai being selected as master application by the terminal by an APDU command, the operating system OS can then, at the request of the master application A ,, select the application A2 then, in turn to turn, the applications A3 and A4, and finally return successively to the master application A1, via the applications A2, A3, the return to the master application A1 having been carried out by means of specific APDU commands denoted APDU *. The return of the overall result to the terminal is

bien entendu réalisé au moyen d'une commande APDU.  of course achieved by means of an APDU command.

Un exemple spécifique de mise en oeuvre des commandes APDU*, c'est-à-dire des commandes APDU spécifiques, sera maintenant donné ci-après dans la  A specific example of implementation of the APDU * commands, that is to say specific APDU commands, will now be given below in the

description.description.

D'une manière générale, l'application maître choisie fait d'abord appel aux services du système d'exploitation OS pour indiquer son souhait d'appeler l'application esclave, l'application PME précédemment  Generally, the master application chosen first calls on the services of the OS operating system to indicate its wish to call the slave application, the PME application previously

mentionnée en liaison avec la figure 2b.  mentioned in connection with Figure 2b.

La requête d'appel de l'application esclave inactive peut alors prendre la forme ci-après: isoStatus = callSlaveApplication (AID, isoHeader, dataln, *dataOut) (1) Dans la commande constitutive de la requête d'appel précitée, AID désigne l'identifiant de l'application esclave choisie conformément aux dispositions de la norme ISO 7816, isoHeader et dataIn contiennent la commande ADPU que l'application maître souhaite adresser à l'application esclave et l'argument *dataOut est un pointeur sur une zone mémoire telle que la zone mémoire RAM 16 représentée en figure la, zone dans laquelle le système d'exploitation OS est en mesure de stocker les données de la réponse de type ADPU fournie par l'application esclave. Le statut ISO renvoyé par l'application esclave est retourné dans la  The call request for the inactive slave application can then take the following form: isoStatus = callSlaveApplication (AID, isoHeader, dataln, * dataOut) (1) In the command constituting the aforementioned call request, AID designates the identifier of the slave application chosen in accordance with the provisions of ISO 7816, isoHeader and dataIn contain the ADPU command that the master application wishes to send to the slave application and the * dataOut argument is a pointer to a memory area such as the RAM memory area 16 represented in FIG. 1 a, the area in which the operating system OS is able to store the data of the response of the ADPU type provided by the slave application. The ISO status returned by the slave application is returned in the

variable isoStatus.isoStatus variable.

Suite à la requête d'appel précitée, le système d'exploitation OS active l'application esclave de la même façon que si une sélection par le terminal d'utilisation s'était produite par le chemin (2) représenté sur la figure 2b. le système d'exploitation OS transmet la commande APDU à l'application esclave, l'application PME représentée sur la figure 2b précitée. L'application esclave exécute la commande, puis retourne au système d'exploitation OS, l'application maître étant ensuite réactivée par ce dernier. Le scénario peut alors être répété pour former une séquence o, le cas échéant, une suite d'appels d'applications maître, respectivement esclave telles que représentées en figures 2c, avec retour successif  Following the aforementioned call request, the OS operating system activates the slave application in the same way as if a selection by the user terminal had occurred by the path (2) shown in Figure 2b. the operating system OS transmits the APDU command to the slave application, the PME application shown in FIG. 2b above. The slave application executes the command, then returns to the OS operating system, the master application then being reactivated by the latter. The scenario can then be repeated to form a sequence o, if necessary, a series of calls to master applications, respectively slave as represented in FIGS. 2c, with successive return

de la réponse finale au terminal d'utilisation.  of the final response to the user terminal.

En ce qui concerne le mode de mise en oeuvre du protocole, objet de la présente invention, tel que représenté en figures 2a, 2b et 2c, on indique que ce mode de mise en oeuvre correspond à une variante de réalisation désignée par application parallèle / empilée. Lors de la requête d'appel précédemment  As regards the mode of implementation of the protocol, object of the present invention, as represented in FIGS. 2a, 2b and 2c, it is indicated that this mode of implementation corresponds to an alternative embodiment designated by parallel application / stacked. When requesting an appeal previously

mentionnée dans la description et désignée par  mentioned in the description and designated by

callSlaveApplication, l'application maître est suspendue jusqu'au retour de l'application esclave. Ces opérations correspondent aux étapes 1001 et1005 de la figure 2a. Dans ces conditions, la gestion parallèle des applications résulte de l'attribution d'une fonction appelante, respectivement d'une fonction appelée. A l'application maître est conférée une fonction appelante et à l'application esclave est  callSlaveApplication, the master application is suspended until the slave application returns. These operations correspond to steps 1001 and 1005 of FIG. 2a. Under these conditions, the parallel management of the applications results from the allocation of a calling function, respectively of a called function. The master application is given a calling function and the slave application is

conférée une fonction appelée.conferred a function called.

Toutefois, un tel mode opératoire nécessite la mise en oeuvre d'un système de gestion pour les applications concurrentes multitâches, alors que l'occupation de la mémoire vive 16 est potentiellement importante. Une variante de mise en oeuvre du protocole objet de la présente invention peut consister en une mise en oeuvre séquentielle. Dans cette variante de réalisation, l'appel de la commande callSlaveApplication ne devient effectif qu'une fois l'application maître terminée par retour au système d'exploitation OS. Le système d'exploitation OS active alors l'application esclave et quant celle-ci se termine, le système d'exploitation précité réactive l'application maître en appelant cette dernière sur un point de lancement en mémoire  However, such an operating mode requires the implementation of a management system for concurrent multitasking applications, while the occupation of the RAM 16 is potentially significant. An alternative implementation of the protocol which is the subject of the present invention may consist of a sequential implementation. In this alternative embodiment, the call to the callSlaveApplication command becomes effective only after the master application has ended by returning to the OS operating system. The operating system OS then activates the slave application and when this ends, the aforementioned operating system reactivates the master application by calling the latter on a launch point in memory

spécifiquement prévu à cet effet.  specifically provided for this purpose.

Dans ces conditions, l'appel de l'application esclave prend alors la forme suivante: error= callSlaveApplication (AID, isoHeader, dataln) (2) Le statut ISO isoStatus ainsi que les données de réponse dataOut sont alors communiquées par le système d'exploitation à l'application maître au moment de la réactivation de cette dernière, selon la commande APDU: masterApplication.slaveCallBack(isoStatus, dataOut). (3) Le mode de mise en oeuvre correspondant à des applications séquentielles est simple à réaliser et  In these conditions, the call to the slave application then takes the following form: error = callSlaveApplication (AID, isoHeader, dataln) (2) The ISO status isoStatus as well as the dataOut response data are then communicated by the system. operation with the master application when the latter is reactivated, according to the APDU command: masterApplication.slaveCallBack (isoStatus, dataOut). (3) The mode of implementation corresponding to sequential applications is simple to carry out and

l'occupation de la mémoire vive 16 est faible.  the occupation of the RAM 16 is low.

Cependant, un point de lancement spécifique en mémoire doit être prévu dans l'application maître et le passage entre application maître et application esclave est moins rapide, en raison de sauvegardes nécessaires en  However, a specific launch point in memory must be provided in the master application and the transition between master application and slave application is slower, due to backups required in

mémoire non volatile.non-volatile memory.

Le processus de mise en oeuvre du protocole objet de la présente invention pour les applications séquentielles décrit précédemment est illustré par  The process of implementing the protocol object of the present invention for the sequential applications described above is illustrated by

l'organigramme de la figure 3a.the flowchart of Figure 3a.

Dans l'organigramme précité, on indique que les mêmes références désignent bien entendu les mêmes  In the aforementioned flowchart, it is indicated that the same references naturally designate the same

étapes que dans le cas de la figure 2a.  steps as in the case of Figure 2a.

Toutefois, et de manière particulièrement avantageuse, on indique que l'étape 1000 est alors constituée par une sous-étape 1000a et une sousétape  However, and in a particularly advantageous manner, it is indicated that step 1000 is then constituted by a sub-step 1000a and a sub-step

1000b, la sous-étape 1000a correspondant à une sous-  1000b, sub-step 1000a corresponding to a sub-

étape dans laquelle l'application maître sauvegarde son état en mémoire, alors que la sous-étape 1000b correspond à l'appel par l'application maître du système d'exploitation OS pour envoyer une commande  step in which the master application saves its state in memory, while sub-step 1000b corresponds to the call by the master application of the OS operating system to send a command

APDU à l'application esclave considérée.  APDU to the slave application considered.

De même, l'étape 1005 est subdivisée en deux sous-étapes, 1005a et 1005b, la sous-étape 1005a consistant en une désactivation de l'application esclave par le système d'exploitation OS et en une réactivation de l'application maître, cette sous-étape, dès la réactivation de cette dernière, étant suivie de la sous-étape 1005b dans laquelle cette application maître restaure son état à partir de la mémoire vive 16, état sauvegardé à la sous-étape 1000l a précédemment citée. Sur la figure 3b, on a représenté, outre les chemins (1) et (2) précédemment mentionnés en figure 2b, un chemin supplémentaire (3), lequel correspond aux opérations de sauvegarde de l'état de l'application maître en mémoire vive, respectivement de restauration de l'état de l'application maître à partir de cette mémoire vive 16. Ces opérations peuvent être réalisées à partir de commandes APDU existant dans l'environnement de l'interface principale et, pour cette raison, le chemin correspondant est représenté en  Likewise, step 1005 is subdivided into two sub-steps, 1005a and 1005b, sub-step 1005a consisting in deactivation of the slave application by the OS operating system and in reactivation of the master application, this sub-step, as soon as the latter is reactivated, being followed by sub-step 1005b in which this master application restores its state from the RAM 16, state saved in sub-step 1000l a previously cited. In FIG. 3b, in addition to the paths (1) and (2) previously mentioned in FIG. 2b, there is shown an additional path (3), which corresponds to the operations for saving the state of the master application in random access memory. , respectively to restore the state of the master application from this RAM 16. These operations can be carried out using APDU commands existing in the environment of the main interface and, for this reason, the corresponding path is represented in

ligne pointillée.dotted line.

Alors que les échanges de messages entre applications implantées sur un même système embarqué, conformément au protocole objet de la présente invention, présentent un intérêt majeur et ont pour effet d'augmenter les possibilités de fonctionnalité de ces systèmes embarqués, l'échange incontrôlé de ces messages est susceptible de donner lieu à des risques d'abus, notamment en cas d'intrusion et d'usurpation d'identité, par exemple en vue d'utilisation frauduleuse de l'une ou l'autre des applications. C'est en particulier le cas en ce qui concerne l'utilisation frauduleuse d'une application telle que l'application PME ou de toute application par laquelle des valeurs  While the exchange of messages between applications installed on the same embedded system, in accordance with the protocol object of the present invention, is of major interest and has the effect of increasing the functionality possibilities of these embedded systems, the uncontrolled exchange of these messages is likely to give rise to risks of abuse, in particular in the event of intrusion and identity theft, for example with a view to fraudulent use of one or other of the applications. This is particularly the case with regard to the fraudulent use of an application such as the PME application or any application by which values

fiduciaires sont traitées.trustees are processed.

Afin de diminuer ou supprimer le risque correspondant, et conformément à un aspect particulièrement remarquable du protocole objet de la présente invention, la transaction entre l'application maître et l'application esclave, ou, le cas échéant, entre toute application maître et toute application esclave, transaction constituée par les étapes A, B et C, c'est-à-dire des étapes 1000, 1001, 1002 des figures  In order to reduce or eliminate the corresponding risk, and in accordance with a particularly remarkable aspect of the protocol object of the present invention, the transaction between the master application and the slave application, or, if necessary, between any master application and any application slave, transaction made up of steps A, B and C, i.e. steps 1000, 1001, 1002 of the figures

2a ou 3a précédemment introduites dans la description,  2a or 3a previously introduced in the description,

peut comporter avantageusement une procédure d'authentification de la transaction entre application  can advantageously include a procedure for authenticating the transaction between applications

maître et application esclave.master and slave application.

La procédure d'authentification de la transaction entre application maître et application esclave peut être réalisée, à partir d'au moins une clé et d'un système de cryptographie par l'intermédiaire d'une procédure d'authentification de la requête d'appel de l'application esclave inactive par l'application maître, par exemple, ainsi qu'il sera  The procedure for authenticating the transaction between master application and slave application can be carried out, using at least one key and a cryptography system via an authentication procedure for the call request. of the inactive slave application by the master application, for example, as it will

décrit ci-après.described below.

Sur authentification de la requête d'appel, valeur vraie de l'authentification, la transaction est  Upon authentication of the call request, true value of authentication, the transaction is

poursuivie. Elle est interrompue sinon.  continued. Otherwise it is interrupted.

Dans ce but, ainsi que représenté en figure 4a, l'étape 1000 de la figure 2a ou l'étape 1000b de la figure 3a peut être suivie d'une étape 10001 respectivement 1000b1 d'authentification de la requête d'appel de l'application esclave par l'application maître. Un mode de réalisation particulier de l'étape d'authentification représentée en figure 4a peut consister, ainsi que représenté en figure 4b, à effectuer une opération de signature, respectivement de vérification de signature, d'éléments permettant d'authentifier l'origine de la requête d'appel et ainsi de sécuriser la transaction précitée. Dans ce but, ainsi que représenté sur la figure 4b précitée, à chaque application implantée sur le système embarqué, on associe une clé privée de signature, notée KpRi, et une clé publique de vérification de signature, notée Kpui, l'indice i désignant un identifiant de l'application implantée considérée. Ainsi, à chaque application, maître ou esclave, est associé un jeu de clé de signature,  For this purpose, as shown in FIG. 4a, step 1000 of FIG. 2a or step 1000b of FIG. 3a can be followed by a step 10001 respectively 1000b1 of authentication of the call request of the slave application by the master application. A particular embodiment of the authentication step shown in FIG. 4a can consist, as shown in FIG. 4b, of performing a signature operation, respectively verification of signature, of elements making it possible to authenticate the origin of the appeal request and thus secure the aforementioned transaction. For this purpose, as shown in FIG. 4b above, with each application installed on the on-board system, a private signature key, denoted KpRi, is associated with a public signature verification key, denoted Kpui, the index i designating an identifier of the implanted application considered. Thus, each application, master or slave, has a set of signature keys associated with it,

respectivement de vérification de signature.  signature verification respectively.

Le processus d'authentification consiste alors, au niveau de l'application maître, à engendrer une valeur aléatoire, notée RV, puis à transmettre au moyen d'une commande d'entrées/sorties de type commandes APDU spécifiques, APDU*, cette valeur aléatoire à  The authentication process then consists, at the level of the master application, in generating a random value, denoted RV, then in transmitting by means of an input / output command of the APDU specific command type, APDU *, this value random to

l'application esclave.the slave application.

L'étape A précitée est alors suivie d'une étape B consistant à calculer, au niveau de l'application esclave, à partir de la clé privée associée à cette application esclave, la clé privée KpRi précitée, une valeur de signature de la valeur aléatoire RV reçue par  The aforementioned step A is then followed by a step B consisting in calculating, at the level of the slave application, from the private key associated with this slave application, the aforementioned private key KpRi, a signature value of the value random RV received by

cette dernière.the latter.

L'opération de calcul de signature vérifie alors la relation: SG = fKPRi (RV)  The signature calculation operation then verifies the relationship: SG = fKPRi (RV)

relation contenue à l'étape B de la figure 4b.  relationship contained in step B of Figure 4b.

Dans la relation précédente, SG représente la valeur de signature calculée et fKPRi désigne l'opération  In the previous relation, SG represents the calculated signature value and fKPRi denotes the operation

de calcul de signature de la valeur aléatoire RV.  of calculation of signature of the random value RV.

Après calcul de la valeur de signature précitée, cette valeur est transmise à l'application maître par l'intermédiaire d'un message d'acquittement ou de  After calculating the aforementioned signature value, this value is transmitted to the master application by means of an acknowledgment message or

réponse contenant la valeur de signature précitée.  response containing the aforementioned signature value.

L'étape B est alors suivie d'une étape C consistant à procéder, au niveau de l'application maître, à une vérification de la valeur de signature précitée au moyen de la clé publique Kpui associée à la clé privée de l'application esclave auteur de la valeur de signature précitée. L'opération de vérification de signature vérifie la relation: V(SG) = gru (SG)  Step B is then followed by a step C consisting in carrying out, at the level of the master application, a verification of the aforementioned signature value by means of the public key Kpui associated with the private key of the slave application author of the aforementioned signature value. The signature verification operation verifies the relationship: V (SG) = gru (SG)

relation de l'étape C de la figure 4b.  relation of step C of FIG. 4b.

Bien entendu, le passage des étapes successives A, B, C comprend la transmission du processus d'activation de l'application active à l'application inactive, ces opérations étant notées T et représentées par une ligne en trait mixte entre les étapes A, B et C précitées. Ces opérations d'activation/désactivation de chaque application sont connues en tant que telles et,  Of course, the passage of the successive stages A, B, C includes the transmission of the activation process from the active application to the inactive application, these operations being denoted T and represented by a dashed line between the steps A, B and C above. These activation / deactivation operations of each application are known as such and,

pour cette raison, ne seront pas décrites en détail.  for this reason, will not be described in detail.

Bien entendu le processus d'authentification mis en oeuvre dans le cadre du protocole objet de la présente invention n'est pas limité à la procédure d'authentification de la requête d'appel de l'application esclave inactive par l'application maître  Of course, the authentication process implemented within the framework of the protocol which is the subject of the present invention is not limited to the procedure for authenticating the call request of the slave application inactive by the master application.

précédemment décrite.previously described.

En particulier, il est en outre possible de mettre en oeuvre une procédure d'authentification de la requête d'appel de l'application maître, ou le cas échéant, une combinaison logique de ces procédures d'authentification. Dans un tel cas toutefois, bien que cette procédure d'authentification ou cette combinaison de procédures d'authentification ne soit pas décrite, on indique qu'il est avantageux d'utiliser deux paires  In particular, it is also possible to implement an authentication procedure for the call request from the master application, or if necessary, a logical combination of these authentication procedures. In such a case, however, although this authentication procedure or this combination of authentication procedures is not described, it is indicated that it is advantageous to use two pairs

de clés.of keys.

En ce qui concerne la mise en ouvre des procédures d'authentification à partir d'au moins une clé de cryptographie on peut avantageusement utiliser soit un système cryptographique asymétrique à clé publique et à clé privée, soit un système cryptographique symétrique à clé secrète. Le système cryptographique utilisé permet la mise en oeuvre de l'un des processus de chiffrement/déchiffrement, de calcul et de vérification de signature ou d'échange de valeurs d'authentification.  As regards the implementation of authentication procedures from at least one cryptographic key, it is advantageously possible to use either an asymmetric cryptographic system with a public key and a private key, or a symmetric cryptographic system with a secret key. The cryptographic system used allows the implementation of one of the processes of encryption / decryption, calculation and verification of signature or exchange of authentication values.

Une description plus détaillée d'un système  A more detailed description of a system

embarqué multi-application constitué de manière non limitative par une carte à puce conforme à l'objet de la présente invention, sera maintenant donnée en  multi-application on-board device constituted in a nonlimiting manner by a smart card conforming to the object of the present invention, will now be given in

liaison avec la figure 5.link with figure 5.

Sur la figure 5, les mêmes éléments que ceux représentés en figure la portent les mêmes références, les éléments supplémentaires nécessaires à la mise en oeuvre du protocole objet de la présente invention ayant  In FIG. 5, the same elements as those represented in FIG. 1a bear the same references, the additional elements necessary for the implementation of the protocol object of the present invention having

été seuls distingués.only distinguished.

En premier lieu, afin de permettre la mise en oeuvre du protocole objet de la présente invention, le système embarqué objet de l'invention tel que représenté en figure 5 comporte, intégré au système d'exploitation, un jeu d'instructions spécifiques d'entrées/sorties, noté I*APDU comportant au moins les instructions APDU* précédemment mentionnées dans la  Firstly, in order to allow the implementation of the protocol object of the present invention, the on-board system object of the invention as represented in FIG. 5 comprises, integrated into the operating system, a set of specific instructions for inputs / outputs, noted I * APDU comprising at least the APDU * instructions previously mentioned in the

description et en particulier une requête d'appel, à  description and in particular a request for appeal, to

partir d'une application maître active, d'une application esclave inactive, cette requête d'appel correspondant par exemple à la commande donnée selon la relation (1) ou selon la relation (2) mentionnées  from an active master application, from an inactive slave application, this call request corresponding for example to the command given according to the relation (1) or according to the relation (2) mentioned

précédemment dans la description. En outre, une  earlier in the description. In addition, a

commande de transmission des données de réponse par l'intermédiaire du système d'exploitation OS vers l'application maître au moment de la réactivation de celle-ci peut être prévue dans le jeu de commandes, selon la relation (3) précédemment mentionnée dans la  command for transmitting response data via the operating system OS to the master application at the time of reactivation thereof can be provided in the command set, according to the relation (3) previously mentioned in the

description.description.

En outre, ainsi que représenté sur la figure 5 précitée, le système embarqué est avantageusement muni des moyens de calcul de signature et de vérification de signature 20 précédemment mentionnés dans la  In addition, as shown in FIG. 5 above, the on-board system is advantageously provided with the means of signature calculation and signature verification 20 previously mentioned in the

description. Dans le but de mettre en ouvre le  description. In order to implement the

protocole objet de la présente invention, chaque système embarqué tel que représenté en figure 5 comporte en outre un jeu de clé privée de signature et de clé publique de vérification de signature, les clés Kpri et Kpui, associé à chaque application implantée dans le système embarqué. Une seule clé secrète peut, le cas  protocol object of the present invention, each on-board system as shown in FIG. 5 also comprises a set of private signature key and public signature verification key, the keys Kpri and Kpui, associated with each application installed in the embedded system . Only one secret key can, if

échéant, être prévue.be provided.

Afin de sécuriser au maximum les transactions entre applications, non seulement les clés privées associées à chaque application, mais également les clés publiques associées à ces dernières, le cas échéant les clés secrètes, sont mémorisées en zone mémoire non volatile à accès sécurisé du système embarqué. On comprend en particulier qu'afin de réaliser les opérations de calcul de signature et de vérification de signature précédemment décrites, chaque application concernée fait bien sûr appel, par l'intermédiaire du système d'exploitation, aux zones mémoire sécurisées précitées et, bien entendu, aux circuits de calcul et de vérification de signature 20 selon les processus classiques d'accès à ces informations sécurisées,  In order to secure transactions between applications as much as possible, not only the private keys associated with each application, but also the public keys associated with them, if necessary the secret keys, are stored in a non-volatile memory area with secure access from the on-board system . It is understood in particular that in order to carry out the operations of calculation of signature and verification of signature previously described, each application concerned naturally calls, via the operating system, to the aforementioned secure memory areas and, of course , to the signature calculation and verification circuits 20 according to the conventional processes for accessing this secure information,

telles que définies dans la norme ISO 7816.  as defined in ISO 7816.

Dans l'exemple décrit précédemment d'échanges de messages entre deux applications, une application d'accès à des programmes de télévision à péage et une application de porte-monnaie électronique,  In the example described above of exchanges of messages between two applications, an application for accessing pay television programs and an electronic purse application,

l'application P_TV doit prouver à l'application porte-  the P_TV application must prove to the carrier application

monnaie électronique son identité avant que, bien entendu, cette dernière ne lui permette toute opération de débit et de prélèvement dans le portemonnaie  electronic money his identity before, of course, the latter allows him any debit and direct debit transaction in the wallet

électronique, et vice versa.electronic, and vice versa.

Pour la mise en oeuvre des processus d'authentification, c'est-à-dire d'apport de la preuve d'identité, les mécanismes à clé privée et à clé publique peuvent être utilisés. Parmi ceux-ci, un mode de réalisation particulier consiste à utiliser le système RSA, l'application esclave utilisant la clé privée pour signer la valeur aléatoire engendrée et transmise par l'application maître et l'application maître utilisant ensuite la clé publique associée à la clé privée associée à l'application esclave pour  For the implementation of authentication processes, that is to say of providing proof of identity, the private key and public key mechanisms can be used. Among these, a particular embodiment consists in using the RSA system, the slave application using the private key to sign the random value generated and transmitted by the master application and the master application then using the public key associated with the private key associated with the slave application for

effectuer la vérification de signature précitée.  perform the aforementioned signature verification.

La mise en oeuvre du processus d'authentification entre deux applications telles que les applications précédemment mentionnées, fait alors appel à des commandes APDU* qui sont strictement identiques à celles qui sont habituellement utilisées pour l'authentification entre la carte à puce et le terminal d'utilisation. On indique en outre que le processus d'authentification n'est pas nécessairement séparé des autres commandes. En effet, il est également possible de signer toutes les commandes APDU* en ajoutant un code d'authentification dans le champ des données. Dans ces conditions, le récepteur de la commande, par exemple le porte-monnaie électronique jouant le rôle d'application esclave, peut alors s'assurer de l'identité de l'émetteur de la commande, l'application maître constituée par l'application P TV lors de la  The implementation of the authentication process between two applications such as the aforementioned applications, then calls on APDU * commands which are strictly identical to those which are usually used for authentication between the smart card and the terminal d 'use. It is further indicated that the authentication process is not necessarily separated from the other commands. Indeed, it is also possible to sign all APDU * commands by adding an authentication code in the data field. Under these conditions, the receiver of the order, for example the electronic purse playing the role of slave application, can then ascertain the identity of the issuer of the order, the master application constituted by the P TV application during

réception de la requête d'appel de cette dernière.  receipt of the latter's request for appeal.

On a ainsi décrit un protocole d'échange de messages entre applications implantées sur un système embarqué et un système embarqué permettant la mise en oeuvre d'un tel protocole particulièrement performants, dans la mesure o la mise en oeuvre de ces derniers ne nécessite pas de connaissances d'une interface externe privée et spécifique, la mise en oeuvre de cet échange de messages étant réalisée uniquement à partir du jeu de commandes APDU externes, c'est-à-dire à partir des  We have thus described a message exchange protocol between applications installed on an embedded system and an embedded system allowing the implementation of such a particularly efficient protocol, insofar as the implementation of the latter does not require any knowledge of a private and specific external interface, the implementation of this exchange of messages being carried out only from the set of external APDU commands, that is to say from the

commandes de l'interface principale.  main interface commands.

En particulier, dans ces conditions, et selon un aspect particulièrement remarquable de la mise en oeuvre du protocole objet de la présente invention,  In particular, under these conditions, and according to a particularly remarkable aspect of the implementation of the protocol object of the present invention,

l'application esclave peut ne pas être modifiée.  the slave application may not be modified.

En outre, des applications de nature différente, c'est-à-dire des applications dont le langage de programmation ou la conception sont différents, peuvent  In addition, applications of a different nature, i.e. applications whose programming language or design are different, may

être activées.be activated.

En outre, la réutilisation de l'interface principale et des commandes APDU permet la réalisation d'une factorisation du code et donc une réduction du volume de codes nécessaires pour la multiplication des  In addition, the reuse of the main interface and of the APDU commands allows the factoring of the code and therefore a reduction in the volume of codes necessary for the multiplication of the

fonctions de tout système embarqué de type classique.  functions of any conventional on-board system.

En raison de la réduction ou de la suppression des modifications introduites au niveau de chaque application, le processus de certification de l'ensemble des systèmes embarqués et des applications implantées sur ce dernier est alors grandement simplifié. Différentes variantes de mise en oeuvre du protocole et des systèmes embarqués objets de la présente invention peuvent être envisagées. En particulier, les applications maître et esclave peuvent  Due to the reduction or elimination of the modifications introduced at the level of each application, the certification process of all the embedded systems and of the applications installed on the latter is then greatly simplified. Different variants of implementation of the protocol and the embedded systems which are the subject of the present invention can be envisaged. In particular, master and slave applications can

être simultanément présentes en mémoire vive 16 ou non.  be simultaneously present in RAM 16 or not.

Le critère de présence simultanée ou non des applications maître et esclave est alors uniquement lié à un compromis entre performances et ressources mémoire  The criterion of simultaneous presence or not of the master and slave applications is then only linked to a compromise between performance and memory resources

vive nécessaires.lively necessary.

En outre, une optimisation de la requête d'appel selon la relation (1) précédemment mentionnée dans la  In addition, an optimization of the appeal request according to the relation (1) previously mentioned in the

description peut être effectuée en séparant la  description can be made by separating the

sélection de l'application esclave, par l'intermédiaire de la variable d'adresse AID correspondante, du traitement, c'est-à-dire des données d'entrée dataIn et des données de sortie dataOut. Dans ces conditions, deux appels au système d'exploitation OS sont alors nécessaires, mais ce mode de réalisation peut se révéler plus efficace lorsque la communication comprend  selection of the slave application, via the corresponding address variable AID, of the processing, that is to say input data dataIn and output data dataOut. Under these conditions, two calls to the OS operating system are then necessary, but this embodiment may prove to be more effective when the communication includes

plusieurs commandes.multiple orders.

Claims (9)

REVENDICATIONS 1. Protocole d'échange de messages entre applications implantées sur un système embarqué muni d'un système d'exploitation, ce système d'exploitation permettant, par commandes d'entrées/sorties, l'échange de messages de données et de commandes d'interface principale entre une application maître active parmi ces applications, les autres applications étant inactives, et un système externe par l'intermédiaire d'une interface d'entrée/sortie, caractérisé en ce qu'il consiste au moins à: a) transmettre, à partir de l'application maître, vers le système d'exploitation, une requête d'appel d'une application esclave inactive, cette requête d'appel comportant une commande d'entrée/sortie spécifique destinée à cette application esclave; b) désactiver l'application maître et activer cette application esclave inactive par l'intermédiaire du système d'exploitation; c) transmettre à l'application esclave activée la commande d'entrée/sortie destinée à cette application esclave, par l'intermédiaire du système d'exploitation; d) exécuter au niveau de cette application esclave activée la commande d'entrée/sortie destinée à cette application esclave; e) retourner à partir de cette application esclave un message d'acquittement et/ou de réponse au système d'exploitation.  1. Protocol for the exchange of messages between applications installed on an on-board system provided with an operating system, this operating system allowing, by input / output commands, the exchange of data messages and of commands of main interface between a master application active among these applications, the other applications being inactive, and an external system via an input / output interface, characterized in that it consists at least in: a) transmitting , from the master application, to the operating system, a call request from an inactive slave application, this call request comprising a specific input / output command intended for this slave application; b) deactivate the master application and activate this inactive slave application via the operating system; c) transmit to the activated slave application the input / output command intended for this slave application, via the operating system; d) execute at the level of this activated slave application the input / output command intended for this slave application; e) return from this slave application an acknowledgment and / or response message to the operating system. 2. Protocole selon la revendication 1, caractérisé en ce que celui-ci consiste en outre, suite à l'étape e), à: f) désactiver cette application esclave et réactiver l'application maître par l'intermédiaire du système d'exploitation et à transmettre à cette application2. Protocol according to claim 1, characterized in that it further consists, following step e), in: f) deactivating this slave application and reactivating the master application via the operating system and forward to this app maître la réponse de l'application esclave.  master the response of the slave application. 3. Protocole selon la revendication 2, caractérisé en ce que ladite requête d'appel comporte en outre un argument consistant en un pointeur désignant une zone mémoire dans laquelle le système d'exploitation peut procéder au stockage de la réponse de cette application esclave activée, suite à l'exécution de la commande d'entrée/sortie destinée à  3. Protocol according to claim 2, characterized in that said call request also includes an argument consisting of a pointer designating a memory area in which the operating system can store the response of this activated slave application, following the execution of the input / output command intended for cette dernière.the latter. 4. Protocole selon la revendication 1, caractérisé en ce que, pour une gestion parallèle desdites applications, suite à l'étape a) consistant à transmettre, à partir de l'application maître, vers le système d'exploitation, une requête d'appel d'une application esclave inactive, celui-ci consiste à: - suspendre l'application maître jusqu'au retour au système d'exploitation du message d'acquittement à partir de cette application esclave, la gestion parallèle desdites applications résultant de l'attribution d'une fonction appelante respectivement d'une fonction appelée, à l'application maître étant conférée une fonction appelante et à l'application esclave étant conférée une fonction appelée; - attribuer aux applications concurrentes un système  4. Protocol according to claim 1, characterized in that, for a parallel management of said applications, following step a) consisting in transmitting, from the master application, to the operating system, a request for call of an inactive slave application, this consists of: - suspending the master application until the return to the operating system of the acknowledgment message from this slave application, the parallel management of said applications resulting from the allocation of a calling function respectively of a called function, to the master application being given a calling function and to the slave application being given a called function; - assign competing applications a system de gestion spécifique hiérarchisé.  specific hierarchical management. 5. Protocole selon la revendication 1, caractérisé en ce que, à chaque application du système embarqué étant associée au moins une clé de cryptographie, la transaction entre application maître et application esclave constituée par les étapes a), b) et c), comporte une procédure d'authentification de cette transaction, à partir de ladite clé de  5. Protocol according to claim 1, characterized in that, with each application of the on-board system being associated with at least one cryptography key, the transaction between master application and slave application constituted by steps a), b) and c), comprises an authentication procedure for this transaction, using said key cryptographie.cryptography. 6. Protocole selon la revendication 1, caractérisé en ce que la transaction entre l'application maitre et l'application esclave, constituée par les étapes a), b) et c), comporte en outre une procédure d'authentification de la requête d'appel de l'application esclave inactive par  6. Protocol according to claim 1, characterized in that the transaction between the master application and the slave application, constituted by steps a), b) and c), further comprises a procedure for authenticating the request d slave application inactive by l'application maître.the master application. 7. Protocole selon la revendication 6, caractérisé en ce que, à chaque application du système embarqué étant associées une clé privée de signature et une clé publique de vérification de signature, ladite procédure d'authentification consiste au moins: - à engendrer, au niveau de l'application maître, une valeur aléatoire et à transmettre au moyen d'une commande d'entrées/sorties cette valeur aléatoire à ladite application esclave; - à calculer à partir de ladite clé privée, au niveau de ladite application esclave, une valeur de signature de ladite valeur aléatoire et à transmettre à ladite application maître un message d'acquittement ou de réponse contenant ladite valeur de signature; - à procéder, au niveau de ladite application maître, à une vérification de ladite valeur de signature au moyen de ladite clé publique associée à ladite clé privée de ladite application esclave, auteur de  7. Protocol according to claim 6, characterized in that, with each application of the on-board system being associated with a private signature key and a public signature verification key, said authentication procedure consists at least: - of generating, at the level from the master application, a random value and to transmit by means of an input / output command this random value to said slave application; - calculating from said private key, at said slave application, a signature value of said random value and transmitting to said master application an acknowledgment or response message containing said signature value; to carry out, at the level of said master application, a verification of said signature value by means of said public key associated with said private key of said slave application, author of ladite valeur de signature.said signature value. 8. Système embarqué multi-application comportant un système d'exploitation permettant, par commandes d'entrées/sorties, l'échange de messages de données et de commandes d'interface principale entre une application maître active parmi ces applications, les autres applications étant inactives, et un système externe par l'intermédiaire d'une interface d'entrée/sortie, caractérisé en ce qu'il comporte en outre, intégré audit système d'exploitation, un jeu d'instructions spécifiques d'entrées/sorties comportant au moins: - une requête d'appel à partir d'une application maître, active, d'une application esclave, inactive - un message d'acquittement ou de réponse de  8. Embedded multi-application system comprising an operating system allowing, by input / output commands, the exchange of data messages and main interface commands between a master application active among these applications, the other applications being inactive, and an external system via an input / output interface, characterized in that it further comprises, integrated into said operating system, a set of specific input / output instructions comprising at less: - a call request from a master application, active, a slave application, inactive - an acknowledgment or response message from l'application esclave au système d'exploitation.  the slave application to the operating system. 9. système embarqué multi-application selon la revendication 8, caractérisé en ce que ce système embarqué étant muni de moyens de calcul de signature, celui-ci comporte en outre un jeu de clé privée de signature et de clé publique de vérification de signature associé à chaque application, lesdits jeux de clés étant mémorisés en zone mémoire non volatile à  9. multi-application on-board system according to claim 8, characterized in that this on-board system being provided with signature calculation means, this further comprises a set of private signature key and associated public key for verification of signature at each application, said sets of keys being stored in a non-volatile memory area at accès sécurisé dudit système embarqué.  secure access of said on-board system.
FR0009657A 2000-07-24 2000-07-24 Protocol for exchange of messages between applications embedded in a multi-function smart card, uses transmission of calls from master application to cause operating system to load and execute slave application Withdrawn FR2812101A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0009657A FR2812101A1 (en) 2000-07-24 2000-07-24 Protocol for exchange of messages between applications embedded in a multi-function smart card, uses transmission of calls from master application to cause operating system to load and execute slave application
PCT/FR2001/002364 WO2002008897A1 (en) 2000-07-24 2001-07-20 Protocol for message exchange between applications implanted on an onboard system, and corresponding onboard system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0009657A FR2812101A1 (en) 2000-07-24 2000-07-24 Protocol for exchange of messages between applications embedded in a multi-function smart card, uses transmission of calls from master application to cause operating system to load and execute slave application

Publications (1)

Publication Number Publication Date
FR2812101A1 true FR2812101A1 (en) 2002-01-25

Family

ID=8852830

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0009657A Withdrawn FR2812101A1 (en) 2000-07-24 2000-07-24 Protocol for exchange of messages between applications embedded in a multi-function smart card, uses transmission of calls from master application to cause operating system to load and execute slave application

Country Status (2)

Country Link
FR (1) FR2812101A1 (en)
WO (1) WO2002008897A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8544735B2 (en) 2011-05-23 2013-10-01 Mastercard International Incorporated Combicard transaction method and system having an application parameter update mechanism
CN111698762A (en) * 2019-03-14 2020-09-22 成都鼎桥通信技术有限公司 Wifi information acquisition method and device

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6824064B2 (en) 2000-12-06 2004-11-30 Mobile-Mind, Inc. Concurrent communication with multiple applications on a smart card
CN100351799C (en) * 2005-09-12 2007-11-28 浙江大学 Telecommunication between tasks based on news objects in embedded real-time operation system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998019237A1 (en) * 1996-10-25 1998-05-07 Schlumberger Systemes Using a high level programming language with a microcontroller

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998019237A1 (en) * 1996-10-25 1998-05-07 Schlumberger Systemes Using a high level programming language with a microcontroller

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
BERSHAD B N ET AL: "LIGHTWEIGTH REMOTE PROCEDURE CALL", ACM TRANSACTIONS ON COMPUTER SYSTEMS,US,ASSOCIATION FOR COMPUTING MACHINERY. NEW YORK, vol. 8, no. 1, 1 February 1990 (1990-02-01), pages 37 - 55, XP000113133, ISSN: 0734-2071 *
MONTGOMERY M ET AL: "Secure object sharing in Java Card", PROCEEDINGS OF THE USENIX WORKSHOP ON SMARTCARD TECHNOLOGY (SMARTCARD '99), PROCEEDINGS OF THE USENIX WORKSHOP ON SMARTCARD TECHNOLOGY, CHICAGO, IL, USA, 10-11 MAY 1999, 1999, Berkeley, CA, USA, USENIX Assoc, USA, pages 119 - 127, XP002167363, ISBN: 1-880446-34-0, Retrieved from the Internet <URL:http://www.usenix.org/event/smartcard99/full_papers/montgomery/montgomery.pdf> [retrieved on 20010508] *
SUN MICROSYSTEMS: "JAVA CARD 2.1.1 APPLICATION PROGRAMMING INTERFACE", JAVA CARD SPECIFICATIONS REV. 1.0, 18 May 2000 (2000-05-18), pages i - ii,117, XP002167365, Retrieved from the Internet <URL:ftp.java.sun.com/pub/javacard/adjfklad-211/java_card_kit-2_1_1-doc.zip> [retrieved on 20010508] *
SUN MICROSYSTEMS: "JAVA CARD 2.1.1 RUNTIME ENVIRONMENT (JCRE) SPECIFICATION", JAVA CARD SPECIFICATIONS REV. 1.0, 18 May 2000 (2000-05-18), XP002167364, Retrieved from the Internet <URL:ftp.java.sun.com/pub/javacard/adjfklad-211/java_card_kit-2_1_1-doc.zip> [retrieved on 20010508] *
ZHIQUN CHEN: "Java Card Technology for Smart Cards: Architecture and Programmer's Guide", 2 June 2000, ADDISON-WESLEY PUB CO., USA, XP002167366 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8544735B2 (en) 2011-05-23 2013-10-01 Mastercard International Incorporated Combicard transaction method and system having an application parameter update mechanism
US9010631B2 (en) 2011-05-23 2015-04-21 Mastercard International, Inc. Combicard transaction method and system having an application parameter update mechanism
US9582796B2 (en) 2011-05-23 2017-02-28 Mastercard International Incorporated Combicard transaction method and system having an application parameter update mechanism
CN111698762A (en) * 2019-03-14 2020-09-22 成都鼎桥通信技术有限公司 Wifi information acquisition method and device

Also Published As

Publication number Publication date
WO2002008897A1 (en) 2002-01-31

Similar Documents

Publication Publication Date Title
EP1004100B1 (en) Portable electronic device for safe communication system, and method for initialising its parameters
EP3243176B1 (en) Method of processing a transaction from a communication terminal
EP0707290B1 (en) Method and apparatus for loading a protected memory zone in data processing equipment
FR2779018A1 (en) System for undertaking secure electronic transactions via the internet using public telephone networks
EP1234284A1 (en) Method for making secure the pre-initialising phase of a silicon chip integrated system, in particular a smart card and integrated system therefor
EP0552077B1 (en) Mass memory card for microcomputer with facilities for execution of internal programs
EP1769470A1 (en) Method of managing a multi-application smart card
EP3455812B1 (en) Method for securing an electronic device, and corresponding electronic device
EP2612516A1 (en) Protection of a communication channel of a telecommunication device coupled to an nfc circuit against misrouting
WO2001084512A1 (en) Multiple application smart card
WO2016207715A1 (en) Secure management of electronic tokens in a cell phone
EP1356656A2 (en) Protocol for transmitting a plurality of multiple exchange logic flow of command/response pairs on a single physical exchange channel between master and slave and corresponding system for controlling and monitoring execution of applets
FR2812101A1 (en) Protocol for exchange of messages between applications embedded in a multi-function smart card, uses transmission of calls from master application to cause operating system to load and execute slave application
EP1141903B1 (en) Device and method for initialising an applicative programme of an integrated circuit card
EP3136283B1 (en) Device and method for securing commands exchanged between a terminal and an integrated circuit
EP3167420B1 (en) Method for managing a transaction, corresponding server, computer program product and storage medium
EP3987390A1 (en) Service application system for payment terminals
EP2053532A1 (en) Method of opening a microcircuit card that is secure to third parties
FR2812419A1 (en) METHOD FOR SECURING ACCESS TO A MICROPROCESSOR USER CARD
EP4199411B1 (en) Method for determining an authorization for implementing a composite resource, corresponding blockchain, devices and program
EP4390738A1 (en) Protection of an electronic device
EP4390739A1 (en) Protection of an electronic device
FR3077150A1 (en) METHOD FOR CONTROLLING DEPENDENCY RULES OF OBJECTS UPDATED IN A MICROCIRCUIT, AND CORRESPONDING DEVICE
FR2875656A1 (en) Electronic unit e.g. chip card, customization performing method, involves storing master key in volatile memory unit of electronic unit, storing diversified key in non volatile memory unit and deleting volatile unit zone having master key
FR2762111A1 (en) Protection of computer file against illicit copying and use

Legal Events

Date Code Title Description
ST Notification of lapse