WO2002008897A1 - Protocol for message exchange between applications implanted on an onboard system, and corresponding onboard system - Google Patents
Protocol for message exchange between applications implanted on an onboard system, and corresponding onboard system Download PDFInfo
- Publication number
- WO2002008897A1 WO2002008897A1 PCT/FR2001/002364 FR0102364W WO0208897A1 WO 2002008897 A1 WO2002008897 A1 WO 2002008897A1 FR 0102364 W FR0102364 W FR 0102364W WO 0208897 A1 WO0208897 A1 WO 0208897A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- application
- slave
- operating system
- master
- applications
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Definitions
- microprocessor cards also referred to as smart cards
- smart cards tend to fulfill increasingly complex functions, due, in particular, to the implementation of multiple application programs, these smart cards being designated by • "mul ti -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.
- the portable object constituted by a microprocessor card and referenced 10
- the portable object 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.
- a non-volatile memory 18 is provided, which consists of a programmable memory 18 a and a memory of ROM type, or read-only type memory 18 b . These two memories are connected to the microprocessor 14.
- 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.
- the portable multi-application object can comprise, as shown in FIG. 1 a, an encryption calculation unit. / decryption S, bearing the reference 20, itself connected to the microprocessor 14.
- the structural elements of the portable multi-application object, object of the present invention will not be described in more detail because they correspond to elements known from the state of the art.
- the microprocessor is replaced - or at least supplemented - by logic circuits implanted in a semiconductor chip.
- logic circuits implanted in a semiconductor chip.
- 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 Specifies Integrated Circuit").
- a known architecture of a multi-application smart card as represented in FIG. 1b, several independent applications coexist on the same card, in the non-volatile memory area thereof.
- This type of architecture usually includes the OS operating system and the applications designated by Appli and Appl 2 in the above-mentioned figure.
- the aforementioned architecture can include a virtual machine, such as a dedicated JAVA (registered trademark) virtual machine, also called JCVM.
- the operating system OS is nothing other than a generic program which provides intercommunication services to the installed applications, 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 Da ta Uni t, defined by standard ISO 7816. 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 from 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 Pi, P 2 : instruction parameters
- SWi, S 2 order status, order qualifier.
- the Appli or Appl 2 applications are specific programs which each perform a particular task or function, such as the functions of an SME electronic purse, system for access to pay-TV programs, or others.
- the Appli or Appl 2 applications use the services of the operating system.
- the APDU commands, input / output commands, coming from the user terminal, are processed by the OS operating system and by the applications. All APDU commands are examined by the operating system, some being filtered and others being delivered to applications, according to a criterion of use.
- the program installed on the user terminal sends to the card, inserted in the latter, a specific APDU command for selection, SELECT_APDU.
- the OS operating system examines this command and activates the corresponding application. Then all the commands that follow are directly delivered to the active application by the OS operating system.
- the application Appl 2 is represented as the active application by the double arrow illustrating the one-to-one mapping of the aforementioned active application and the OS operating system. This process and the above one-to-one correspondence link terminate when the OS operating system detects again a command for selecting another application, distinct from the active application, after which the operating system deactivates the active application and activates this other application.
- the active application can use another application, not active, installed on the menu.
- P_TV an application for access to pay-TV programs
- PME electronic purse application
- 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 whether the aforementioned payment is valid or not.
- Such an operating mode therefore requires that the application, active, can activate the other application, slave application, and that a shared communication channel (sharable interface in English language) is installed between the master application and the slave application.
- the figure shows, by way of example, the installation of such a communication channel.
- 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 available memory on the card smart.
- a known solution corresponds to a shared JavaCard.2.1 interface.
- JavaCard.2.1 For a more detailed description of the shared interface JavaCard.2.1, one 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. 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.2.1 specification.
- This shared interface is therefore distinct from the main interface of the applications installed with the OS operating system vis-à-vis the terminal, main interface constituted by the set of input / output commands, APDU commands, understood by each application. .
- 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, modifying an existing application is the most often very expensive, or even difficult to carry out, especially when the application in question has already been subject to security certification, any modification rendering the security certificate obsolete.
- 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 native applications, established in native code.
- 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.
- 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 the system. OS.
- 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 substantially the role of an external use terminal.
- 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 any implanted application is likely to be selected as master application, this master application itself being able to enter into communication with any other separate application, thus constituting, with respect to this master application, a slave application.
- 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 any on-board system or corresponding smart card.
- 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 in transmitting, from the master application, to the operating system, a call request from an inactive slave application, this call request comprising at least one input / output command specific intended for this slave application, to deactivate the master application and to activate this inactive slave application via the operating system, to transmit to the activated slave application the input / output command intended for this slave application , via the operating system, to execute at the level of this activated slave application the input / output command intended for this slave application, to return from this slave application an acknowledgment message and / or response, 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 an embedded system, such as a smart card, in particular.
- FIG. 2a shows, by way of illustration, a general flowchart representing the sequential implementation of the steps of the protocol, object of the present invention
- FIG. 2b represents, by way of illustration, the path for the exchange of APDU commands by means of a main interface and of the operating system OS in the context of a multi-application card architecture, during implementation of the protocol object of the invention illustrated in FIG. 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 implementation of the protocol object of the present invention in the case where the master application is not suspended but deactivated;
- FIG. 2b represents, by way of illustration, the path for the exchange of APDU commands by means of a main interface and of the operating system OS in the context of a multi-application card architecture, during implementation of the protocol object of the invention illustrated in FIG. 2a
- - Figure 2c shows, by way of illustration, a successive
- 3b represents, by way of illustration, the path for exchanging commands, APDU commands and OS commands, by means of a main interface and of 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;
- FIG. 4a shows, by way of illustration, urxe ⁇ -vax ⁇ a ⁇ rte— de — mi-se — en — oeuvre-re — du— ro-toeoie — obj-et— e — 1-a present invention, in which a procedure for authenticating the request for calling the slave application and this slave application by the master application is introduced;
- FIG. 4b shows, by way of illustration, a particular mode of implementation of the authentication procedure according to a variant distinct from that described in Figure 4a;
- FIGS. 2a, 2b shows, by way of illustration, the layout of a portable object or embedded system, such as a smart card, in accordance with the object of the present invention.
- a portable object or embedded system such as a smart card
- an on-board system designates any computer system provided with an operating system, such as a smart card for example, a PCMCIA card or the like.
- 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 the circuit 12 shown in FIG.
- 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.
- the considered master application which has been activated performs the processing of this command in step o 2 shown in FIG. 2a.
- the message exchange protocol between applications in accordance with the object of the present invention is then implemented in the following manner.
- 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.
- step 1000 is then followed by a step 1001, which consists, by means of the operating system OS, in deactivating the master application and in activating the slave application, inactive, by means of this same operating system.
- 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.
- step 1001 is then followed by a step 1002 consisting in transmitting to the activated slave application the input / output command, that is to say the APDU command intended for this slave application, via of the OS operating system.
- 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 response messages can be combined.
- step 1004 can then be followed by a step 1005 according to which the operating system deactivates the slave application and reactivation, that is to say restoration, of the master application, to continue the exchange operations with the user terminal.
- 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, as shown in step 1006.
- 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 terminal d use, as a function of the results of the processing of the response of the slave application by the master application carried out in step 1006.
- the use terminal is an access terminal to a television receiver for example, comprising the equipment necessary to authorize or not the access to pay television broadcasts.
- the on-board system used consists, for example, of a smart card, in which two applications are installed, an electronic purse application PME and an application for accessing pay-TV programs, denoted P_TV.
- this application manages conditional access to the broadcasting of the television program taking into account the valid payment made of the corresponding access rights.
- 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 the PME application.
- steps oi and o 2 are carried out by the exchange of APDU commands between the operating system, the master application P_TV and the terminal.
- the access paths taken are noted (1) in Figure 2b.
- steps 1000 to 1004 are then carried out between the master application P_TV, the operating system OS and of course the SME slave application along the path (2).
- the exchanges of the aforementioned messages can, if necessary, be bidirectional on the path considered, as will be described later in the description.
- the aforementioned message exchange is then carried out by means of specific input / output commands, which constitute APDU commands. dedicated to applications and which, for this reason, are denoted APDU *.
- steps 1005 and 1006 shown in Figure 2a are carried out via the path (2) as shown in Figure 2b.
- step 1007 is performed again via the path (1), that is to say by means of the implementation of conventional ADPU commands within the framework of the environment of the main interface.
- steps 1005 and 1006 can be implemented vis-à-vis, not only the initial master application Ai, which is restored in its active state, but also of another previously inactive application, A 2 , A 3 , which can be made active successively via the operating system OS.
- steps 1005 and 1006 can be implemented vis-à-vis, not only the initial master application Ai, which is restored in its active state, but also of another previously inactive application, A 2 , A 3 , which can be made active successively via the operating system OS.
- FIG. 2c one or more other inactive applications A 2 , A 3 , distinct from the initial master application A and from the active slave application A 4 ,.
- the operating system OS can then, at the request of the master application Ai, select the application A 2 then, in turn, the applications A 3 and A 4 , and finally return successively to the master application Ai, via the applications A 2 , A 3 , the return to the master application Ai having been carried out by means of specific APDU commands denoted APDU *.
- the return of the overall result to the terminal is of course carried out by means of an APDU command.
- the master application chosen first calls on the services of the operating system OS to indicate its wish to call the slave application, the PME application previously mentioned in connection with FIG. 2b.
- the call request for the inactive slave application can then take the following form:
- isoStatus callS lava Application (AID, isoHeader, dataln, * dataOut) (1)
- AID designates the identifier of the slave application chosen in accordance with the provisions of standard ISO 7816, isoHeader and dataln contain the ADPU command that the master application wishes to send to the application slave and the argument * dataOut is a pointer to a memory area such that the RAM memory area 16 represented in FIG. 1a, 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 isoStatus variable.
- 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 where, where appropriate, a series of calls to master applications, respectively slave as shown in Figures 2c, with successive return of the final response to the terminal of use.
- this mode of implementation corresponds to an alternative embodiment designated by parallel application / stacked.
- the master application is suspended until the return of the slave application.
- steps 1001 and 1005 of the Figure 2a correspond to steps 1001 and 1005 of the Figure 2a.
- 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 given a called function.
- An alternative implementation of the protocol object of the present invention may consist of a sequential implementation.
- 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 it ends, the aforementioned operating system reactivates the master application by calling the latter on a launch point in memory specifically provided for this purpose.
- the call to the slave application then takes the following form:
- the isoStatus ISO status and the dataOut response data are then communicated by the operating system to the master application when the latter is reactivated, according to the APDU command: masterApplication.slaveCallBack (isoStatus, dataOut).
- the mode of implementation corresponding to sequential applications is simple to carry out and the occupancy of the RAM 16 is low.
- 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 the necessary backups in non-volatile memory.
- step 1000 is then constituted by a sub-step 1000 a and a sub-step 1000 b , the sub-step 1000 a corresponding to a sub-step in which the application master saves its state in memory, while sub-step 1000 b corresponds to the call by the master application of the OS operating system to send an APDU command to the slave application considered.
- step 1005 is subdivided into two sub-steps, 1005 a and 1005 b , sub-step 1005 a consisting in deactivation of the slave application by the OS operating system and in a reactivation of the master application, this sub-step, upon reactivation of the latter, being followed by sub-step 1005 b in which this master application restores its state from the RAM 16, state saved in the sub- step 1000 previously cited.
- 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 shown in dotted line.
- the transaction between the master application and the slave application may advantageously include a procedure for authenticating the transaction between master application and slave application.
- 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 slave application inactive by the master application, for example, as will be described below.
- step 1000 of Figure 2a or step 1000 b of Figure 3a may be followed by a step 1000 ⁇ 1000 b respectively ⁇ 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 Figure 4b, to perform a signature operation, respectively signature verification, elements for authenticating the origin of the call request and thus secure the above transaction.
- a private signature key denoted K PRi
- K Pui public signature verification key
- each application, master or slave is associated with a set of signature keys, respectively of signature verification.
- 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 specific APDU command type, APDU *, this value random to slave application.
- 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 K PRi , a signature value of the RV random value received by the latter.
- step B of Figure 4b represents the calculated signature value and f ⁇ p R i denotes the signature calculation operation of the random value RV.
- this value is transmitted to the master application by means of an acknowledgment or response message containing the aforementioned signature value.
- 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 K PU i associated with the private key of the slave application author of the aforementioned signature value.
- the authentication process implemented within the framework of the protocol object of the present invention is not limited to the procedure for authenticating the call request of the inactive slave application by the master application previously described. .
- this authentication procedure or this combination of authentication procedures is not described, it is indicated that it is advantageous to use two pairs of keys.
- the implementation of the 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 encryption process / decryption, calculation and verification of signature or exchange values authentication.
- FIG. 5 A more detailed description of an on-board multi-application system constituted in a nonlimiting manner by a smart card conforming to the object of the present invention will now be given in connection with FIG. 5.
- FIG. 5 the same elements that those represented in FIG. 1a bear the same references, the additional elements necessary for implementing the protocol object of the present invention having been distinguished only.
- the embedded system object of the invention as shown in FIG.
- I * APD U comprising at least the APDU * instructions previously mentioned in the description and in particular a call request, from an active master application, from an inactive slave application, this call request corresponding for example to the command given according to relation (1) or according to relation (2 ) mentioned earlier in the description.
- a command for transmitting the response data via the OS operating system to the master application when the latter is reactivated can be provided in the command set, according to relation (3). previously mentioned in the description.
- each on-board system as shown in FIG. 5 further comprises a set of private signature key and public signature verification key, the keys Kp r i and Kpui , associated with each application installed in the embedded system. Only one secret key can, if necessary, be provided. To secure transactions between applications as much as possible, not just private keys associated with each application, but also the public keys associated with the latter, where appropriate the secret keys, are stored in a non-volatile memory area with secure access of the on-board system.
- each application concerned 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, as defined in the ISO 7816 standard.
- the P_TV application In the example described above of exchanges of messages between two applications, an application for accessing pay-TV programs and an electronic purse application, the P_TV application must prove to the electronic purse application his identity before, of course, the latter allows any debit and direct debit transaction in the electronic purse, and vice versa.
- the private key and public key mechanisms can be used.
- 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 to perform the aforementioned signature verification.
- the implementation of the authentication process between two applications calls on APDU * commands which are strictly identical to those which are usually used for authentication between the smart card and the terminal. '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 upon receipt of the latter's call request.
- the reuse of the main interface and the APDU commands allows the factoring of the code and therefore a reduction in the volume of codes necessary for the multiplication of the functions of any on-board system of conventional type.
- 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 embedded systems which are the subject of the present invention can be envisaged.
- the master and slave applications can be simultaneously present in RAM 16 or not. The criterion of whether or not the master and slave applications are present simultaneously is only linked to a compromise between performance and necessary RAM resources.
- an optimization of the call request according to the relation (1) previously mentioned in the description can be carried out by separating the selection of the slave application, via the corresponding address variable AID, of the processing, that is to say input data dataln and output data dataOut. Under these conditions, two calls to the operating system OS are then necessary, but this embodiment may prove to be more effective when the communication comprises several commands.
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 invention concerns a protocol for message exchange between applications implanted on an onboard system equipped with an operating system (OS), and the corresponding onboard system. It consists in at least transmitting (1000) a request call from the master application to the operating system, request including a specific input/output command addressed to the slave application, deactivating the master application and activating the slave application (1001), transmitting (1002) to the activated slave application the input/output command from the operating system (OS), executing (1003) at the activated slave application the input/output command, returning (1004) from the slave application, a reply to the operating system. The invention is useful for secure management of applications implanted on multiple application smart cards.
Description
PROTOCOLE D'ECHANGE DE MESSAGES ENTRE APPLICATIONS IMPLANTÉES SUR UN SYSTÈME EMBARQUÉ, ET SYSTÈME EMBARQUÉ PROTOCOL FOR EXCHANGING MESSAGES BETWEEN APPLICATIONS 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 "mul ti -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 d'une carte à mémoire est représentée en 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.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 • "mul ti -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 layout of a memory card is shown in FIG. 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 18 a and a memory of ROM type, or read-only type memory 18 b . 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.
Un système d'exploitation OS est prévu, lequel peut être implanté en mémoire non volatile 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, elle-même reliée au microprocesseur 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 à des éléments connus de l'état de la technique.An operating system OS is provided, which can be installed in non-volatile memory 18. Finally, and in certain cases only, the portable multi-application object can comprise, as shown in FIG. 1 a, an encryption calculation unit. / decryption S, bearing the reference 20, itself connected to the microprocessor 14. The structural elements of the portable multi-application object, object of the present invention, will not be described in more detail because they correspond 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 à semi-conducteurs. 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 icroprogrammée. Ils peuvent notamment être de type ASIC (de l'anglais "Application Spécifie Integrated Circui t ") .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 Specifies 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 même carte, dans la zone mémoire non volatile de celle-
ci. Ce type d'architecture comprend, habituellement, le système d'exploitation OS et les applications désignées par Appli 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 (marque déposée) dédiée, encore appelée JCVM.In a known architecture of a multi-application smart card, as represented in FIG. 1b, several independent applications coexist on the same card, in the non-volatile memory area thereof. this. This type of architecture usually includes the OS operating system and the applications designated by Appli and Appl 2 in the above-mentioned figure. Optionally, the aforementioned architecture can include a virtual machine, such as a dedicated JAVA (registered trademark) virtual machine, 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 Da ta Uni t, 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 Pi, P2 : paramètres d'instructionThe operating system OS is nothing other than a generic program which provides intercommunication services to the installed applications, 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 Da ta Uni t, defined by standard ISO 7816. 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 from 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 Pi, P 2 : instruction parameters
Lcf : longueur en bits du champ de données Df : champ de donnéesLcf: length in bits of the data field Df: data field
Lef : nombre maximum de bits dans le champ de données de la réponse. SWi, S 2 : statut de la commande, qualificatif de la commande .
Les applications Appli 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 .Lef: maximum number of bits in the response data field. SWi, S 2 : order status, order qualifier. The Appli or Appl 2 applications are specific programs which each perform a particular task or function, such as the functions of an SME electronic purse, system for access to pay-TV programs, or others.
Dans ce but, les applications Appli 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 le système d'exploitation OS et par les 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 critère d'utilisation.For this purpose, the Appli or Appl 2 applications use the services of the operating system. The APDU commands, input / output commands, coming from the user terminal, are processed by the OS operating system and by the applications. All APDU commands are examined by the operating system, some being filtered and others being delivered to applications, according to a criterion of use.
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, SELECT_APDU. Le système d'exploitation OS examine cette commande et active l'application correspondante. 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 l'application active et active cette autre 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, P_TV, 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 l'exécution valable ou non du paiement précité.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, SELECT_APDU. The OS operating system examines this command and activates the corresponding application. Then all the commands that follow are directly delivered to the active application by the OS operating system. In FIG. 1b, the application Appl 2 is represented as the active application by the double arrow illustrating the one-to-one mapping of the aforementioned active application and the OS operating system. This process and the above one-to-one correspondence link terminate when the OS operating system detects again a command for selecting another application, distinct from the active application, after which the operating system deactivates the active application and activates this other application. 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, P_TV, must use an electronic purse 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 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 l'application maître et l'application esclave. La figure le montre, à titre d'exemple, l'installation d'un tel canal de communication. 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 partagée JavaCard.2.1. Pour une description plus 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 spécification final revision 1.0 du 24 février 1999. Auteur : Sun 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. USASuch an operating mode therefore requires that the application, active, can activate the other application, slave application, and that a shared communication channel (sharable interface in English language) is installed between the master application and the slave application. The figure shows, by way of example, the installation of such a communication channel. 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 available memory on the card smart. A known solution corresponds to a shared JavaCard.2.1 interface. For a more detailed description of the shared interface JavaCard.2.1, one 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. JavaCard 2.1 application programming interface final revision 1.0 of February 24, 1999. Author: 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, compris par chaque application.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.2.1 specification. This shared interface is therefore distinct from the main interface of the applications installed with the OS operating system vis-à-vis the terminal, main interface constituted by the set of input / output commands, APDU commands, 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 apparaît 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 modification rendant le certificat de sécurité caduc. 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 applications natives, établies en code natif.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, modifying an existing application is the most often very expensive, or even difficult to carry out, especially when the application in question has already been subject to security certification, any modification rendering the security certificate obsolete. 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 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.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.
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 le système d'exploitation OS.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 the system. OS.
Un autre objet de la présente invention est, également, la mise en œuvre 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 maître jouant sensiblement le rôle d'un terminal d'utilisation externe.
Un autre objet de la présente invention est, également, la mise en œuvre 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 application maître, une application esclave.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 substantially the role of an external use terminal. 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 any implanted application is likely to be selected as master application, this master application itself being able to enter into communication with any other separate application, thus constituting, with respect to this master application, a slave application.
Un autre objet de la présente invention est, enfin, la mise en œuvre 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 système embarqué ou carte à puce correspondant.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 any on-board 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.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 in transmitting, from the master application, to the operating system, a call request from an inactive slave application, this call request comprising at least one input / output command specific intended for this slave application, to deactivate the master application and to activate this inactive slave application via the operating system, to transmit to the activated slave application the input / output command intended for this slave application , via the operating system, to execute at the level of this activated slave application the input / output command intended for this slave application, to return from this slave application an acknowledgment message and / or response, to the operating system.
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 embarqué, tel qu'une carte à puce, notamment.The protocol, object of the invention, finds application in the management of all types of applications located in the non-volatile memory of an embedded system, such as a smart card, in particular.
Il sera mieux compris à la lecture de la description et à l'observation des dessins dans lesquels, outre les figures la à ld relatives à l'art antérieur;It will be better understood on reading the description and on observing the drawings in which, in addition to FIGS. 1a to 1d relating to the prior art;
- la figure 2a représente, à titre illustratif, un organigramme général représentant la mise en œuvre 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 dans le cadre d'une architecture de carte multi- application, lors de la mise en œuvre du protocole objet de l'invention illustré en figure 2a ;
- la figure 2c représente, à titre illustratif, une mise en œuvre successive du protocole objet de la présente invention entre différentes applications implantées dans une carte multi-application ; - la figure 3a représente, à titre illustratif, une variante de mise en œuvre 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 œuvre du protocole objet de l'invention illustré en figure 3a ;- 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; FIG. 2b represents, by way of illustration, the path for the exchange of APDU commands by means of a main interface and of the operating system OS in the context of a multi-application card architecture, during implementation of the protocol object of the invention illustrated in FIG. 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 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 of 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;
- la figure 4a représente, à titre illustratif, urxe~-vax±aτrte— de—mi-s-e—en—œuv-re—du— ro-toeoie—obj-e-t— e—1-a 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 ;- Figure 4a shows, by way of illustration, urxe ~ -vax ± aτrte— de — mi-se — en — oeuvre-re — du— ro-toeoie — obj-et— e — 1-a present invention, in which a procedure for authenticating the request for calling the slave application and this slave application by the master application is introduced;
- la figure 4b représente, à titre illustratif, un mode de mise en œuvre particulier de la procédure d' authentification selon une variante distincte de celle décrite en figure 4a ;- Figure 4b shows, by way of illustration, a particular mode of implementation of the authentication procedure according to a variant distinct from that described in 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 présente invention. Une description plus détaillée du protocole d'échange de messages entre applications implantées sur
un système embarqué, conforme à l'objet de la présente invention, sera maintenant donnée en liaison avec les figures 2a, 2b et les figures suivantes.- Figure 5 shows, by way of illustration, the layout of a portable object or embedded system, such as a smart card, in accordance with the object of the present invention. A more detailed description of the message exchange protocol between applications installed on an on-board system, in accordance with the object of the present invention, will now be given in connection with FIGS. 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 par exemple, une carte PCMCIA ou autre.In general, it is recalled that an on-board system designates any computer system provided with an operating system, such as a smart card 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 représenté en figure la.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 the circuit 12 shown in FIG.
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 système embarqué ou de la carte à puce précités.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 as a function of the use of the above-mentioned on-board system or 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é, c'est-à-dire inséré dans un terminal d'utilisation.Consequently, the protocol which is the subject of the present invention will first of all be described in connection with FIGS. 2a and 2b in the case where the system multi-application embedded considered is used, that is to say inserted into a user terminal.
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 oi, l'application maître considérée qui a été activée effectue le traitement de cette commande à l'étape o2 représentée sur la figure 2a. Le protocole d'échange de messages entre applications conforme à l'objet de la présente invention est alors mis en œuvre de la manière ci- après .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 oi, the considered master application which has been activated performs the processing of this command in step o 2 shown in FIG. 2a. The message exchange protocol between applications in accordance with the object of the present invention is then implemented in the following manner.
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.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.
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, par l'intermédiaire de ce même système d'exploitation.
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.The above-mentioned step 1000 is then followed by a step 1001, which consists, by means of the operating system OS, in deactivating the master application and in activating the slave application, inactive, by means of this same operating system. 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.
L'étape 1001 précitée est alors suivie d'une étape 1002 consistant à transmettre à l'application esclave activée la commande d'entrée/sortie, c'est-à- dire la commande APDU destinée à cette application esclave, par l'intermédiaire du système d'exploitation OS.The above-mentioned step 1001 is then followed by a step 1002 consisting in transmitting to the activated slave application the input / output command, that is to say the APDU command intended for this slave application, via of the OS operating system.
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 réponse peuvent être combinés. 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 d'échange avec le terminal d'utilisation.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 response messages can be combined. 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, that is to say restoration, of the master application, to continue the exchange operations 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 maître, ainsi que représenté à l'étape 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 l'application maître réalisés à l'étape 1006.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, as shown in step 1006. 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 terminal d use, as a function of the results of the processing of the response of the slave application by the master application carried out in step 1006.
Une description plus détaillée des chemins empruntés par les différents échanges de messages de données et/ou de commandes échangés au cours de la mise en œuvre du protocole objet de la présente invention, sera maintenant donnée en liaison avec la figure 2b.A more detailed description of the paths taken by the various exchanges of data messages and / or of commands exchanged during the implementation of the protocol object of the present invention 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 à des émissions télévisées à péage.
Le système embarqué utilisé est constitué par exemple par une carte à puce, dans laquelle sont implantées deux applications, une application de porte- 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 d'accès correspondants. 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 l'application PME. Compte tenu de ces éléments, les opérations ou étapes oi et o2 sont réalisées par l'échange de commandes APDU entre le système d'exploitation, l'application maître P_TV et le terminal. Les chemins d'accès empruntés sont notés (1) sur la figure 2b. Suite à l'exécution des étapes θι et o2, les étapes 1000 à 1004 sont alors réalisées entre l'application maître P_TV, 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 sera décrit ultérieurement dans la 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, sont notées APDU* .It is considered by way of nonlimiting example that the use terminal is an access terminal to a television receiver for example, comprising the equipment necessary to authorize or not the access to pay television broadcasts. The on-board system used consists, for example, of a smart card, in which two applications are installed, an electronic purse application PME and an application for accessing 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 made of the corresponding access rights. It is considered 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 the PME application. Given these elements, the operations or steps oi and o 2 are carried out by the exchange of APDU commands between the operating system, the master application P_TV and the terminal. The access paths taken are noted (1) in Figure 2b. Following the execution of steps θι and o 2 , steps 1000 to 1004 are then carried out between the master application P_TV, the operating system OS and of course the SME 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 will be described later in the description. The aforementioned message exchange is then carried out by means of specific input / output commands, which constitute APDU commands. dedicated to applications and which, for this reason, 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 œuvre de commandes ADPU classiques dans le cadre de l'environnement de l'interface principale. En ce qui concerne la mise en œuvre des étapesOf 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 within the framework of the environment of the main interface. Regarding the implementation of the steps
1005 et 1006 et bien entendu ensuite la mise en œuvre de l'étape 1007, on indique que les étapes 1005 et 1006 peuvent être mises en œuvre vis-à-vis, non seulement de l'application maître initiale Ai, 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 A 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 Ai 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 Ai, sélectionner l'application A2 puis, tour à tour, les applications A3 et A4, et enfin revenir successivement à l'application maître Ai, par l'intermédiaire des applications A2, A3, le retour à l'application maître Ai ayant été effectué par l'intermédiaire de commandes APDU spécifiques notées APDU*. Le retour du résultat global au terminal est bien entendu réalisé au moyen d'une commande APDU.1005 and 1006 and of course then the implementation of step 1007, it is indicated that steps 1005 and 1006 can be implemented vis-à-vis, not only the initial master application Ai, which is restored in its active state, but also of another previously inactive application, A 2 , A 3 , which can be made active successively via the operating system OS. Thus, as shown in FIG. 2c, one or more other inactive applications A 2 , A 3 , distinct from the initial master application A and from the active slave application A 4 ,. can be made active successively in order to carry out various data processing operations, the global response given by the last, the active slave application A 4 then being transferred to the initial master application A 3 and the corresponding successive global result, at the terminal d use in accordance with steps 1005, 1006 and 1007 above via the applications A 2 Ai made successively active. It is understood in particular that the application Ai being selected as application master by the terminal by an APDU command, the operating system OS can then, at the request of the master application Ai, select the application A 2 then, in turn, the applications A 3 and A 4 , and finally return successively to the master application Ai, via the applications A 2 , A 3 , the return to the master application Ai having been carried out by means of specific APDU commands denoted APDU *. The return of the overall result to the terminal is of course carried out by means of an APDU command.
Un exemple spécifique de mise en œuvre des commandes APDU*, c'est-à-dire des commandes APDU spécifiques, sera maintenant donné ci-après dans la 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 mentionnée en liaison avec la figure 2b. La requête d'appel de l'application esclave inactive peut alors prendre la forme ci-après :A specific example of implementation of the APDU * commands, that is to say specific APDU commands, will now be given below in the description. In general, the master application chosen first calls on the services of the operating system OS to indicate its wish to call the slave application, the PME application previously mentioned in connection with FIG. 2b. The call request for the inactive slave application can then take the following form:
isoStatus = callS lave Application (AID, isoHeader, dataln, *dataOut) (1)isoStatus = callS lava Application (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 dataln 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 variable isoStatus.In the command constituting the aforementioned call request, AID designates the identifier of the slave application chosen in accordance with the provisions of standard ISO 7816, isoHeader and dataln contain the ADPU command that the master application wishes to send to the application slave and the argument * dataOut is a pointer to a memory area such that the RAM memory area 16 represented in FIG. 1a, 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 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 de la réponse finale au terminal d'utilisation.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 where, where appropriate, a series of calls to master applications, respectively slave as shown in Figures 2c, with successive return of the final response to the terminal of use.
En ce qui concerne le mode de mise en œuvre 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 œuvre 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 mentionnée dans la description et désignée par callSlaveApplication, l'application maître est suspendue jusqu'au retour de l'application esclave. Ces opérations correspondent aux étapes 1001 et 1005 de la
figure 2a. Dans ces conditions, la gestion parallèle des applications rés lte 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 conférée une fonction appelée.As regards the mode of implementation of the protocol, object of the present invention, as shown in FIGS. 2a, 2b and 2c, it is indicated that this mode of implementation corresponds to an alternative embodiment designated by parallel application / stacked. During the call request previously mentioned in the description and designated by callSlaveApplication, the master application is suspended until the return of the slave application. These operations correspond to steps 1001 and 1005 of the Figure 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 given a called function.
Toutefois, un tel mode opératoire nécessite la mise en œuvre 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 .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.
Une variante de mise en œuvre du protocole objet de la présente invention peut consister en une mise en œuvre 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 spécifiquement prévu à cet effet.An alternative implementation of the protocol object 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 it ends, the aforementioned operating system reactivates the master application by calling the latter on a launch point in memory specifically provided for this purpose.
Dans ces conditions, l'appel de l'application esclave prend alors la forme suivante :In these conditions, the call to the slave application then takes the following form:
error = callSlaveApplication (AID, isoHeader, dataln). (2)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)The isoStatus ISO status and the dataOut response data are then communicated by the operating system to the master application when the latter is reactivated, according to the APDU command: masterApplication.slaveCallBack (isoStatus, dataOut). (3)
Le mode de mise en œuvre correspondant à des applications séquentielles est simple à réaliser et l'occupation de la mémoire vive 16 est faible. 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 mémoire non volatile.The mode of implementation corresponding to sequential applications is simple to carry out and the occupancy of the RAM 16 is low. 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 the necessary backups in non-volatile memory.
Le processus de mise en œuvre du protocole objet de la présente invention pour les applications séquentielles décrit précédemment est illustré par l'organigramme de la figure 3a.The process of implementing the protocol which is the subject of the present invention for the sequential applications described above is illustrated by the flow diagram of FIG. 3a.
Dans l'organigramme précité, on indique que les mêmes références désignent bien entendu les mêmes étapes que dans le cas de la figure 2a.In the aforementioned flow diagram, it is indicated that the same references naturally designate the same steps as in the case of FIG. 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 1000b, la sous-étape 1000a correspondant à une sous- é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 APDU à l'application esclave considérée.However, and in a particularly advantageous manner, it is indicated that step 1000 is then constituted by a sub-step 1000 a and a sub-step 1000 b , the sub-step 1000 a corresponding to a sub-step in which the application master saves its state in memory, while sub-step 1000 b corresponds to the call by the master application of the OS operating system to send an APDU command 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 1000a précédemment citée.Likewise, step 1005 is subdivided into two sub-steps, 1005 a and 1005 b , sub-step 1005 a consisting in deactivation of the slave application by the OS operating system and in a reactivation of the master application, this sub-step, upon reactivation of the latter, being followed by sub-step 1005 b in which this master application restores its state from the RAM 16, state saved in the sub- step 1000 previously cited.
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 ligne pointillée.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 shown in 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 fiduciaires sont traitées.
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 2a ou 3a précédemment introduites dans la description, peut comporter avantageusement une procédure d' authentification de la transaction entre application maître et application esclave.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 SME application or any application by which. fiduciary values are processed. 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 constituted by steps A, B and C, that is to say steps 1000, 1001, 1002 of FIGS. 2a or 3a previously introduced in the description, may advantageously include a procedure for authenticating the transaction between master application 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 décrit ci-après.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 slave application inactive by the master application, for example, as will be described below.
Sur authentification de la requête d'appel, valeur vraie de 1 ' authentification, la transaction est poursuivie. Elle est interrompue sinon.Upon authentication of the call request, the true value of the authentication, the transaction is 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 1000ι respectivement 1000bι 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.For this purpose, as shown in Figure 4a, step 1000 of Figure 2a or step 1000 b of Figure 3a may be followed by a step 1000ι 1000 b respectively ι 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 Figure 4b, to perform a signature operation, respectively signature verification, elements for authenticating the origin of the call request and thus secure the above transaction.
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, respectivement de vérification de signature. 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 à l'application esclave.For this purpose, as shown in FIG. 4b above, with each application installed on the on-board system, a private signature key, denoted K PRi , is associated with a public signature verification key, denoted K Pui , the index i designating an identifier of the implanted application considered. Thus, each application, master or slave, is associated with a set of signature keys, respectively of signature verification. 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 specific APDU command type, APDU *, this value random to 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 cette dernière.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 K PRi , a signature value of the RV random value received by the latter.
L'opération de calcul de signature vérifie alors la relation :The signature calculation operation then verifies the relationship:
SG = fKRi (RV)SG = f K Ri (RV)
relation contenue à l'étape B de la figure 4b.
Dans la relation précédente, SG représente la valeur de signature calculée et fκpRi désigne l'opération de calcul de signature de la valeur aléatoire RV.relationship contained in step B of Figure 4b. In the previous relation, SG represents the calculated signature value and fκp R i denotes the signature calculation operation 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 réponse contenant la valeur de signature précitée.After calculating the aforementioned signature value, this value is transmitted to the master application by means of an acknowledgment or response message 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) = gKPui (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 K PU i associated with the private key of the slave application author of the aforementioned signature value. The signature verification operation verifies the relationship: V (SG) = g KP ui (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, pour cette raison, ne seront pas décrites en détail.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, for this reason, will not be described in detail.
Bien entendu le processus d' authentification mis en œuvre 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 précédemment décrite.
En particulier, il est en outre possible de mettre en œuvre 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 d1 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 de clés. En ce qui concerne la mise en œuvre 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 œuvre ' de l'un des processus de chiffrement/déchiffrement, de calcul et de vérification de signature ou d'échange de valeurs d' authentification. Une description plus détaillée d'un système 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 liaison avec la 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 œuvre du protocole objet de la présente invention ayant été seuls distingués. En premier lieu, afin de permettre la mise en œuvre 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 description et en particulier une requête d'appel, à 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 précédemment dans la description. En outre, une 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 description.Of course, the authentication process implemented within the framework of the protocol object of the present invention is not limited to the procedure for authenticating the call request of the inactive slave application by the master application previously described. . In particular, it is also possible to implement an authentication procedure call request to the master application, or if appropriate, a logical combination of these procedures 1 authentication. 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 of keys. As regards the implementation of the 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 encryption process / decryption, calculation and verification of signature or exchange values authentication. A more detailed description of an on-board multi-application system constituted in a nonlimiting manner by a smart card conforming to the object of the present invention will now be given in connection with FIG. 5. In FIG. 5, the same elements that those represented in FIG. 1a bear the same references, the additional elements necessary for implementing the protocol object of the present invention having been distinguished only. First, in order to allow the implementation of the protocol which is the subject of the present invention, the embedded system object of the invention as shown in FIG. 5 includes, integrated into the operating system, a set of specific input / output instructions, denoted I * APD U comprising at least the APDU * instructions previously mentioned in the description and in particular a call request, from an active master application, from an inactive slave application, this call request corresponding for example to the command given according to relation (1) or according to relation (2 ) mentioned earlier in the description. In addition, a command for transmitting the response data via the OS operating system to the master application when the latter is reactivated can be provided in the command set, according to relation (3). previously mentioned in the 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 description. Dans le but de mettre en œuvre le 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 échéant, être prévue. 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, telles que définies dans la norme ISO 7816.In addition, as shown in FIG. 5 above, the on-board system is advantageously provided with means of signature calculation and signature verification 20 previously mentioned in the description. In order to implement the protocol object of the present invention, each on-board system as shown in FIG. 5 further comprises a set of private signature key and public signature verification key, the keys Kp r i and Kpui , associated with each application installed in the embedded system. Only one secret key can, if necessary, be provided. To secure transactions between applications as much as possible, not just private keys associated with each application, but also the public keys associated with the latter, where appropriate the secret keys, are stored in a non-volatile memory area with secure access of 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, as defined in the ISO 7816 standard.
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, l'application P_TV doit prouver à l'application porte- 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 porte-monnaie électronique, et vice versa.In the example described above of exchanges of messages between two applications, an application for accessing pay-TV programs and an electronic purse application, the P_TV application must prove to the electronic purse application his identity before, of course, the latter allows any debit and direct debit transaction in the electronic purse, and vice versa.
Pour la mise en œuvre 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 effectuer la vérification de signature précitée.For the implementation of the 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 to perform the aforementioned signature verification.
La mise en œuvre 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 réception de la requêté d'appel de cette dernière.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. '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 upon receipt of the latter's call request.
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 œuvre d'un tel protocole particulièrement performants, dans la mesure où la mise en œuvre de ces derniers ne nécessite pas de connaissances d'une interface externe privée et spécifique, la mise en œuvre de cet échange de messages étant réalisée uniquement à partir du jeu de commandes APDU externes, c'est-à-dire à partir des commandes de l'interface principale.
En particulier, dans ces conditions, et selon un aspect particulièrement remarquable de la mise en œuvre du . protocole objet de la présente invention, l'application esclave peut ne pas être modifiée. 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 être activées .We have thus described a protocol for exchanging messages 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 commands of the main interface. In particular, under these conditions, and according to a particularly remarkable aspect of the implementation of the . protocol object of the present invention, the slave application may not be modified. In addition, applications of a different nature, that is to say applications whose programming language or design are different, can 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 fonctions de tout système embarqué de type classique.In addition, the reuse of the main interface and the APDU commands allows the factoring of the code and therefore a reduction in the volume of codes necessary for the multiplication of the functions of any on-board system of conventional type.
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 œuvre 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 être simultanément présentes en mémoire vive 16 ou non. 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 vive nécessaires.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 embedded systems which are the subject of the present invention can be envisaged. In particular, the master and slave applications can be simultaneously present in RAM 16 or not. The criterion of whether or not the master and slave applications are present simultaneously is only linked to a compromise between performance and necessary RAM resources.
En outre, une optimisation de la requête d'appel selon la relation (1) précédemment mentionnée dans la description peut être effectuée en séparant la
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 dataln 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 plusieurs commandes.
In addition, an optimization of the call request according to the relation (1) previously mentioned in the description can be carried out by separating the selection of the slave application, via the corresponding address variable AID, of the processing, that is to say input data dataln and output data dataOut. Under these conditions, two calls to the operating system OS are then necessary, but this embodiment may prove to be more effective when the communication comprises several commands.
Claims
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 application maître la réponse de l'application esclave.2. 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 to transmit to this master application 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 à cette dernière.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 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 de gestion spécifique hiérarchisé.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, the master application being given a calling function and the slave application being given a called function; give competing applications a specific hierarchical management system.
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 cryptographie.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 cryptography key.
6. Protocole selon la revendication 1, caractérisé en ce que la transaction entre l'application maître 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 l'application maître.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 call of the slave application inactive by 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 ladite valeur de signature.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 of the master application, a random value and to transmit by means of an input / output command this random value to said slave application; to calculate from said private key, at said slave application, a signature value of said random value and to transmit to said master application a message acknowledgment or response containing said signature value; to proceed, at the level of said master application, to a verification of said signature value by means of said public key associated with said private key of said slave application, author of 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 l'application esclave au système d'exploitation.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 minus: a call request from a master application, active, a slave application, inactive, an acknowledgment or response message from 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 à accès sécurisé dudit système embarqué. 9. on-board multi-application 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 for each application, said sets of keys being stored in a non-volatile memory area with secure access to said on-board system.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR00/09657 | 2000-07-24 | ||
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 |
---|---|
WO2002008897A1 true WO2002008897A1 (en) | 2002-01-31 |
Family
ID=8852830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR2812101A1 (en) |
WO (1) | WO2002008897A1 (en) |
Cited By (2)
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 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012162351A1 (en) | 2011-05-23 | 2012-11-29 | Mastercard International, Inc. | 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 |
Citations (1)
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 |
-
2000
- 2000-07-24 FR FR0009657A patent/FR2812101A1/en not_active Withdrawn
-
2001
- 2001-07-20 WO PCT/FR2001/002364 patent/WO2002008897A1/en active Application Filing
Patent Citations (1)
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)
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 (2)
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 |
Also Published As
Publication number | Publication date |
---|---|
FR2812101A1 (en) | 2002-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1004100B1 (en) | Portable electronic device for safe communication system, and method for initialising its parameters | |
EP0826281B1 (en) | Method enabling secure access by a station to at least one server, and device using same | |
FR2779018A1 (en) | System for undertaking secure electronic transactions via the internet using public telephone networks | |
WO1995016246A1 (en) | Memory card and operation method | |
EP0552077B1 (en) | Mass memory card for microcomputer with facilities for execution of internal programs | |
FR2987199A1 (en) | SECURING A DATA TRANSMISSION. | |
FR2808359A1 (en) | MULTI-APPLICATIVE CHIP CARD | |
EP1046108A1 (en) | Internal data exchange protocol between applications of a multi-application portable object and corresponding portable multi-application object | |
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 | |
WO2002008897A1 (en) | Protocol for message exchange between applications implanted on an onboard system, and corresponding onboard system | |
EP1141903B1 (en) | Device and method for initialising an applicative programme of an integrated circuit card | |
EP3132403A1 (en) | Device forprocessing data from a contactless smart card, method and corresponding computer program | |
WO2020254761A1 (en) | Service application system for payment terminals | |
FR2923041A1 (en) | METHOD OF OPENING SECURED TO THIRDS OF A MICROCIRCUIT CARD. | |
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 | |
EP1995682A1 (en) | Personalisation of a microprocessor and data protection method | |
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 | |
FR3087917A1 (en) | MULTI-CONFIGURATION SECURE ELEMENT AND ASSOCIATED METHOD | |
FR3077150A1 (en) | METHOD FOR CONTROLLING DEPENDENCY RULES OF OBJECTS UPDATED IN A MICROCIRCUIT, AND CORRESPONDING DEVICE | |
FR2762111A1 (en) | Protection of computer file against illicit copying and use | |
EP3391316A1 (en) | Method for securing a transaction from a mobile terminal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): JP US |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
122 | Ep: pct application non-entry in european phase | ||
NENP | Non-entry into the national phase |
Ref country code: JP |