EP1989621A1 - Operating system for a chip card comprising a multi-tasking kernel - Google Patents

Operating system for a chip card comprising a multi-tasking kernel

Info

Publication number
EP1989621A1
EP1989621A1 EP07722887A EP07722887A EP1989621A1 EP 1989621 A1 EP1989621 A1 EP 1989621A1 EP 07722887 A EP07722887 A EP 07722887A EP 07722887 A EP07722887 A EP 07722887A EP 1989621 A1 EP1989621 A1 EP 1989621A1
Authority
EP
European Patent Office
Prior art keywords
data carrier
mobile data
applications
mtk
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
EP07722887A
Other languages
German (de)
French (fr)
Inventor
Wolfgang Effing
Stephan Spitz
Erich Englbrecht
Robert Hockauf
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Giesecke and Devrient GmbH
Original Assignee
Giesecke and Devrient GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Publication of EP1989621A1 publication Critical patent/EP1989621A1/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Definitions

  • the invention is in the field of smart card technology and more particularly relates to a method and a system for operating mobile data carriers.
  • Smart cards such as a smart card
  • the application as access control, smart cards in healthcare, in the field of mobile technology as a SIM card (Subscriber Identity Module).
  • SIM card Subscriber Identity Module
  • the SIM card is a check card-sized identification card for subscribers of a mobile service and is also referred to as a "smart card”.
  • smart cards such as in the field of navigation technology, in digital dictation or camera asy stemen etc.
  • the mobile data carrier in particular the chip card, comprises the following hardware resources: A microprocessor or a CPU (Central Processing Unit) for data processing, a plurality of data memories of different types, such as RAM (Random Access Memory), ROM (Read OnIy Memory) and the EEPROM (Electrical Erasable Read On Memory) and interfaces for data exchange between the various components, in particular between the microprocessor and the data storage and optionally to other modules on the smart card, and to other external modules that are provided outside the smart card and should be in data exchange with the chip card. It may be z. For example, readers or more complex back-office systems. Depending on the field of application, it is possible to run one or more applications on the chip card.
  • a microprocessor or a CPU Central Processing Unit
  • ROM Read OnIy Memory
  • EEPROM Electrical Erasable Read On Memory
  • Smart card microcontrollers currently on the market are usually equipped with processors that have no memory protection mechanisms or other monitoring options against unauthorized access.
  • the reloaded program code is not executed directly, but only indirectly, eg. B. via a so-called virtual machine, the individual program commands (ie the byte code) in turn interpreted in platform-dependent program code, so that address ranges of individual programs or applications via the virtual machine or the interpreter are separated.
  • the virtual machine defines which accesses are allowed or which data an application has access to.
  • a major disadvantage is the fact that basically only interpreter code can be reloaded.
  • Platform-dependent program code eg. B. Input / output interface drivers can not be loaded after card output.
  • Another disadvantage is that the security of the memory protection is based on the security of the virtual machine or on the interpreter. It is possible to provide a so-called bytecode verifier which checks the bytecode accordingly.
  • the disadvantage is that the required checks of the verifier for resource and / or performance reasons mainly outside the smart card be performed. However, if the checks of the bytecode verifier are performed outside the smart card, it is vulnerable.
  • the present invention has therefore set itself the task of finding a way with which a significantly improved memory protection for smart card operating systems can be achieved and allows a more flexible use of smart cards.
  • a multi-tasking operating system for chip cards or a corresponding chip card and a corresponding microprocessor to be provided.
  • This object is achieved by a method for operating a mobile data carrier, with a mobile data carrier, a microprocessor, a computer program product and with a method for producing and maintaining a mobile data carrier according to the appended independent patent claims.
  • the object is achieved by a method for operating a mobile data carrier which is equipped with the following resources: at least one microprocessor,
  • At least one data store which usually consists of several different data storage areas
  • Interfaces for data exchange between microprocessor and data storage and / or other modules that are assigned to the mobile data carrier, wherein on the mobile data carrier different applications can be performed by the mobile data carrier comprises a central control unit, the operation of the mobile data carrier , in particular the execution of the applications, controls and / or monitors in such a way that several applications can be active at the same time by assigning or depriving resources of an application according to a configurable scheduling mechanism and / or by controlling the data exchange.
  • the mobile data carrier is usually a chip card or a SIM card or other microprocessor cards that are in a terminal such.
  • the inventive mobile data carrier z. B. in navigation systems, PDAs, digital dictation systems, digital cameras or telephones are used.
  • the main embodiment of the invention relates to a smart card, and thus the term smart card is to be understood as the main embodiment for a mobile data carrier.
  • a smart card typically includes the following hardware resources: a microprocessor for data processing, data storage and interfaces. It However, in alternative embodiments, it is also possible to provide additional resources here, such as. B. a mathematical coprocessor.
  • the interfaces are usually input / output interfaces.
  • further interfaces for example to other external and / or internal modules, which are assigned to the mobile data carrier, can be provided.
  • the central point of the method according to the invention for operating the chip card is the central control unit, which in the preferred embodiment is designed as a multi-tasking kernel and is part of an existing or new operating system for the chip card.
  • the central multi-tasking kernel controls and / or controls processes on the chip card and provides protected areas for execution.
  • all commands are executed by the multi -Tasking kernel controlled.
  • the multi-tasking kernel controls the operation of the chip card and the processing of the processes running on it such that several applications can be executed simultaneously on one and the same chip card. This is accomplished by the multi-tasking kernel operating on a scheduling mechanism that is preferably configurable. The scheduling mechanism is allowed - with regard to the entirety of all activatable or activated on the mobile data carrier applications - an optimized version or an optimized operation of the data carrier.
  • the multi-tasking kernel enables a quasi-parallel execution of several software-based applications executable on the chip card.
  • the multi-tasking kernel assigning appropriate allocations of computation time and resources to the applications according to the configurable scheduling mechanism. The execution or execution of commands is thus triggered according to the invention exclusively by the central multi-tasking kernel.
  • the multi-tasking kernel thus offers the possibility of executing various user programs or various applications virtually simultaneously, in particular with the option of allocating resources (such as, for example, certain memory areas in RAM or in non-volatile memory, interfaces or input / Output channels, cryptological modules, etc.) exclusively to an application and to withdraw them if necessary.
  • resources such as, for example, certain memory areas in RAM or in non-volatile memory, interfaces or input / Output channels, cryptological modules, etc.
  • This allows an application in conjunction with a smart card terminal z.
  • a "classic" smart card legacy task may be performed (eg, credit / debit commands) while another application is running in the background.
  • Each service or application has a protected address space. It is also possible for several applications to be combined with respect to memory management, so that they are integrated in a common address space.
  • inventive According to a secure data exchange between all participating modules of the smart card will be enabled.
  • the data exchange between the individual, different applications is completely secured by the multi-tasking kernel, as well as the data exchange with other modules that may be connected to corresponding interfaces to the smart card, which significantly increases the overall security of the overall system.
  • the functionality of the respective applications or services is not limited. Services that reside in a protected address space can even emulate the full functionality of a previously common smart card operating system (eg debit card, access control, SIM card, health card, etc.) in an environment that is protected from other services ,
  • the protection mechanism according to the invention can completely encapsulate the applications, so that a plurality of virtual smart cards can reliably coexist on a hardware platform.
  • the multi-tasking kernel it is possible by means of the multi-tasking kernel according to the invention to offer several "virtual" chip cards in strictly separate areas on a hardware platform, in particular on one and the same chip card.
  • the individual applications, each of which realizes "virtual chip cards" are no longer grouped around the command interface, as in the case of classic state-of-the-art operating systems, but are controlled as services via the functions of the central multi-tasking kernel ,
  • memory protection Another central aspect of the present invention is seen in memory protection.
  • memory protection for platform-dependent program code is implemented in the multi-tasking kernel. With that you can the above-mentioned disadvantages of the interpreter-based memory protection are overcome by the operating systems known from the prior art.
  • the multi-tasking kernel accesses a mechanism for supporting the separation of the address spaces, in particular a memory management unit (MMU for short) and / or a memory protection unit (MPU for short) ).
  • MMU memory management unit
  • MPU memory protection unit
  • multi-tasking kernel By using the multi-tasking kernel at a central location, ie at the hierarchically highest priority level, several simultaneous active applications can be executed on a chip card. This opens up the possibility that individual applications can access non-conflicting resources in parallel and thus simultaneously, and e.g. Exchange data via possibly different input / outpunt interfaces with external or internal systems. Cumulatively or alternatively, data in the background can also be processed, in particular prepared, by an application, without this being triggered explicitly via external communication.
  • the multi-tasking kernel provides that priorities can be assigned, in particular with regard to individual applications or application groups, and that a calculation time control takes place. By monitoring priorities and computation time, the multi-tasking kernel can ensure that the computational time or execution time available to an application is limited and that the multi-tasking kernel - li ⁇
  • a limitation of the computing time is achieved by controlling the consumption of the computing time by the multi-tasking kernel and assigning the computing time in the form of time quanta decidedly to the applications. Tamper protection is achieved by running only the multi-tasking kernel in a more privileged mode of operation, while all applications operate in a hierarchically lower-level user mode.
  • the multi-tasking kernel has more tasks.
  • it also serves to manage the resources of the chip card (such as memories and interfaces).
  • the resources can be requested by the application at the first loading or dynamically at runtime at the multi-tasking kernel.
  • the multi-tasking kernel decides alone and in the first instance, whether the resources are assigned exclusively to an application or not.
  • the application can pass on further sub-applications rights that are smaller or equal to the rights granted to it by the multi-tasking kernel.
  • subcontracting or subcontracting of rights to subordinate subapplications is envisaged.
  • the multi-tasking kernel serves to provide mechanisms for secure data exchange between the individual applications.
  • the data exchange between the applications controlled and / or monitored by the multi-tasking kernel is fundamentally based on the principle that the data exchange takes place exclusively under the control of the multi-tasking kernel. There are basically two alternatives for this: 1.- The participating applications are exchanging data or can exchange corresponding messages via special multi-tasking kernel function calls.
  • the participating applications can exchange data via predefined memory areas that contain several - in this case the active -
  • each application itself decides whether and which data it makes available to other applications.
  • the advantage is achieved that different applications can be integrated on a chip card, but they are securely sealed off from each other.
  • a significant advantage of the solution according to the invention is further to be seen in the fact that the fundamental advantage of flexibility, which can be achieved inter alia in the prior art by the approach of reloadable program code, can be maintained even with the inventive solution and even significantly improved .
  • Another advantage of the solution according to the invention is the fact that the possibilities of data transfer in relation to the mobile data carriers can be extended.
  • the multi-tasking kernel By controlling the multi-tasking kernel, it becomes possible to trigger necessary communication processes in an optimized manner so that parallel or simultaneous communication with internal or external modules takes place via a number of identical or different types of hardware interfaces.
  • a chip card system based on the multi-tasking kernel according to the invention can use the quasi-parallel execution of program code to simultaneously transfer data via different input / output interfaces, eg. B. via a contactless interface according to the standard ISO14443 or the NFC standard (Near Field Communication) and in parallel to replace it via a contact interface according to the ISO7816 standard.
  • a privileged mode in which runs the central multi-tasking kernel, the rights are granted more than a second mode in which basically all applications and / or processes or applications work.
  • a second mode in which basically all applications and / or processes or applications work.
  • the central multi-tasking kernel is in each case the most privileged in order to enable central control of the entire operation of the data carrier.
  • the multi-tasking kernel according to the invention is based on a scheduling mechanism which is geared towards achieving an optimized execution or execution of all processes with regard to the entirety of all processes running on the data carrier (comprising operating system processes and application processes).
  • the scheduling mechanism accesses an optimization algorithm which optimizes the operation of the data carrier with regard to one or more of the following optimization criteria: optimization with regard to time, in particular with respect to a processing speed Dwell time of processes in the main memory and / or a response time of the processes; an optimization in terms of system resources, in particular hardware resources; an optimization in terms of space requirements and an optimization in terms of the necessary data transfer.
  • optimization criteria are configurable. This has the advantage that the solution according to the invention is very flexible with regard to the basic processing of the process.
  • the operating system of the chip card is thus not limited to a specific optimization criterion.
  • the configurable mechanism is set based on predefined input parameters.
  • the input parameters can be read in via corresponding interfaces. Alternatively, it is possible that for certain applications, a preferred treatment of the respective application takes place. Then, the multi-tasking kernel can exclusively allocate all or selected resources to a particular application. However, the formation of this feature according to the invention is not necessary and only optional.
  • the multi-tasking kernel In order for the task of the scheduling process to be implemented, it is necessary for the multi-tasking kernel to automatically record and control the execution time for each process. Furthermore, a limitation is imposed on the execution time of each process (this is done according to the mechanism: "how long may which process last?"). Thereupon, it is possible for the scheduling mechanism to automatically limit the execution time for a given application by controlling the consumption of the computation time and by monitoring compliance with the constraints.
  • a nested or cross-processed processing of processes can be driven, so that the total execution time of all necessary processes on the disk can be optimized. According to the optimized scheduling method, computer time is then allocated to the respective process or to the respective application.
  • smart cards can also be used in terminals such. B. are used in mobile phones and are formed in this case as a SIM card.
  • terminals such. B. are used in mobile phones and are formed in this case as a SIM card.
  • other interfaces such. B. USB or MMC interfaces to the SIM contacts in the mobile phone provided, can be addressed via the other security devices, eg.
  • security modules or security components that should perform security checks are designed distributed in the system. This distribution of safety-critical functions to different systems and components in the chip card-related components or devices leads to several disadvantages.
  • TMM trust management module
  • This module is also controlled by the multi-tasking kernel.
  • the TMM module can perform various safety-critical tasks in a protected environment, such as: B. in addition to the pure SIM functionality, a DRM authentication (DRM stands for Digital Rights Management and concerns a control system for checking a transmission of protected or protected content).
  • DRM Digital Rights Management
  • other authorization mechanisms can be supported.
  • the TMM module can be designed both physically and as a hardware component. However, it is also possible to provide the module or individual functionalities of the module as software or as a computer program product, which can be used on a specific security processor z. For example, on a secure ARM core.
  • TMM module An important advantage in connection with the security aspects of the TMM module is that security functions can be reloaded flexibly.
  • security functions can be reloaded flexibly.
  • the TMM module operated by the multi-tasking kernel according to the invention can offer significantly more functions than e.g. of javacard applets.
  • platform-dependent security protocol drivers such as IFSec or SSL / TLS, or digital rights management authorization systems related to multimedia content.
  • TMM module A significant, advantageous aspect of the TMM module according to the invention is further to be seen in the fact that it can also actively perform security checks itself. This is not the case with previous TPM modules (Trusted Platform Module, TPM for short, is a security standard developed by the Trusted Computing Group, the modules of which are basically implemented as system-on-chip).
  • TPM Trusted Platform Module
  • the TMM module according to the invention is not operated as a pure slave, which only responds to requests from another entity, but the TMM module can also control actions independently.
  • this self-contained control feature is not mandatory and only optional.
  • an improved memory protection can be achieved by the inventive operation of the chip card with a TMM module. Due to the multi-tasking-capable operating system, different security mission-critical tasks in a security system, in particular in a specific chip card processor, housed and thus realized.
  • the TMM module can be implemented on the mobile data carrier.
  • An alternative task solution provides a storage medium that is intended for storing the computer-implemented method described above and is readable by a computer.
  • a further solution of the problem can be seen in that the method described above is designed as an operating system or operating system component for a mobile data carrier which is operated in accordance with at least one feature of the method.
  • FIG. 1 shows a schematic, overview-like representation of a multi-tasking kernel according to the invention, which controls the operation of the mobile data carrier according to an embodiment of the invention
  • FIG. 2 shows an overview of an activation of applications by the multi-tasking kernel according to the invention according to a preferred embodiment
  • FIG. 3 shows an overview of a possible structuring of components of a data carrier according to the invention.
  • a mobile data carrier is designed as a chip card C.
  • the applications of the chip card C are, however, in principle not limited and can be in the field of payments, finance, access control. Furthermore, it is possible that the chip card C for use in other devices, eg. B. mobile devices such as telephones, is used and it is in particular an inventively extended SIM card.
  • the chip card C itself and the applications A running on it are controlled by an operating system.
  • the program modules of the operating system were usually stored in a ROM memory module (read-only memory ROM).
  • ROM memory module read-only memory ROM
  • the main tasks of a chip card operating system include the exchange of data with the chip card, the flow control of the commands to be executed, the file management and the management and execution of security functions and algorithms, such as cryptographic keys, etc.
  • the chip card C comprises an embedded microcontroller which triggers, controls and monitors all activities of the chip card C.
  • the most important, typical components of a chip card microcontroller are the microprocessor MP, all interfaces SS of the chip card C, in particular the address and data bus and the data storage DS, which include all different types of memory, such as RAM, ROM and EEPROM.
  • the interfaces SS of the chip card C include all input
  • a central control device MTK is provided, which in particular is provided by the multi-component
  • FIG. 3 shows the multi-tasking kernel MTK as a separate component on the chip card C.
  • MTK the multi-tasking kernel
  • FIG. 3 shows the multi-tasking kernel MTK - in contrast to the known chip card operating systems - is provided as an additional component.
  • it will not be provided as a separate, independent component, but rather integrated in other areas of the chip card as a separate module.
  • it will be provided as a modular, separate operating system component in addition to the previous operating system of the chip card C.
  • an application A comprises a plurality of commands or processes which must or can be executed at different times.
  • An application usually comprises several applications A. However, it is also possible in principle that a very simple application consists only of a single application A.
  • the central multi-tasking kernel MTK creates the possibility of offering several "virtual" chip cards on the same hardware platform of a chip card C, as it were.
  • the individual virtual smart cards are strictly separated, since all applications and commands are controlled by the central multi-tasking kernel MTK. A one-sided or mutual influence of active applications or applications is thus reliably prevented by the multi-tasking kernel MTK.
  • the multi-tasking kernel MTK assigns applications A the appropriate contingents of computing time and resources according to a configurable scheduling method. As shown by way of example in FIG. 1, all applications A or chip card services A are in data exchange with the multi-tasking kernel MTK and are controlled and executed by them. In Fig. 1 it is indicated that the scheduling of the multi-tasking kernel MTK is time-based. This is to be clarified by the time-slice-like representation in FIG. 1.
  • the multi-tasking kernel MTK monitors and controls the execution of the individual applications at runtime. By means of the configurable scheduling mechanism, in each case an application is automatically provided with a quota of computing time and resources which can be utilized by the respective application A. The Execution time of each application A is thus automatically limited to a configurable level.
  • the multi-tasking kernel MTK must perform an analysis of the existing system state with applications A to be triggered accordingly and must then control the entire execution or operation of the chip card C, so that with regard to the totality of all commands to be executed an optimized execution takes place.
  • the optimization criteria are configurable: z. As an optimization in terms of time, system resources, storage space, power consumption, etc.
  • the multi-tasking kernel MTK Before executing a respective application A, the multi-tasking kernel MTK records how much computation time is required for execution and how much and / or what resources are required. If now several applications A are to be executed, the multi-tasking kernel MTK can trigger an optimized execution of individual processes, which are assigned to the respective applications A, based on the analysis of the computing time and the required resources of all applications. Has z. For example, a first application A 1 has the task of forwarding data via a contactless interface to an external module and has, for example, B.
  • the multi-tasking kernel MTK can cause a quasi-parallel, that is, simultaneous activation of the two applications A 1 and A2, da the two applications access different resources (in this case different interfaces SS). This makes it possible to parallelize the processing path of instructions that is sequential in prior art systems of the prior art and to make them more common be shared, so that the overall performance can be increased.
  • the multi-tasking kernel MTK accesses time-based scheduling if it detects concurrent access from different applications to the same resources at the same time.
  • the time-based scheduling then provides that the entirety of the processes to be executed in the two applications Ai and A2 is controlled in such a way that overall (ie with regard to the entirety of the two applications Ai and A2) an optimized, in particular time-optimized, version is made possible , This is z. B. possible to prepare data of an application Ai in the background, while another application A2 z. B. communicates with an external system via interfaces SS.
  • FIG. 2 schematically shows how the multi-tasking kernel MTK activates different applications Ai, A2, A3 in an optimized manner.
  • the applications Ai and A2 shown in FIG. 2 are each caused by external systems. This can be z.
  • an account sales request may be in the context of a financial application.
  • the central idea of the present invention is that the individual requests and commands to be executed are no longer executed directly, but are all controlled via the central multi-tasking kernel MTK. Due to the scheduling algorithm, the multi-tasking kernel MTK activates individual processes of the applications Ai, A2 and A3,..., Ai in such a way that an optimized execution the entirety of all applications Ai is made possible. This is illustrated in FIG.
  • the applications activated by the multi-tasking kernel MTK are identified by a thick vertical line while the respective processes or commands of an application A, which are currently not active, or by the multi -Tasking Kernel MTK have not been activated, only marked with a thin vertical line.
  • the multi-tasking kernel MTK first activates the application A 1 on request of the external system IB, and then an instruction cycle of the application A2, which has been caused by the external system IA. Following this, the application A 1 is returned again to then start the application A3 and then terminate the application A2. Following the termination of the application A2, the remaining commands of the application A3 are executed. Overall, such a time-optimized scheduling of the entirety of the applications Ai is possible.
  • a central aspect of the present invention is improved security measures, in particular improved memory protection.
  • all security-relevant commands or processes that are necessary in the context of the operation of the chip card C are summarized and integrated.
  • This application A or this module is called TMM module (Trust Management Module).
  • TMM module Trust Management Module
  • all safety-relevant functions and commands are summarized. It is possible to reload additional security functions flexibly via specific protocols.
  • the content of the TMM module can be flexibly configured. This makes it possible, depending on the application, to activate and / or deactivate different security mechanisms in order to optimize Ie safety cover of the chip card C for each application to achieve.
  • the TMM module according to the invention is designed so that it can actively perform safety checks and thus not - as in the prior art - is operated as a purely dependent process.
  • Another, significant advantage of the solution according to the invention is the fact that the safety-related processes that are integrated in the TMM module, optimized in the process or in the entire operation of the smart card C can be bordered.
  • This has the background that certain safety checks make sense only at a certain point in the system flow. So z.
  • an authentication measure only makes sense before the start of a transaction, while further security measures can also be carried out at a later time.
  • the optimal, in particular time-optimized, control of all processes on the chip card C is controlled and monitored by the multi-tasking kernel MTK.
  • the solution according to the invention is advantageously independent of the respective platform of the chip card C and, in particular, independently of this, whether a virtual machine is used or not, or whether the virtual machine is realized off-card or on-card.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

The invention relates to a method for operating a chip card (C), a microprocessor for inserting into the chip card (C), and a computer program product. The invention also relates to a method for the production and/or maintanance of a chip card (C) which is operated by mans of a previously described method. A central multi-tasking kernel (MTK) is used to control the entire operation of the chip card (C) such that a plurality of applications (A) can be simultaneously activated on the chip card (C). An application (A) can also perform security functions for the chip card (C).

Description

Betriebssy stem f ür eine Chipkarte mit einem MuI ti-Tasking Kernel Operating system for a chip card with a multi-tasking kernel
Die Erfindung liegt auf dem Gebiet der Chipkartentechnik und betrifft insbesondere ein Verfahren und ein System zum Betreiben von mobilen Datenträgern.The invention is in the field of smart card technology and more particularly relates to a method and a system for operating mobile data carriers.
Mobile Datenträger finden heute vielfältige Einsatzgebiete vor, unter ande- rem als Chipkarte, wie z. B. die EC-Karte, die Anwendung als Zutritts- bzw. Zugangskontrolle, Chipkarten im Gesundheitswesen, im Bereich der Mobilfunktechnik als SIM-Karte (Subscriber Identity Module). Die SIM-Karte ist eine scheckkartengroße Identifizierungskarte für Teilnehmer eines Mobilfunkdienstes und wird auch als "Smartcard" bezeichnet. Darüber hinaus gibt es noch eine Vielzahl von weiteren Anwendungsmöglichkeiten von Chipkarten, etwa im Bereich der Navigationstechnik, bei digitalen Diktier- oder Kamer asy stemen etc.Mobile data carriers today find a variety of applications, including as a smart card, such. As the EC card, the application as access control, smart cards in healthcare, in the field of mobile technology as a SIM card (Subscriber Identity Module). The SIM card is a check card-sized identification card for subscribers of a mobile service and is also referred to as a "smart card". In addition, there are a variety of other applications of smart cards, such as in the field of navigation technology, in digital dictation or camera asy stemen etc.
Üblicherweise umfasst der mobile Datenträger, insbesondere die Chipkarte, folgende Hardware-Ressourcen: Einen Mikroprozessor bzw. eine CPU (Central Processing Unit) zur Datenverarbeitung, mehrere Datenspeicher unterschiedlicher Art, wie dem RAM (Random Access Memory), dem ROM (Read OnIy Memory) und dem EEPROM (Electrical Eraseable Read OnIy Memory) und Schnittstellen für einen Datenaustausch zwischen den diver- sen Bauteilen, insbesondere zwischen dem Mikroprozessor und den Datenspeichern und gegebenenfalls zu weiteren Modulen auf der Chipkarte, sowie zu weiteren externen Modulen, die außerhalb der Chipkarte vorgesehen sind und mit der Chipkarte in Datenaustausch stehen sollen. Dabei kann es sich z. B. um Lesegeräte oder um komplexere Back-Office-Systeme handeln. Jenach Anwendungsgebiet ist es möglich, auf der Chipkarte eine oder mehrere Applikationen laufen zu lassen. In diesem Fall, wenn also mehrere Anwendungen auf einer Chipkarte abgewickelt werden sollen, gewinnt der Sicherheitsaspekt verstärkt Bedeutung. Denn es muss sichergestellt sein, dass ein unberechtigter Datenzugriff sicher unterbunden werden kann. Bei mehreren Applikationen auf einer Karte steigt das Risiko insofern, da die Anwendungen in datentechnischer Hinsicht sicher voneinander entkoppelt und abgeschottet sein müssen. So muss z. B. sichergestellt sein, dass kein unerlaubter Zugriff auf einen bestimmten Speicherbereich über eine andere, fremde Applikation abgewickelt werden kann.Usually, the mobile data carrier, in particular the chip card, comprises the following hardware resources: A microprocessor or a CPU (Central Processing Unit) for data processing, a plurality of data memories of different types, such as RAM (Random Access Memory), ROM (Read OnIy Memory) and the EEPROM (Electrical Erasable Read On Memory) and interfaces for data exchange between the various components, in particular between the microprocessor and the data storage and optionally to other modules on the smart card, and to other external modules that are provided outside the smart card and should be in data exchange with the chip card. It may be z. For example, readers or more complex back-office systems. Depending on the field of application, it is possible to run one or more applications on the chip card. In this case, if several applications are to be processed on a chip card, the security aspect gains more importance. Because it must be ensured that an unauthorized access to data can be safely prevented. With several applications on a card, the risk increases insofar as the applications must be reliably decoupled and isolated from a data-technical point of view. So z. B. be ensured that no unauthorized access to a particular memory area can be handled via another, foreign application.
Karten, auf denen mehrere Applikation abgewickelt werden können, erfordern somit einen erhöhten Sicherheitsbedarf und sind komplexer; sie erfordern umfassendere Mechanismen zum Betreiben der Karte.Cards on which several applications can be handled thus require more security and are more complex; they require more extensive mechanisms for operating the card.
Das Betreiben der Chipkarte an sich und die Abwicklung von darauf laufenden Programmen bzw. Applikationen fallen in den Aufgabenbereich des Betriebssystems. Damit ist das Betriebssystem sozusagen eine Schnittstelle zwischen der eigentlichen Anwendungs-Software und der zugrunde liegenden Hardware der Chipkarte. Üblicherweise basieren die heutigen befehlsgetrig- gerten Chipkarten-Betriebssysteme auf dem im Stand der Technik bekannten Standard ISO-7816. In diesem Standard ist es vorgesehen, dass alle Funktionen bzw. Befehle des Betriebssystems und der Applikationen von Kommandos getriggert werden, die über eine externe Schnittstelle empfangen wer- den. Dabei werden die Befehle nur sequenziell, das heißt also nacheinander, ausgeführt. Mit anderen Worten gibt es damit nur einen Kontrollfluss für Prozesse in den jeweiligen Programmen. Derzeitige Implementierungen auf Chipkarten bestehen somit nur aus Prozessen mit einem einzigen Ausführungspfad bzw. mit einem einzigen Thread. Betriebssysteme, die ein Multi- Threading, also mehrere Ausführungspfade, unterstützen, sind für Chipkarten bisher nicht bekannt. Dies ist jedoch ein schwerwiegender Nachteil, der die Flexibilität beim Einsatz und beim Betreiben von Chipkarten deutlich einschränkt.The operation of the chip card itself and the handling of running programs or applications fall within the scope of the operating system. Thus, the operating system is, so to speak, an interface between the actual application software and the underlying hardware of the chip card. Typically, today's command-driven smart card operating systems are based on the ISO-7816 standard known in the art. In this standard it is intended that all functions or commands of the operating system and the applications are triggered by commands that are received via an external interface. The commands are executed only sequentially, ie one after the other. In other words, there is only one control flow for processes in the respective programs. Current implementations on smart cards thus only consist of processes with a single execution path or with a single thread. Operating systems that have a multi Threading, so multiple execution paths support, are not yet known for smart cards. However, this is a serious disadvantage that significantly limits the flexibility in the use and operation of smart cards.
Um dem Nachteil der geringen Flexibilität entgegenzuwirken, ist es im Stand der Technik bei Chipkarten-Betriebssystemen der neueren Generation vorgesehen, dass der Programmcode zu beliebigen Zeitpunkten nachgeladen werden kann. Damit wird es möglich, auch nach Ausgabe der Karte einzelne Module bzw. Komponenten der Chipkarte gegen andere auszutauschen. Entsprechende Verfahren um Applikationen über eine ISO-7816-konforme Schnittstelle zu laden, sind z. B. in dem Standard "Global Platform Standard, Global Platform Card Specification V2.1.1" beschrieben.In order to counteract the disadvantage of low flexibility, it is provided in the prior art smart card operating systems of the newer generation that the program code can be reloaded at arbitrary times. This makes it possible to exchange individual modules or components of the chip card against others even after the card has been issued. Corresponding methods for loading applications via an ISO-7816-compliant interface are, for example, As described in the standard "Global Platform Standard, Global Platform Card Specification V2.1.1".
Betriebssysteme, die das Nachladen von Programmcode ermöglichen, können grundsätzlich in zwei Kategorien unterteilt werden:Operating systems that allow reloading of program code can basically be divided into two categories:
1. Betriebssysteme, bei denen es vorgesehen ist, einen von einem Compiler bereits übersetzten compilierten Code in die entsprechenden Dateien der Chipkarte zu laden. Dieser Ansatz birgt jedoch ein großes Sicherheitsrisiko, da es grundsätzlich möglich ist, dass ein nachgeladener Programmcode bei Mikrocontrollern, die ohne eine Memory-Management- Unit (kurz MMU) arbeiten, auch auf fremde Speicherbereiche von anderen Anwendungen zugreifen kann.1. Operating systems in which it is intended to load a compiler already translated compiled code into the corresponding files of the smart card. However, this approach poses a major security risk since it is fundamentally possible that reloaded program code can also access foreign memory areas of other applications for microcontrollers that operate without a memory management unit (MMU for short).
2. Betriebssysteme, die darauf basieren, dass nachzuladender Programmcode auf der Chipkarte interpretiert wird. Der Interpreter prüft dann während der Programmausführung, welche Speicherbereiche angesprochen werden und kann damit sicherstellen, dass keine unerlaubten Zugriffe auf Fremdanwendungen ausgeführt werden. Zu den bekanntesten Lösungen dieses Ansatzes zählen die Javacard-Spezifikation (Javacard-Standard, Java Virtual Machine, Javasoft, JCS) und der C- Interpreter MEL (MEL steht für Multos Executeable Langauge) von Multos. Der grundsätzliche Nachteil dieses zweiten Ansatzes ist darin zu sehen, dass Interpreter jedoch grundsätzlich langsam arbeiten und dies zu einer schlechten Performance führen kann.2. Operating systems that are based on interpreting the program code to be reloaded on the chip card. The interpreter then checks during program execution which memory areas are addressed and can thus ensure that there are no unauthorized ones accesses to third-party applications. Among the best-known solutions of this approach are the Javacard specification (Javacard standard, Java Virtual Machine, Javasoft, JCS) and the C interpreter MEL (MEL stands for Multos Executeable Langauge) from Multos. The fundamental drawback of this second approach is that interpreters are basically slow to work and this can lead to poor performance.
Heute auf dem Markt befindliche Mikrocontroller für Chipkarten sind in der Regel mit Prozessoren ausgestattet, die keine Speicherschutzmechanismen oder sonstige Überwachungsmöglichkeiten gegen unerlaubte Zugriffe haben. Um diesem Sicherheitsrisiko zu begegnen, wird der nachgeladene Programmcode nicht direkt ausgeführt, sondern nur indirekt, z. B. über eine so genannte virtuelle Maschine, die einzelne Programmbefehle (also den Byte- code) wiederum in plattformabhängigen Programmcode interpretiert, so dass Adressbereiche einzelner Programme bzw. Applikationen über die virtuelle Maschine oder über den Interpreter getrennt sind. In der virtuellen Maschine wird definiert, welche Zugriffe erlaubt sind, bzw. auf welche Daten eine Applikation Zugriff hat. Ein wesentlicher Nachteil ist jedoch darin zu sehen, dass grundsätzlich nur Interpretercode nachgeladen werden kann. Plattformabhängiger Programmcode, z. B. Treiber für Input-/ Output- Schnittstellen können nach Kartenausgabe nicht mehr geladen werden.Smart card microcontrollers currently on the market are usually equipped with processors that have no memory protection mechanisms or other monitoring options against unauthorized access. To counter this security risk, the reloaded program code is not executed directly, but only indirectly, eg. B. via a so-called virtual machine, the individual program commands (ie the byte code) in turn interpreted in platform-dependent program code, so that address ranges of individual programs or applications via the virtual machine or the interpreter are separated. The virtual machine defines which accesses are allowed or which data an application has access to. However, a major disadvantage is the fact that basically only interpreter code can be reloaded. Platform-dependent program code, eg. B. Input / output interface drivers can not be loaded after card output.
Ein weiterer Nachteil ist darin zu sehen, dass die Sicherheit des Speicher- Schutzes auf der Sicherheit der virtuellen Maschine bzw. auf dem Interpreter beruht. Es ist zwar möglich, einen so genannten Bytecode- Verifier zur Verfügung zu stellen, der den Bytecode entsprechend überprüft. Nachteilig ist jedoch, dass die erforderlichen Überprüfungen des Verifiers aus Ressourcen- und/oder Performance-Gründen vorwiegend außerhalb der Chipkarte durchgeführt werden. Werden die Überprüfungen des Bytecode- Verifiers jedoch außerhalb der Chipkarte ausgeführt, ist dieser angreifbar.Another disadvantage is that the security of the memory protection is based on the security of the virtual machine or on the interpreter. It is possible to provide a so-called bytecode verifier which checks the bytecode accordingly. The disadvantage, however, is that the required checks of the verifier for resource and / or performance reasons mainly outside the smart card be performed. However, if the checks of the bytecode verifier are performed outside the smart card, it is vulnerable.
Darüber hinaus liegt ein weiterer, in der Praxis nicht zu vernachlässigender Nachteil der bekannten Lösung in dem geringeren Umfang des Speicherschutzes. Der Speicherschutz bei bisherigen Chipkarten-Betriebssystemen beruht bei diesem Ansatz ausschließlich auf dem Interpreter bzw. auf der virtuellen Maschine. Ein Speicherschutz für umfassendere, komplexere Systeme, die z. B. aus mehreren virtuellen Maschinen bestehen, sind nicht be- kannt. Mit anderen Worten gibt es deshalb keine Lösungen für Chipkarten- Betriebssysteme mit einem Speicherschutz beim Datenaustausch zwischen mehreren Interpretern bzw. mehreren virtuellen Maschinen auf einer Chipkarte.In addition, there is another, not negligible in practice disadvantage of the known solution in the smaller extent of memory protection. The memory protection in previous smart card operating systems based in this approach exclusively on the interpreter or on the virtual machine. A memory protection for more comprehensive, more complex systems that z. B. consist of several virtual machines, are not known. In other words, there are therefore no solutions for smart card operating systems with a memory protection during data exchange between multiple interpreters or multiple virtual machines on a smart card.
Die vorliegende Erfindung hat sich deshalb zur Aufgabe gestellt, einen Weg aufzuzeigen, mit dem ein deutlich verbesserter Speicherschutz für Chipkarten-Betriebssysteme erreicht werden kann und der einen flexibleren Einsatz von Chipkarten ermöglicht. Darüber hinaus soll ein multi-taskingfähiges Betriebssystem für Chipkarten bzw. eine entsprechende Chipkarte und ein ent- sprechender Mikroprozessor bereitgestellt werden.The present invention has therefore set itself the task of finding a way with which a significantly improved memory protection for smart card operating systems can be achieved and allows a more flexible use of smart cards. In addition, a multi-tasking operating system for chip cards or a corresponding chip card and a corresponding microprocessor to be provided.
Diese Aufgabe wird mit einem Verfahren zum Betreiben eines mobilen Datenträgers, mit einem mobilen Datenträger, einem Mikroprozessor, einem Computerprogrammprodukt und mit einem Verfahren zum Herstellen und zum Warten eines mobilen Datenträgers gemäß den beiliegenden unabhängigen Patentansprüchen gelöst.This object is achieved by a method for operating a mobile data carrier, with a mobile data carrier, a microprocessor, a computer program product and with a method for producing and maintaining a mobile data carrier according to the appended independent patent claims.
Die Aufgabe wird insbesondere durch ein Verfahren zum Betreiben eines mobilen Datenträgers gelöst, der mit folgenden Ressourcen ausgestattet ist: - zumindest einem Mikroprozessor,In particular, the object is achieved by a method for operating a mobile data carrier which is equipped with the following resources: at least one microprocessor,
- zumindest einem Datenspeicher, der üblicherweise aus mehreren unterschiedlichen Datenspeicherbereichen besteht undat least one data store, which usually consists of several different data storage areas, and
- Schnittstellen für einen Datenaustausch zwischen Mikroprozessor und Da- tenspeicher und/ oder weiteren Modulen, die dem mobilen Datenträger zugeordnet sind, wobei auf dem mobilen Datenträger unterschiedliche Applikationen ausgeführt werden können, indem der mobile Datenträger eine zentrale Steuerungseinheit umfasst, die den Betrieb des mobilen Datenträgers, insbesondere die Ausführung der Applikationen, derart steuert und/ oder überwacht, dass gleichzeitig mehrere Applikationen aktiv sein können, indem nach einem konfigurierbaren Scheduling-Mechanismus jeweils einer Applikation Ressourcen zugewiesen oder entzogen werden und/ oder der Datenaustausch gesteuert wird.- Interfaces for data exchange between microprocessor and data storage and / or other modules that are assigned to the mobile data carrier, wherein on the mobile data carrier different applications can be performed by the mobile data carrier comprises a central control unit, the operation of the mobile data carrier , in particular the execution of the applications, controls and / or monitors in such a way that several applications can be active at the same time by assigning or depriving resources of an application according to a configurable scheduling mechanism and / or by controlling the data exchange.
Bei dem mobilen Datenträger handelt es sich üblicherweise um eine Chipkarte oder eine SIM-Karte oder um sonstige Mikroprozessorkarten, die in ein Endgerät, wie z. B. in ein mobiles Endgerät, wie ein Handy, eingesetzt werden können.The mobile data carrier is usually a chip card or a SIM card or other microprocessor cards that are in a terminal such. B. in a mobile device, such as a cell phone, can be used.
Die Erfindung kann auf unterschiedlichen Gebieten zum Einsatz kommen. So kann der erfindungsgemäße mobile Datenträger z. B. in Navigationssystemen, PDAs, digitalen Diktiersystemen, digitalen Kameras oder Telefonapparaten eingesetzt werden. Die hauptsächliche Ausführungsform der Erfindung betrifft jedoch eine Chipkarte und insofern ist der Begriff Chipkarte als hauptsächliches Ausführungsbeispiel für einen mobilen Datenträger zu verstehen.The invention can be used in different fields. Thus, the inventive mobile data carrier z. B. in navigation systems, PDAs, digital dictation systems, digital cameras or telephones are used. However, the main embodiment of the invention relates to a smart card, and thus the term smart card is to be understood as the main embodiment for a mobile data carrier.
Eine Chipkarte umfasst in der Regel folgende Hardware-Ressourcen: Einen Mikroprozessor zur Datenverarbeitung, Datenspeicher und Schnittstellen. Es ist jedoch in alternativen Ausführungsformen ebenfalls möglich, hier weitere Ressourcen vorzusehen, wie z. B. einen mathematischen Coprozessor.A smart card typically includes the following hardware resources: a microprocessor for data processing, data storage and interfaces. It However, in alternative embodiments, it is also possible to provide additional resources here, such as. B. a mathematical coprocessor.
Bei den Schnittstellen handelt es sich in der Regel um Input-/Output- Schnittstellen. Auch hier können weitere Schnittstellen, etwa zu anderen externen und/ oder internen Modulen, die dem mobilen Datenträger zugeordnet sind, vorgesehen sein.The interfaces are usually input / output interfaces. Here too, further interfaces, for example to other external and / or internal modules, which are assigned to the mobile data carrier, can be provided.
Kernpunkt des erfindungsgemäßen Verfahrens zum Betreiben der Chipkarte ist die zentrale Steuerungseinheit, die in der bevorzugten Ausführungsform als Multi-Tasking Kernel ausgebildet ist und ein Bestandteil eines - bestehenden oder neuen - Betriebssystems für die Chipkarte ist. Der zentrale Multi-Tasking Kernel steuert und/ oder kontrolliert Abläufe auf der Chipkarte und stellt geschützte Bereiche für die Ausführung zur Verfügung.The central point of the method according to the invention for operating the chip card is the central control unit, which in the preferred embodiment is designed as a multi-tasking kernel and is part of an existing or new operating system for the chip card. The central multi-tasking kernel controls and / or controls processes on the chip card and provides protected areas for execution.
Im Gegensatz zu bekannten Betriebssystemen aus dem Stand der Technik, bei denen die Befehle des Betriebssystems bzw. der Applikationen von Kommandos, die über die externe Schnittstelle empfangen werden, getrig- gert und sequentiell nacheinander ausgeführt werden, werden gemäß der Erfindung alle Befehle durch den Multi-Tasking Kernel gesteuert. Der Multi- Tasking Kernel steuert den Betrieb der Chipkarte und die Abwicklung der auf ihr laufenden Prozesse derart, dass gleichzeitig mehrere Applikationen auf ein und derselben Chipkarte ausgeführt werden können. Dies wird erreicht, indem der Multi-Tasking Kernel nach einem Scheduling- Mechanismus, der vorzugsweise konfigurierbar ist, arbeitet. Der Scheduling- Mechanismus ist erlaubt - im Hinblick auf die Gesamtheit aller auf dem mobilen Datenträger aktivierbaren oder aktivierten Applikationen - eine optimierte Ausführung bzw. ein optimierter Betrieb des Datenträgers. Der Multi-Tasking Kernel ermöglicht eine quasi-parallele Ausführung von mehreren auf der Chipkarte ablauffähigen software-basierten Applikationen. Er synchronisiert mittels des Scheduling-Mechanismus den Zugriff auf gemeinsame Betriebsmittel. Des Weiteren stellt er Mechanismen zum Zugriffs- schütz bereit, die vor einem unberechtigten Zugriff auf Daten schützen und die dem Schutz gegen Beeinträchtigungen des Ablaufs dienen. Dies wird erreicht, indem der Multi-Tasking Kernel den Applikationen nach dem konfigurierbaren Scheduling-Mechanismus entsprechende Kontingente an Rechenzeit und an Ressourcen zuweist. Die Abwicklung bzw. Ausführung von Befehlen wird erfindungsgemäß also ausschließlich von dem zentralen Multi-Tasking Kernel getriggert.In contrast to known prior art operating systems in which the commands of the operating system or of the applications of commands which are received via the external interface are triggered and executed sequentially one after the other, according to the invention all commands are executed by the multi -Tasking kernel controlled. The multi-tasking kernel controls the operation of the chip card and the processing of the processes running on it such that several applications can be executed simultaneously on one and the same chip card. This is accomplished by the multi-tasking kernel operating on a scheduling mechanism that is preferably configurable. The scheduling mechanism is allowed - with regard to the entirety of all activatable or activated on the mobile data carrier applications - an optimized version or an optimized operation of the data carrier. The multi-tasking kernel enables a quasi-parallel execution of several software-based applications executable on the chip card. It synchronizes access to shared resources by means of the scheduling mechanism. Furthermore, it provides mechanisms for access protection that protect against unauthorized access to data and that serve to protect against impairment of the process. This is achieved by the multi-tasking kernel assigning appropriate allocations of computation time and resources to the applications according to the configurable scheduling mechanism. The execution or execution of commands is thus triggered according to the invention exclusively by the central multi-tasking kernel.
Der Multi-Tasking Kernel bietet also die Möglichkeit, verschiedene Anwenderprogramme oder verschiedene Applikationen quasi gleichzeitig auszu- führen, insbesondere mit der Option, Ressourcen (wie z. B. bestimmte Speicherbereiche im RAM oder im nicht-flüchtigen Speicher, Schnittstellen bzw. Input-/ Output-Kanäle, kryptologische Module etc.) exklusiv einer Applikation zuzuweisen und sie bei Bedarf wieder zu entziehen. Dadurch kann eine Applikation im Zusammenspiel mit einem Chipkarten-Terminal z. B. eine "klassische" Chipkarten-Legacy- Auf gäbe ausführen (z. B. Credit-/Debit- Befehle), während eine andere Anwendung im Hintergrund ausgeführt wird. Durch den Einsatz des Multi-Tasking Kernels wird eine - einseitige oder gegenseitige - Beeinflussung von aktiven Anwendungen sicher unterbunden, was vorteilhafter Weise die Sicherheit des Gesamtsystems erhöht.The multi-tasking kernel thus offers the possibility of executing various user programs or various applications virtually simultaneously, in particular with the option of allocating resources (such as, for example, certain memory areas in RAM or in non-volatile memory, interfaces or input / Output channels, cryptological modules, etc.) exclusively to an application and to withdraw them if necessary. This allows an application in conjunction with a smart card terminal z. For example, a "classic" smart card legacy task may be performed (eg, credit / debit commands) while another application is running in the background. Through the use of the multi-tasking kernel, a one-sided or mutual influence on active applications is reliably prevented, which advantageously increases the security of the overall system.
Jeder Service bzw. jede Applikation verfügt über einen geschützten Adressraum. Es ist auch möglich, dass mehrere Applikationen bezüglich der Speicherverwaltung zusammengefasst werden, so dass sie in einem gemeinsamen Adressraum integriert werden. Vorteilhafter Weise kann erfindungs- gemäß ein gesicherter Datenaustausch zwischen allen beteiligten Modulen der Chipkarte ermöglicht werden. Insbesondere ist der Datenaustausch zwischen den einzelnen, unterschiedlichen Applikationen vollständig durch den Multi-Tasking Kernel abgesichert, sowie ebenso der Datenaustausch mit an- deren Modulen, die möglicherweise zu entsprechenden Schnittstellen an die Chipkarte angeschlossen werden, was insgesamt die Sicherheit des Gesamtsystems deutlich erhöht.Each service or application has a protected address space. It is also possible for several applications to be combined with respect to memory management, so that they are integrated in a common address space. Advantageously, inventive According to a secure data exchange between all participating modules of the smart card will be enabled. In particular, the data exchange between the individual, different applications is completely secured by the multi-tasking kernel, as well as the data exchange with other modules that may be connected to corresponding interfaces to the smart card, which significantly increases the overall security of the overall system.
Erfindungsgemäß ist die Funktionalität der jeweiligen Applikationen bzw. Services nicht begrenzt. Services, die in einem geschützten Adressraum liegen, können sogar die komplette Funktionalität eines bisher gängigen Chipkarten-Betriebssystems (z. B. EC-Karte, Zutrittskontrolle, SIM-Karte, Gesundheitskarte etc.) in einer Umgebung nachbilden, die vor anderen Services geschützt ist. Der erfindungsgemäße Schutzmechanismus kann die Applika- tionen vollständig voneinander kapseln, so dass mehrere virtuelle Chipkarten auf einer Hardware-Plattform sicher koexistieren können.According to the invention, the functionality of the respective applications or services is not limited. Services that reside in a protected address space can even emulate the full functionality of a previously common smart card operating system (eg debit card, access control, SIM card, health card, etc.) in an environment that is protected from other services , The protection mechanism according to the invention can completely encapsulate the applications, so that a plurality of virtual smart cards can reliably coexist on a hardware platform.
Mit anderen Worten ist es durch die erfindungsgemäße Lösung mittels des Multi-Tasking Kernels möglich, in strikt voneinander getrennten Bereichen auf einer Hardware-Plattform, insbesondere auf ein und derselben Chipkarte, mehrere "virtuelle" Chipkarten anzubieten. Die einzelnen Applikationen, die jeweils "virtuelle Chipkarten" realisieren, sind dabei nicht mehr - wie bei klassischen Betriebssystemen aus dem Stand der Technik - um die Kommando-Schnittstelle gruppiert, sondern werden als Services über die Funkti- onen des zentralen Multi-Tasking Kernels gesteuert.In other words, it is possible by means of the multi-tasking kernel according to the invention to offer several "virtual" chip cards in strictly separate areas on a hardware platform, in particular on one and the same chip card. The individual applications, each of which realizes "virtual chip cards", are no longer grouped around the command interface, as in the case of classic state-of-the-art operating systems, but are controlled as services via the functions of the central multi-tasking kernel ,
Ein weiterer zentraler Aspekt der vorliegenden Erfindung ist in dem Speicherschutz zu sehen. Erfindungsgemäß ist im Multi-Tasking Kernel ein Speicherschutz für plattformabhängigen Programmcode realisiert. Damit können die vorstehend erwähnten Nachteile des interpreter-basierten Speicherschutzes von den aus dem Stand der Technik bekannten Betriebssystemen überwunden werden.Another central aspect of the present invention is seen in memory protection. According to the invention, memory protection for platform-dependent program code is implemented in the multi-tasking kernel. With that you can the above-mentioned disadvantages of the interpreter-based memory protection are overcome by the operating systems known from the prior art.
In einer vorteilhaften Weiterbildung der Erfindung greift der Multi-Tasking Kernel auf einen Mechanismus zur Unterstützung der Trennung der Adressräume zu, insbesondere auf eine Memory-Management-Unit (kurz: MMU) und/ oder auf eine Memory-Protection-Unit (kurz: MPU). Ein Vorteil dieses Mechanismus ist es, dass eine deutlich verbesserte Sicherheitssituation er- reicht werden kann, im Vergleich zu einem rein software-basierten Interpreter oder einer virtuellen Maschine aus dem Stand der Technik.In an advantageous development of the invention, the multi-tasking kernel accesses a mechanism for supporting the separation of the address spaces, in particular a memory management unit (MMU for short) and / or a memory protection unit (MPU for short) ). An advantage of this mechanism is that a significantly improved security situation can be achieved compared to a purely software-based interpreter or a virtual machine of the prior art.
Durch den Einsatz des Multi-Tasking Kernels an zentraler Stelle, das heißt auf der hierarchisch höchsten Prioritätsstufe, können mehrere, gleichzeitig aktive Applikationen auf einer Chipkarte ausgeführt werden. Dadurch wird die Möglichkeit eröffnet, dass einzelne Applikationen parallel und damit gleichzeitig auf nicht-konfligierende Ressourcen zugreifen können, und z.B. Daten über möglicherweise unterschiedliche Input-/Outpunt-Interfaces mit externen oder internen Systemen austauschen können. Kumulativ oder al- ternativ können auch Daten im Hintergrund von einer Applikation bearbeitet, insbesondere vorbereitet, werden, ohne dass dies explizit über eine externe Kommunikation getriggert wurde.By using the multi-tasking kernel at a central location, ie at the hierarchically highest priority level, several simultaneous active applications can be executed on a chip card. This opens up the possibility that individual applications can access non-conflicting resources in parallel and thus simultaneously, and e.g. Exchange data via possibly different input / outpunt interfaces with external or internal systems. Cumulatively or alternatively, data in the background can also be processed, in particular prepared, by an application, without this being triggered explicitly via external communication.
Der Multi-Tasking Kernel sieht vor, dass Prioritäten, insbesondere in Bezug auf einzelne Applikationen oder Applikationsgruppen, vergeben werden können und, dass eine Rechenzeitkontrolle erfolgt. Durch die Überwachung der Prioritäten und der Rechenzeit kann der Multi-Tasking Kernel sicherstellen, dass die einer Applikation zur Verfügung stehende Rechenzeit bzw. Ausführungszeit beschränkt ist und dass die durch den Multi-Tasking Ker- - li ¬The multi-tasking kernel provides that priorities can be assigned, in particular with regard to individual applications or application groups, and that a calculation time control takes place. By monitoring priorities and computation time, the multi-tasking kernel can ensure that the computational time or execution time available to an application is limited and that the multi-tasking kernel - li ¬
nd vorgegebenen Beschränkungen auch nicht manipuliert werden. Eine Beschränkung der Rechenzeit wird dadurch erreicht, dass der Verbrauch der Rechenzeit vom Multi-Tasking Kernel kontrolliert wird und die Rechenzeit in Form von Zeitquanten dezidiert den Applikationen zugewiesen wird. Die Manipulationssicherheit wird dadurch erreicht, dass ausschließlich der Multi-Tasking Kernel in einem höher privilegierten Betriebsmodus läuft, während alle Applikationen in einem hierarchisch niedriger angeordneten Anwendermodus arbeiten.and given restrictions are not manipulated. A limitation of the computing time is achieved by controlling the consumption of the computing time by the multi-tasking kernel and assigning the computing time in the form of time quanta decidedly to the applications. Tamper protection is achieved by running only the multi-tasking kernel in a more privileged mode of operation, while all applications operate in a hierarchically lower-level user mode.
Neben der Synchronisation von aktiven Prozessen hat der Multi-Tasking Kernel jedoch noch weitere Aufgaben. So dient er erfindungsgemäß ebenso zur Verwaltung der Ressourcen der Chipkarte (wie z. B. Speicher und Schnittstellen). Die Ressourcen können von der Applikation beim ersten Laden oder dynamisch zur Laufzeit beim Multi-Tasking Kernel angefordert werden. Der Multi-Tasking Kernel entscheidet alleine und in erster Instanz, ob die Ressourcen exklusiv einer Applikation zugewiesen werden oder nicht. In nächster Instanz kann die Applikation weiteren Sub- Applikationen Rechte weiterreichen, die kleiner oder gleich der Rechte sind, die ihr zuvor vom Multi-Tasking Kernel eingeräumt worden sind. Somit ist auch eine Unter- vergäbe bzw. einer Weitervergabe von Rechten an untergeordnete SubApplikationen vorgesehen.In addition to the synchronization of active processes, the multi-tasking kernel has more tasks. Thus, according to the invention, it also serves to manage the resources of the chip card (such as memories and interfaces). The resources can be requested by the application at the first loading or dynamically at runtime at the multi-tasking kernel. The multi-tasking kernel decides alone and in the first instance, whether the resources are assigned exclusively to an application or not. In the next instance, the application can pass on further sub-applications rights that are smaller or equal to the rights granted to it by the multi-tasking kernel. Thus, subcontracting or subcontracting of rights to subordinate subapplications is envisaged.
Des Weiteren dient der Multi-Tasking Kernel dazu, Mechanismen zum sicheren Datenaustausch zwischen den einzelnen Applikationen bereitzustel- len. Der durch den Multi-Tasking Kernel gesteuerte und/ oder überwachte Datenaustausch zwischen den Applikationen basiert grundsätzlich auf dem Prinzip, dass der Datenaustausch ausschließlich unter Kontrolle des Multi- Tasking Kernels erfolgt. Hierfür sind grundsätzlich zwei Alternativen vorgesehen: 1.- Die beteiligten Applikationen stehen in Datenaustausch bzw. können entsprechende Nachrichten über spezielle Multi-Tasking Kernel- Funktionsaufrufe austauschen.Furthermore, the multi-tasking kernel serves to provide mechanisms for secure data exchange between the individual applications. The data exchange between the applications controlled and / or monitored by the multi-tasking kernel is fundamentally based on the principle that the data exchange takes place exclusively under the control of the multi-tasking kernel. There are basically two alternatives for this: 1.- The participating applications are exchanging data or can exchange corresponding messages via special multi-tasking kernel function calls.
2. Die beteiligten Applikationen können Daten über vordefinierte Spei- cherbereiche austauschen, die mehreren - in diesem Fall den aktiven -2. The participating applications can exchange data via predefined memory areas that contain several - in this case the active -
Applikationen gemeinsam zur Verfügung stehen.Applications are available together.
Grundsätzlich ist es vorgesehen, dass jede Applikation selbst entscheidet, ob und welche Daten sie anderen Applikationen zur Verfügung stellt. Mit der erfindungsgemäßen Lösung wird also der Vorteil erreicht, dass unterschiedliche Anwendungen auf einer Chipkarte integriert werden können, die jedoch sicher voneinander abgeschottet sind.Basically, it is envisaged that each application itself decides whether and which data it makes available to other applications. With the solution according to the invention, therefore, the advantage is achieved that different applications can be integrated on a chip card, but they are securely sealed off from each other.
Ein wesentlicher Vorteil der erfindungsgemäßen Lösung ist des weiteren darin zu sehen, dass der grundsätzliche Vorteil der Flexibilität, der unter anderem auch im Stand der Technik durch den Ansatz von nachladbarem Programmcode erreicht werden kann, auch mit der erfindungsgemäßen Lösung aufrechterhalten und sogar deutlich verbessert werden kann. Grundsätzlich ist es möglich, auch nach Kartenausgabe Komponenten, insbesondere Sys- temkomponenten, im Chipkarten-Betriebssystem auszutauschen oder neue Komponenten hinzuzufügen, wie z. B. Updates, oder Komponenten die dem Bug-fixing (der Fehlerbeseitigung) oder dergleichen dienen.A significant advantage of the solution according to the invention is further to be seen in the fact that the fundamental advantage of flexibility, which can be achieved inter alia in the prior art by the approach of reloadable program code, can be maintained even with the inventive solution and even significantly improved , In principle, it is also possible to exchange components, in particular system components, in the chip card operating system or to add new components even after the card has been issued, such as eg. As updates, or components that serve the bug-fixing (debugging) or the like.
In der bevorzugten Ausführungsform der Erfindung ist es vorgesehen, dass grundsätzlich hardwarenahe Systemkomponenten - wie vorstehend erwähnt - in dem Chipkarten-Betriebssystem, die nicht über eine interpreter-basierte Programmiersprache implementiert sind, wie z. B. Krypto-Routinen, Treiber für Input-/ Output-Schnittstellen etc., nach Kartenausgabe ausgetauscht werden können. Dieser Austausch erfolgt, ohne dass ungewollte und/ oder schädigende Einflüsse auf andere Komponenten ausgeführt werden, da der Speicherschutz des Multi-Tasking Kernels eine Beeinflussung von anderen Komponenten bzw. Betriebssystemkomponenten durch den ausgetauschten Service unterbindet. In einer vorteilhaften Weiterbildung der Erfindung ist es jedoch möglich, diesen Ansatz nicht nur auf Betriebssystemkomponenten anzuwenden, sondern auch auf andere Komponenten des Chipkartensystems, die somit auch nach Kartenausgabe ausgetauscht werden können, wenn es die jeweilige Anwendung ohne eine Verursachung von weiteren Fehlern ermöglicht. Damit kann das auf dem mobilen Datenträger basieren- de System sehr flexibel eingesetzt werden und ist leicht veränderbar.In the preferred embodiment of the invention, it is provided that basically hardware-related system components - as mentioned above - in the smart card operating system, which are not implemented via an interpreter-based programming language, such. As crypto routines, drivers for input / output interfaces, etc., can be exchanged for card output. This exchange takes place without unwanted and / or damaging influences on other components, because the memory protection of the multi-tasking kernel prevents any influence on other components or operating system components by the exchanged service. In an advantageous development of the invention, however, it is possible to apply this approach not only to operating system components, but also to other components of the smart card system, which can thus also be exchanged for card output, if the respective application allows it without causing further errors. Thus, the system based on the mobile data carrier can be used very flexibly and is easily changeable.
Ein weiterer Vorteil der erfindungsgemäßen Lösung ist darin zu sehen, dass die Möglichkeiten des Datentransfers in Bezug auf die mobilen Datenträger erweitert werden können. Durch die Steuerung des Multi-Tasking Kernels wird es möglich, notwendige Kommunikationsprozesse optimiert zu trig- gern, dass eine parallele oder gleichzeitige Kommunikation mit internen o- der externen Modulen über mehrere gleiche oder andersartige Hardware- Schnittstellen erfolgt. Mit anderen Worten kann ein auf dem erfindungsgemäßen Multi-Tasking Kernel basierendes Chipkartensystem die quasi- parallele Ausführung von Programmcode dazu nutzen, Daten gleichzeitig über unterschiedliche Input-/ Output-Schnittstellen, z. B. über eine kontaktlose Schnittstelle nach dem Standard ISO14443 oder nach dem NFC-Standard (Near Field Communication) und parallel dazu über eine kontaktbehaftete Schnittstelle nach dem ISO7816-Standard auszutauschen. Damit können ins- gesamt die Hardware-Ressourcen des mobilen Datenträgers deutlich besser ausgenutzt werden, was insgesamt zu erhöhter Abarbeitungsgeschwindigkeit des Datenträgers führt. In der Regel sind zwei Betriebsmodi für den Betrieb des mobilen Datenträgers vorgesehen: Ein privilegierter Modus, in dem der zentrale Multi- Tasking Kernel abläuft, dem weitergehende Rechte eingeräumt sind als einem zweiten Modus, in dem grundsätzlich alle Anwendungen und/ oder Prozesse bzw. Applikationen arbeiten. Je nach Anwendung des mobilen Datenträgers ist es jedoch ebenso möglich, hier noch weitere Privilegierungsstu- fen vorzusehen. Notwendig ist es jedoch, dass der zentrale Multi-Tasking Kernel jeweils am höchsten privilegiert ist, um eine zentrale Steuerung des gesamten Betriebs des Datenträgers zu ermöglichen.Another advantage of the solution according to the invention is the fact that the possibilities of data transfer in relation to the mobile data carriers can be extended. By controlling the multi-tasking kernel, it becomes possible to trigger necessary communication processes in an optimized manner so that parallel or simultaneous communication with internal or external modules takes place via a number of identical or different types of hardware interfaces. In other words, a chip card system based on the multi-tasking kernel according to the invention can use the quasi-parallel execution of program code to simultaneously transfer data via different input / output interfaces, eg. B. via a contactless interface according to the standard ISO14443 or the NFC standard (Near Field Communication) and in parallel to replace it via a contact interface according to the ISO7816 standard. Overall, the hardware resources of the mobile data carrier can be utilized much better, which leads to an increased processing speed of the data carrier overall. In general, two operating modes for the operation of the mobile data carrier are provided: A privileged mode in which runs the central multi-tasking kernel, the rights are granted more than a second mode in which basically all applications and / or processes or applications work. Depending on the application of the mobile data carrier, however, it is also possible to provide further privilege levels here. However, it is necessary that the central multi-tasking kernel is in each case the most privileged in order to enable central control of the entire operation of the data carrier.
Grundsätzlich basiert der erfindungsgemäße Multi-Tasking Kernel auf einem Scheduling-Mechanismus, der darauf ausgerichtet ist, im Hinblick auf die Gesamtheit aller auf dem Datenträger ablaufenden Prozesse (umfassend Betriebssystemprozesse und Applikationsprozesse) eine optimierte Ausfüh- rung oder Abwicklung aller Prozesse zu bewerkstelligen.In principle, the multi-tasking kernel according to the invention is based on a scheduling mechanism which is geared towards achieving an optimized execution or execution of all processes with regard to the entirety of all processes running on the data carrier (comprising operating system processes and application processes).
In einer bevorzugten Weiterbildung der Erfindung ist es vorgesehen, dass der Scheduling-Mechanismus auf einen Optimierungs- Algorithmus zugreift, der den Betrieb des Datenträgers hinsichtlich einem oder mehreren der fol- genden Optimierungskriterien optimiert: eine Optimierung hinsichtlich Zeit, insbesondere bezüglich einer Abarbeitungsgeschwindigkeit, bezüglich einer Verweilzeit von Prozessen im Arbeitsspeicher und/ oder einer Antwortzeit der Prozesse; eine Optimierung hinsichtlich der System-Ressourcen, insbesondere Hardware-Ressourcen; eine Optimierung hinsichtlich Speicherplatzbedarf und eine Optimierung hinsichtlich des notwendigen Datentransferns. In* alternativen Ausführungsformen sind noch weitere Optimierungskriterien konfigurierbar. Dies hat den Vorteil, dass die erfindungsgemäße Lösung sehr flexibel hinsichtlich der grundsätzlichen Prozessabwicklung ist. Das Betriebssystem der Chipkarte ist somit nicht auf ein bestimmtes Optimierungs- kriterium hin beschränkt. Üblicherweise wird der konfigurierbare Mechanismus aufgrund vordefinierter Eingabeparameter festgelegt. Die Eingabeparameter können über entsprechende Schnittstellen eingelesen werden. Alternativ ist es möglich, dass für bestimmte Anwendungen eine bevorzugte Behandlung der jeweiligen Applikation stattfindet. Dann kann der Multi- Tasking Kernel einer bestimmten Applikation alle oder ausgewählte Ressourcen exklusiv zuweisen. Die Ausbildung dieses Merkmals ist erfindungsgemäß jedoch nicht notwendig und lediglich optional.In a preferred development of the invention, it is provided that the scheduling mechanism accesses an optimization algorithm which optimizes the operation of the data carrier with regard to one or more of the following optimization criteria: optimization with regard to time, in particular with respect to a processing speed Dwell time of processes in the main memory and / or a response time of the processes; an optimization in terms of system resources, in particular hardware resources; an optimization in terms of space requirements and an optimization in terms of the necessary data transfer. In * alternative embodiments further optimization criteria are configurable. This has the advantage that the solution according to the invention is very flexible with regard to the basic processing of the process. The operating system of the chip card is thus not limited to a specific optimization criterion. Usually, the configurable mechanism is set based on predefined input parameters. The input parameters can be read in via corresponding interfaces. Alternatively, it is possible that for certain applications, a preferred treatment of the respective application takes place. Then, the multi-tasking kernel can exclusively allocate all or selected resources to a particular application. However, the formation of this feature according to the invention is not necessary and only optional.
In alternativen Ausführungsformen ist es auch möglich, andere Algorithmen zum Scheduling der Prozesse zum Betrieb des Datenträgers vorzusehen. So ist es z. B. möglich, das Scheduling- Verfahren durchsatz-basiert und/ oder auslastungs-basiert auszubilden.In alternative embodiments, it is also possible to provide other algorithms for scheduling the processes for operating the data carrier. So it is z. For example, it is possible to design the scheduling method throughput-based and / or utilization-based.
Damit die Aufgabe des Scheduling- Verfahrens umgesetzt werden kann ist es notwendig, dass der Multi-Tasking Kernel automatisch für jeden Prozess, dessen Ausführungszeit erfasst und kontrolliert. Des Weiteren wird eine Beschränkung für die Ausführungszeit jedes Prozesses vorgegeben (dies erfolgt nach dem Mechanismus: "Wie lange darf welcher Prozess dauern?"). Daraufhin ist es möglich, dass der Scheduling-Mechanismus automatisch die Ausführungszeit für eine jeweilige Applikation beschränkt, indem der Verbrauch der Rechenzeit kontrolliert und indem die Einhaltung der Beschränkungen überwacht wird. Optional kann auch eine verschachtelte bzw. verschränkte Verarbeitung von Prozessen gefahren werden, so dass insgesamt die Ausführungszeit aller notwendigen Prozesse auf dem Datenträger optimiert werden kann. Nach dem optimierten Scheduling- Verfahren wird dann Rechenzeit an den jeweiligen Prozess bzw. an die jeweilige Applikation zugewiesen.In order for the task of the scheduling process to be implemented, it is necessary for the multi-tasking kernel to automatically record and control the execution time for each process. Furthermore, a limitation is imposed on the execution time of each process (this is done according to the mechanism: "how long may which process last?"). Thereupon, it is possible for the scheduling mechanism to automatically limit the execution time for a given application by controlling the consumption of the computation time and by monitoring compliance with the constraints. Optionally, a nested or cross-processed processing of processes can be driven, so that the total execution time of all necessary processes on the disk can be optimized. According to the optimized scheduling method, computer time is then allocated to the respective process or to the respective application.
Im Rahmen des Schedulings ist es möglich, dass einzelnen Applikationen und/ oder einzelnen Prozessen Prioritäten zugewiesen werden, die bei dem Scheduling berücksichtigt werden. Darüber hinaus ist es möglich, dass ein Prozess seine Priorität an untergeordnete Subprozesse weitervererbt.In the context of scheduling, it is possible for individual applications and / or individual processes to be assigned priorities which are taken into account in the scheduling. In addition, it is possible for a process to pass its priority on to subordinate subprocesses.
In diesem Zusammenhang ist auf einen weiteren wesentlichen Aspekt der erfindungsgemäßen Lösung hinsichtlich eines verbesserten Sicherheitsansatzes hinzuweisen. Wie bereits erwähnt, können Chipkarten auch in Endgeräten, wie z. B. in Mobiltelefonen eingesetzt werden und sind in diesem Fall als SIM-Karte ausgebildet. In diesem Anwendungsfall sind üblicherweise noch weitere Schnittstellen, wie z. B. USB- oder MMC-Schnittstellen an dem SIM- Kontakten im Mobiltelefon vorgesehen, über die weitere Sicherheits-Devices angesprochen werden können, z. B. SecureMMC-Karten etc. Werden Chipkarten in Mobiltelefonen oder anderen mobilen Endgeräten eingesetzt, so ist es also häufig der Fall, dass Sicherheitsmodule bzw. Sicherheitskomponen- ten, die Sicherheitsüberprüfungen durchführen sollen, in dem System verteilt ausgebildet sind. Diese Verteilung von sicherheitskritischen Funktionen auf unterschiedliche Systeme und Komponenten in den chipkartenbezoge- nen Bauteilen bzw. Geräten führt zu mehreren Nachteilen. So erhöhen sich zum Einen die Herstellungskosten, da mehrere Hardware-Elemente zum Einsatz kommen müssen und zum Anderen ist die Fehleranfälligkeit des Systems insgesamt deutlich erhöht, da durch die Vielzahl der Module eine erhöhte Anfälligkeit für Sicherheitslücken besteht. Darüber hinaus ist es durch die bisherige verteilte Realisierung von sicherheitsrelevanten Funktionen notwendig, in einem erhöhten Maß Daten zu transferieren. Dies führt wiederum zu einer Sicherheitslücke, da grundsätzlich jeder Datentransfer ein Sicherheitsrisiko in sich birgt. Mit dem multi-tasking-f ähigen erfindungsgemäßen Betriebssystem wird es jedoch möglich, dass die Chipkarte, die mit diesem System betrieben wird, mehr Funktionen übernehmen kann, unter anderem neben den klassischen standardisierten Funktionen (im vorstehenden Beispiel neben der reinen SIM-Funktionalität) noch weitere sicherheitstechnische Funktionen. Zum anderen wird es mit diesem Ansatz möglich, alle Sicherheitsfunktionen zentral an einer Stelle des Systems zu integrieren.In this context, reference should be made to another essential aspect of the inventive solution with regard to an improved safety approach. As already mentioned, smart cards can also be used in terminals such. B. are used in mobile phones and are formed in this case as a SIM card. In this application, usually other interfaces, such. B. USB or MMC interfaces to the SIM contacts in the mobile phone provided, can be addressed via the other security devices, eg. As smart cards are used in mobile phones or other mobile devices, so it is often the case that security modules or security components that should perform security checks are designed distributed in the system. This distribution of safety-critical functions to different systems and components in the chip card-related components or devices leads to several disadvantages. On the one hand, the production costs increase, since several hardware elements have to be used, and on the other hand, the overall susceptibility of the system to errors is significantly increased, since the multiplicity of modules increases vulnerability to security gaps. In addition, it is necessary through the previous distributed realization of safety-related functions to transfer data to an increased extent. this leads to again to a security gap, since basically every data transfer carries a security risk in itself. However, with the multi-tasking operating system according to the invention, it is possible that the smart card which is operated with this system can take over more functions, among other things in addition to the classic standardized functions (in the above example in addition to the pure SIM functionality) additional safety functions. On the other hand, this approach makes it possible to integrate all security functions centrally at one point in the system.
In einer bevorzugten Ausführungsform der Erfindung ist es deshalb vorgesehen, ein Sicherheitsmodul vorzusehen, das so genannte Trust- Management-Modul (im Folgenden kurz als TMM abgekürzt). Dieses Modul wird ebenfalls von dem Multi-Tasking Kernel gesteuert. Das TMM-Modul kann unterschiedliche sicherheitskritische Aufgaben in einer geschützten Umgebung übernehmen, wie z. B. neben der reinen SIM-Funktionalität eine DRM-Authentisierung (DRM steht für Digital Rights Management und betrifft ein Kontrollsystem zur Überprüfung einer Übertragung von geschützten bzw. zu schützenden Inhalten). Darüber hinaus können andere Autori- sierungs-Mechanismen unterstützt werden.In a preferred embodiment of the invention, it is therefore provided to provide a security module, the so-called trust management module (abbreviated hereafter as TMM). This module is also controlled by the multi-tasking kernel. The TMM module can perform various safety-critical tasks in a protected environment, such as: B. in addition to the pure SIM functionality, a DRM authentication (DRM stands for Digital Rights Management and concerns a control system for checking a transmission of protected or protected content). In addition, other authorization mechanisms can be supported.
Das TMM-Modul kann sowohl physikalisch als Hardwarebauteil ausgebildet sein. Es ist jedoch auch möglich, das Modul oder einzelne Funktionalitäten des Moduls als Software bzw. als Computerprogrammprodukt vorzusehen, die auf einem bestimmten Sicherheitsprozessor z. B. auf einem Secure-ARM- Core laufen.The TMM module can be designed both physically and as a hardware component. However, it is also possible to provide the module or individual functionalities of the module as software or as a computer program product, which can be used on a specific security processor z. For example, on a secure ARM core.
An dieser Stelle soll explizit darauf hingewiesen werden, dass alle von dem zentralen Multi-Tasking Kernel ansprechbaren Module sowohl in Hardware als auch in Software realisiert werden können, was die Flexibilität des Systems insgesamt erhöht.At this point, it should be explicitly stated that all modules that can be addressed by the central multi-tasking kernel can be used both in hardware as well as in software, which increases the overall flexibility of the system.
Ein wichtiger Vorteil im Zusammenhang mit den Sicherheitsaspekten des TMM-Moduls ist darin zu sehen, dass Sicherheitsfunktionen flexibel nachgeladen werden können. Darüber hinaus ist es möglich, die Funktionalität, die das erfindungsgemäße TMM-Modul unterstützt, im Unterschied zum Stand der Technik deutlich zu erhöhen. Damit kann das erfindungsgemäß vom Multi-Tasking Kernel betriebene TMM-Modul deutlich mehr Funktionalitä- ten bieten, als es z.B. von Javacard- Applets bekannt ist. Dazu gehören plattformabhängige Treiber für Sicherheitsprotokolle, wie IFSec oder SSL/ TLS oder Authorisierungssysteme für das Digital Rights Management im Zusammenhang mit Multimedia-Inhalten.An important advantage in connection with the security aspects of the TMM module is that security functions can be reloaded flexibly. In addition, it is possible to significantly increase the functionality that supports the TMM module according to the invention, in contrast to the prior art. In this way, the TMM module operated by the multi-tasking kernel according to the invention can offer significantly more functions than e.g. of javacard applets. These include platform-dependent security protocol drivers, such as IFSec or SSL / TLS, or digital rights management authorization systems related to multimedia content.
Ein wesentlicher, vorteilhafter Aspekt des erfindungsgemäßen TMM-Moduls ist des Weiteren darin zu sehen, dass es auch selbst aktiv Sicherheitsüberprüfungen durchführen kann. Dies ist bei bisherigen TPM-Modulen nicht der Fall (Trusted Platf orm Module, kurz TPM, ist ein Sicherheitsstandard, der von der Trusted Computing Group entwickelt worden ist; die Module dieses Standards werden grundsätzlich als System-on-Chip realisiert). Im Gegensatz zu den bekannten TPM-Modulen aus dem Stand der Technik wird das erfindungsgemäße TMM-Modul nicht als reiner Slave betrieben, der nur auf Anfragen einer anderen Instanz antwortet, sondern das TMM-Modul kann auch selbständig Aktionen steuern. Dieses Merkmal der selbstständigen Steuerung ist jedoch nicht zwingend und nur fakultativ.A significant, advantageous aspect of the TMM module according to the invention is further to be seen in the fact that it can also actively perform security checks itself. This is not the case with previous TPM modules (Trusted Platform Module, TPM for short, is a security standard developed by the Trusted Computing Group, the modules of which are basically implemented as system-on-chip). In contrast to the known TPM modules of the prior art, the TMM module according to the invention is not operated as a pure slave, which only responds to requests from another entity, but the TMM module can also control actions independently. However, this self-contained control feature is not mandatory and only optional.
Insgesamt kann durch den erfindungsgemäßen Betrieb der Chipkarte mit einem TMM-Modul ein verbesserter Speicherschutz erzielt werden. Durch das multi-tasking-fähige Betriebssystem können unterschiedliche sicher- heitskritische Aufgaben in einem Sicherheitssystem, insbesondere in einem spezifischen Chipkartenprozessor, untergebracht und damit realisiert werden.Overall, an improved memory protection can be achieved by the inventive operation of the chip card with a TMM module. Due to the multi-tasking-capable operating system, different security mission-critical tasks in a security system, in particular in a specific chip card processor, housed and thus realized.
Es gibt unterschiedliche Ausführungsformen, in denen das TMM-Modul auf dem mobilen Datenträger realisiert sein kann. So ist es möglich, das TMM- Modul steckbar oder fest verdrahtet zu realisieren, oder es kann bereits auf dem Halbleiter integriert sein. Darüber hinaus ist es möglich, das Modul ü- ber unterschiedliche Protokolle, wie z. B. über das ISO7816 T=O oder T=I, über eine USB- oder über eine MMC-Schnittstelle oder allgemein über den Prozessorbus anzuschließen. Darüber hinaus ist es optional möglich, einen TCP-IP/ Stack auf dem Schicht2-Protokoll vorzusehen.There are different embodiments in which the TMM module can be implemented on the mobile data carrier. Thus, it is possible to implement the TMM module pluggable or hardwired, or it may already be integrated on the semiconductor. In addition, it is possible to use the module via different protocols, such. Via the ISO7816 T = O or T = I, via a USB or via an MMC interface or generally via the processor bus. In addition, it is optionally possible to provide a TCP-IP / Stack on the Layer 2 protocol.
Weitere Lösungen der eingangs erwähnten Aufgabe liegen in einem Be- triebssystem oder in Betriebssystemkomponenten, in einem mobilen Datenträger, in einem Mikroprozessor zum Einsetzen in den mobilen Datenträger, in einem Computerprogrammprodukt und in einem Verfahren zum Herstellen oder zum Warten des mobilen Datenträgers gemäß den beiliegenden Hauptansprüchen. Grundsätzlich ist in diesem Zusammenhang darauf hin- zuweisen, dass die Beschreibung der Erfindung auf eine Beschreibung des erfindungsgemäßen Verfahrens gestützt ist. Vorteilhafte Ausführungsform, Vorteile und Weiterbildungen, die im Zusammenhang mit dem Verfahren beschrieben werden, gelten entsprechend auch für die anderen Lösungen der Erfindung, insbesondere durch den mobilen Datenträger, den Mikroprozes- sor und das Computerprogrammprodukt. Demnach können die vorstehend genannten Lösungen auch mittels der Merkmale aus den Unteransprüchen zu dem erfindungsgemäßen Verfahren weitergebildet sein. Die vorstehend beschriebenen, erfindungsgemäßen Ausführungsformen des Verfahren können auch als Computerprogrammprodukt ausgebildet sein, mit einem von einem Computer lesbaren Medium und mit einem Computerprogramm und zugehörigen Programmcode-Mitteln, wobei der Computer nach Laden des Computerprogramms zur Durchführung des oben beschriebenen, erfindungsgemäßen Verfahrens veranlasst wird.Further solutions of the above-mentioned object are in an operating system or in operating system components, in a mobile data carrier, in a microprocessor for insertion into the mobile data carrier, in a computer program product and in a method for producing or servicing the mobile data carrier according to the enclosed main claims , In principle, it should be pointed out in this connection that the description of the invention is based on a description of the method according to the invention. Advantageous embodiment, advantages and further developments, which are described in connection with the method, apply correspondingly to the other solutions of the invention, in particular by the mobile data carrier, the microprocessor and the computer program product. Accordingly, the abovementioned solutions can also be developed further by means of the features of the subclaims for the method according to the invention. The above-described embodiments of the method according to the invention can also be embodied as a computer program product with a computer-readable medium and with a computer program and associated program code means, the computer being prompted after loading of the computer program for carrying out the inventive method described above.
Eine alternative Aufgabenlösung sieht ein Speichermedium vor, das zur Speicherung des vorstehend beschriebenen, computer-implementierten Ver- fahrens bestimmt ist und von einem Computer lesbar ist.An alternative task solution provides a storage medium that is intended for storing the computer-implemented method described above and is readable by a computer.
Eine weitere Lösung der Aufgabe ist darin zu sehen, dass das oben beschriebene Verfahren als Betriebssystem oder Betriebssystemkomponente für einen mobilen Datenträger ausgebildet ist, der gemäß zumindest einem Merkmal des Verfahrens betrieben wird.A further solution of the problem can be seen in that the method described above is designed as an operating system or operating system component for a mobile data carrier which is operated in accordance with at least one feature of the method.
Zusätzliche, vorteilhafte Ausführungsformen ergeben sich aus den Unteransprüchen.Additional, advantageous embodiments emerge from the subclaims.
In der folgenden detaillierten Figurenbeschreibung werden nicht einschränkend zu verstehende Ausführungsbeispiele mit deren Merkmalen und weiteren Vorteilen anhand der Zeichnung besprochen. In dieser zeigen:In the following detailed description of the figures, non-limiting exemplary embodiments with their features and further advantages will be discussed with reference to the drawing. In this show:
Figur 1 eine schematische, übersichtsartige Darstellung eines erfin- dungsgemäßen Multi-Tasking Kernels, der den Betrieb des mobilen Datenträgers gemäß einer Ausführungsform der Erfindung steuert,FIG. 1 shows a schematic, overview-like representation of a multi-tasking kernel according to the invention, which controls the operation of the mobile data carrier according to an embodiment of the invention,
Figur 2 eine übersichtsartige Darstellung einer Aktivierung von Appli- kationen durch den erfindungsgemäßen Multi-Tasking Kernel gemäß einer bevorzugten Ausführungsform undFIG. 2 shows an overview of an activation of applications by the multi-tasking kernel according to the invention according to a preferred embodiment and
Figur 3 eine übersichtsartige Darstellung einer möglichen Strukturierung von Bauteilen eines erfindungsgemäßen Datenträgers.FIG. 3 shows an overview of a possible structuring of components of a data carrier according to the invention.
In der bevorzugten Ausfuhrungsform und im Folgenden ist ein mobiler Datenträger als Chipkarte C ausgebildet. Die Anwendungen der Chipkarte C sind jedoch grundsätzlich nicht begrenzt und können auf dem Gebiet des Zahlungsverkehrs, des Finanzwesens, der Zutrittskontrolle liegen. Des Wei- teren ist es möglich, dass die Chipkarte C zum Einsatz in weiteren Geräten, z. B. mobilen Endgeräten wie Telefonen, eingesetzt wird und es sich insbesondere um eine erfindungsgemäß erweiterte SIM-Karte handelt.In the preferred embodiment and in the following, a mobile data carrier is designed as a chip card C. The applications of the chip card C are, however, in principle not limited and can be in the field of payments, finance, access control. Furthermore, it is possible that the chip card C for use in other devices, eg. B. mobile devices such as telephones, is used and it is in particular an inventively extended SIM card.
Grundsätzlich wird die Chipkarte C selbst und die auf ihr ablaufenden Ap- plikationen A durch ein Betriebssystem gesteuert. Bei bisherigen Chipkarten- Betriebssystemen waren die Programm-Module des Betriebssystems üblicherweise in einem ROM-Speicherbaustein gespeichert (Read-Only-Memory ROM). Um den Nachteilen einer Speicherung von Betriebssystemkomponenten ausschließlich in den ROM-Speicher zu begegnen, kann es vorgesehen sein, einzelne Betriebssystemkomponenten auch in anderen Speicherbereichen, wie z.B. durch einen Arbeitsbereich in EEPROM, zu lösen. Zu den Hauptaufgaben eines Chipkarten-Betriebssystems zählen der Datenaustausch mit der Chipkarte, die Ablaufsteuerung der auszuführenden Befehle, die Dateiverwaltung und die Verwaltung und Ausführung von sicherheits- technischen Funktionen und Algorithmen, wie kryptografischen Schlüsseln etc. Darüber hinaus ist es möglich, in einem Bereich der hierarchisch über den Applikationsbefehlen angeordnet ist, einen Interpreter oder ein Prüfprogramm für ausführbare Dateien vorzusehen. Der Interpreter dient dazu, die in diesen Dateien enthaltenen Programme auszuführen oder sie zu interpre- tieren. Mit dieser Art von Betriebssystemen ist es möglich, Programmcode auch zu einem späteren Zeitpunkt, insbesondere nach Kartenausgabe, nachzuladen.In principle, the chip card C itself and the applications A running on it are controlled by an operating system. In previous smart card operating systems, the program modules of the operating system were usually stored in a ROM memory module (read-only memory ROM). To counteract the disadvantages of storing operating system components exclusively in the ROM memory, it may be provided to solve individual operating system components in other memory areas, such as by a workspace in EEPROM. The main tasks of a chip card operating system include the exchange of data with the chip card, the flow control of the commands to be executed, the file management and the management and execution of security functions and algorithms, such as cryptographic keys, etc. In addition, it is possible in a range of is arranged hierarchically above the application commands to provide an interpreter or a check program for executable files. The interpreter serves to execute or interpret the programs contained in these files. With this kind of operating systems it is possible to program code also to reload at a later date, especially after card issue.
Wie in Fig. 3 beispielhaft dargestellt, umfasst die Chipkarte C einen eingebet- teten MikroController, der alle Aktivitäten der Chipkarte C triggert, steuert und überwacht. Die wichtigsten, typischen Bausteine eines Chipkarten- Mikrocontrollers sind der Mikroprozessor MP, alle Schnittstellen SS der Chipkarte C, insbesondere der Adress- und Datenbus und die Datenspeicher DS, die alle unterschiedlichen Speicherarten umfassen, wie RAM, ROM und EEPROM. Die Schnittstellen SS der Chipkarte C umfassen alle Input-As shown by way of example in FIG. 3, the chip card C comprises an embedded microcontroller which triggers, controls and monitors all activities of the chip card C. The most important, typical components of a chip card microcontroller are the microprocessor MP, all interfaces SS of the chip card C, in particular the address and data bus and the data storage DS, which include all different types of memory, such as RAM, ROM and EEPROM. The interfaces SS of the chip card C include all input
/ Output-Schnittstellen für die Chipkarte C und betreffen somit den gesamten Datentransfer, der in Bezug auf die Chipkarte C anfällt./ Output interfaces for the smart card C and thus relate to the entire data transfer, which arises in relation to the smart card C.
Erfindungsgemäß ist zusätzlich zu diesen Bauteilen eine zentrale Steue- rungseinrichtung MTK vorgesehen, die insbesondere durch den Multi-According to the invention, in addition to these components, a central control device MTK is provided, which in particular is provided by the multi-component
Tasking Kernel gebildet wird. In Fig. 3 ist der Multi-Tasking Kernel MTK als separates Bauteil auf der Chipkarte C dargestellt. Dies soll verdeutlichen, dass der Multi-Tasking Kernel MTK - im Gegensatz zu den bekannten Chipkarten-Betriebssystemen - als zusätzliches Bauteil vorgesehen ist. In der Re- gel wird er jedoch nicht als separates, selbstständiges Bauteil vorgesehen sein, sondern in anderen Bereichen der Chipkarte als separates Modul integriert sein. Insbesondere wird er als modulare, separate Betriebssystemkomponente zusätzlich zu dem bisherigen Betriebssystem der Chipkarte C vorgesehen sein.Tasking kernel is formed. FIG. 3 shows the multi-tasking kernel MTK as a separate component on the chip card C. This should clarify that the multi-tasking kernel MTK - in contrast to the known chip card operating systems - is provided as an additional component. As a rule, however, it will not be provided as a separate, independent component, but rather integrated in other areas of the chip card as a separate module. In particular, it will be provided as a modular, separate operating system component in addition to the previous operating system of the chip card C.
Je nach Anwendung der Chipkarte C umfasst diese mehrere Applikationen bzw. Services A, die auf der Chipkarte ablaufen sollen. Im Rahmen dieser Erfindung sind die Begriffe "Applikation" A und "Service" A synonym zu verstehen. Eine Applikation A umfasst mehrere Befehle bzw. Prozesse, die zu unterschiedlichen Zeitpunkten ausgeführt werden müssen oder können. Eine Anwendung umfasst in der Regel mehrere Applikationen A. Es ist jedoch grundsätzlich auch möglich, dass eine sehr einfache Anwendung lediglich aus einer einzigen Applikation A besteht.Depending on the application of the chip card C this includes several applications or services A, which should run on the chip card. In the context of this invention, the terms "application" A and "service" A are to be understood as synonymous. An application A comprises a plurality of commands or processes which must or can be executed at different times. An application usually comprises several applications A. However, it is also possible in principle that a very simple application consists only of a single application A.
Durch den zentralen Multi-Tasking Kernel MTK wird die Möglichkeit geschaffen, auf ein und derselben Hardware-Plattform einer Chipkarte C meh- rere, sozusagen "virtuelle" Chipkarten anzubieten. Die einzelnen virtuellen Chipkarten sind dabei streng voneinander getrennt, da alle Applikationen und Befehle über den zentralen Multi-Tasking Kernel MTK gesteuert werden. Eine einseitige oder wechselseitige Beeinflussung von aktiven Applikationen oder Anwendungen wird damit durch den Multi-Tasking Kernel MTK sicher unterbunden.The central multi-tasking kernel MTK creates the possibility of offering several "virtual" chip cards on the same hardware platform of a chip card C, as it were. The individual virtual smart cards are strictly separated, since all applications and commands are controlled by the central multi-tasking kernel MTK. A one-sided or mutual influence of active applications or applications is thus reliably prevented by the multi-tasking kernel MTK.
Der Multi-Tasking Kernel MTK weist den Applikationen A entsprechende Kontingente an Rechenzeit und Ressourcen nach einem konfigurierbaren Scheduling- Verfahren zu. Wie in Fig. 1 exemplarisch dargestellt, stehen alle Applikationen A bzw. Chipkartenservices A mit dem Multi-Tasking Kernel MTK in Datenaustausch und werden von diesen gesteuert und ausgeführt. In Fig. 1 ist angedeutet, dass das Scheduling des Multi-Tasking Kernels MTK zeitbasiert ist. Dies soll durch die zeitscheibenartige Darstellung in Fig. 1 verdeutlicht werden. Der Multi-Tasking Kernel MTK überwacht und steuert zur Ausführungszeit die Abwicklung der einzelnen Applikationen. Mittels des konfigurierbaren Scheduling-Mechanismus wird jeweils einer Applikation automatisch ein Kontingent an Rechenzeit und Ressourcen zur Verfügung gestellt, die von der jeweiligen Applikation A genützt werden können. Die Ausführungszeit jeder Applikation A ist somit automatisch in einem konfigurierbaren Maß beschränkt.The multi-tasking kernel MTK assigns applications A the appropriate contingents of computing time and resources according to a configurable scheduling method. As shown by way of example in FIG. 1, all applications A or chip card services A are in data exchange with the multi-tasking kernel MTK and are controlled and executed by them. In Fig. 1 it is indicated that the scheduling of the multi-tasking kernel MTK is time-based. This is to be clarified by the time-slice-like representation in FIG. 1. The multi-tasking kernel MTK monitors and controls the execution of the individual applications at runtime. By means of the configurable scheduling mechanism, in each case an application is automatically provided with a quota of computing time and resources which can be utilized by the respective application A. The Execution time of each application A is thus automatically limited to a configurable level.
In der bevorzugten Ausführungsform der Erfindung muss der Multi-Tasking Kernel MTK eine Analyse des bestehenden Systemzustandes mit entsprechend zu triggernden Applikationen A ausführen und muss daraufhin die gesamte Abwicklung bzw. den Betrieb der Chipkarte C steuern, so dass im Hinblick auf die Gesamtheit aller auszuführenden Befehle eine optimierte Ausführung erfolgt. Dabei sind die Optimierungskriterien konfigurierbar: z. B. eine Optimierung hinsichtlich Zeit, Systemressourcen, Speicherplatz, Stromverbrauch etc.In the preferred embodiment of the invention, the multi-tasking kernel MTK must perform an analysis of the existing system state with applications A to be triggered accordingly and must then control the entire execution or operation of the chip card C, so that with regard to the totality of all commands to be executed an optimized execution takes place. The optimization criteria are configurable: z. As an optimization in terms of time, system resources, storage space, power consumption, etc.
Vor Ausführung einer jeweiligen Applikation A erfasst der Multi-Tasking Kernel MTK, wie viel Rechenzeit für die Ausführung notwendig ist und wie viel und/ oder welche Ressourcen erforderlich sind. Sollen nun mehrere Applikationen A ausgeführt werden, so kann der Multi-Tasking Kernel MTK aufgrund der Analyse der Rechenzeit und der benötigten Ressourcen aller Applikationen einen optimierte Abwicklung einzelner Prozesse, die den jeweiligen Applikationen A zugeordnet sind, triggern. Hat z. B. eine erste Ap- plikation A1 die Aufgabe, Daten über eine kontaktlose Schnittstelle an ein externes Modul weiterzuleiten und hat z. B. eine zweite Applikation A2 die Aufgabe, Daten von einem weiteren externen Modul über eine kontaktbehaftete Schnittstelle zu empfangen, so kann der Multi-Tasking Kernel MTK eine quasi-parallele, das heißt gleichzeitige Aktivierung der beiden Applikationen A1 und A2 veranlassen, da die beiden Applikationen auf unterschiedliche Ressourcen (in diesem Fall unterschiedliche Schnittstellen SS) zugreifen. Damit kann der bei bisherigen Systemen aus dem Stand der Technik sequen- zielle Abarbeitungspfad von Befehlen parallelisiert werden und auf mehrere gleichläufige Prozesse aufgeteilt werden, so dass insgesamt die Performance gesteigert werden kann.Before executing a respective application A, the multi-tasking kernel MTK records how much computation time is required for execution and how much and / or what resources are required. If now several applications A are to be executed, the multi-tasking kernel MTK can trigger an optimized execution of individual processes, which are assigned to the respective applications A, based on the analysis of the computing time and the required resources of all applications. Has z. For example, a first application A 1 has the task of forwarding data via a contactless interface to an external module and has, for example, B. a second application A 2 task to receive data from another external module via a contact-type interface, the multi-tasking kernel MTK can cause a quasi-parallel, that is, simultaneous activation of the two applications A 1 and A2, da the two applications access different resources (in this case different interfaces SS). This makes it possible to parallelize the processing path of instructions that is sequential in prior art systems of the prior art and to make them more common be shared, so that the overall performance can be increased.
Durch das Betreiben der Chipkarte C mit dem erfindungsgemäßen Multi- Tasking Kernel MTK ist es möglich, mehrere nebenläufige Threads zu realisieren, falls keine konkurrierenden bzw. konfligierenden Zugriffe auf gleiche Ressourcen notwendig sind. Es kann vorgesehen sein, dass der Multi- Tasking Kernel MTK auf ein zeitbasiertes Scheduling zugreift, falls er einen konkurrierenden Zugriff von unterschiedlichen Applikationen zur selben Zeit auf gleiche Ressourcen erfasst. Das zeitbasierte Scheduling sieht dann vor, dass die Gesamtheit der auszuführenden Prozesse der beiden Applikationen Ai und A2 so gesteuert wird, dass insgesamt (also im Hinblick auf die Gesamtheit der beiden Applikationen Ai und A2) eine optimierte, insbesondere zeit-optimierte, Ausführung ermöglicht wird. Damit ist es z. B. möglich, Daten einer Anwendung Ai im Hintergrund vorbereiten zu lassen, während eine andere Anwendung A2 z. B. mit einem externen System über Schnittstellen SS kommuniziert.By operating the chip card C with the multi-tasking kernel MTK according to the invention, it is possible to realize several concurrent threads, if no concurrent or conflicting accesses to the same resources are necessary. It can be provided that the multi-tasking kernel MTK accesses time-based scheduling if it detects concurrent access from different applications to the same resources at the same time. The time-based scheduling then provides that the entirety of the processes to be executed in the two applications Ai and A2 is controlled in such a way that overall (ie with regard to the entirety of the two applications Ai and A2) an optimized, in particular time-optimized, version is made possible , This is z. B. possible to prepare data of an application Ai in the background, while another application A2 z. B. communicates with an external system via interfaces SS.
In Fig. 2 ist schematisch dargestellt, wie der Multi-Tasking Kernel MTK un- terschiedliche Applikationen Ai, A2, A3 auf optimierte Weise aktiviert.FIG. 2 schematically shows how the multi-tasking kernel MTK activates different applications Ai, A2, A3 in an optimized manner.
Die in Fig. 2 dargestellten Applikationen Ai und A2 werden jeweils durch externe Systeme verursacht. Dies kann z. B. eine Kontoumsatzanfrage im Rahmen einer finanziellen Anwendung sein. Kerngedanke der vorliegenden Erfindung ist es, dass die einzelnen Anfragen und auszuführenden Befehle nicht mehr direkt ausgeführt werden, sondern alle über den zentralen Multi- Tasking Kernel MTK gesteuert werden. Aufgrund des Scheduling- Algorithmus aktiviert der Multi-Tasking Kernel MTK einzelne Prozesse der Applikationen Ai, A2 und A3, ..., Ai derart, dass eine optimierte Ausführung der Gesamtheit aller Applikationen Ai ermöglicht wird. In Fig. 2 ist dies dargestellt, indem die vom Multi-Tasking Kernel MTK aktivierten Applikationen mit einem dicken vertikal verlaufenden Strich gekennzeichnet sind, während die jeweiligen Prozesse bzw. Befehle einer Applikation A, die gera- de nicht aktiv sind, bzw. vom Multi-Tasking Kernel MTK nicht aktiviert wurden, lediglich mit einem dünnen vertikalen Strich gekennzeichnet sind. So ist ersichtlich, dass der Multi-Tasking Kernel MTK auf Anfrage des externen Systems IB als erstes die Applikation A1 aktiviert und daraufhin einen Befehlszyklus der Applikation A2, der von dem externen System IA verur- sacht worden ist. Im Anschluss daran wird wieder zur Applikation A1 zurückgekehrt, um daraufhin die Applikation A3 zu beginnen und anschließend die Applikation A2 zu beenden. Im Anschluss an das Beenden der Applikation A2 werden die restlichen Befehle der Applikation A3 ausgeführt. Insgesamt ist so ein zeitoptimiertes Scheduling der Gesamtheit der Applika- tionen Ai möglich.The applications Ai and A2 shown in FIG. 2 are each caused by external systems. This can be z. For example, an account sales request may be in the context of a financial application. The central idea of the present invention is that the individual requests and commands to be executed are no longer executed directly, but are all controlled via the central multi-tasking kernel MTK. Due to the scheduling algorithm, the multi-tasking kernel MTK activates individual processes of the applications Ai, A2 and A3,..., Ai in such a way that an optimized execution the entirety of all applications Ai is made possible. This is illustrated in FIG. 2 in that the applications activated by the multi-tasking kernel MTK are identified by a thick vertical line while the respective processes or commands of an application A, which are currently not active, or by the multi -Tasking Kernel MTK have not been activated, only marked with a thin vertical line. Thus, it can be seen that the multi-tasking kernel MTK first activates the application A 1 on request of the external system IB, and then an instruction cycle of the application A2, which has been caused by the external system IA. Following this, the application A 1 is returned again to then start the application A3 and then terminate the application A2. Following the termination of the application A2, the remaining commands of the application A3 are executed. Overall, such a time-optimized scheduling of the entirety of the applications Ai is possible.
Ein zentraler Aspekt der vorliegenden Erfindung liegt in verbesserten Sicherheitsvorkehrungen, insbesondere in einem verbesserten Speicherschutz. In diesem Fall ist es vorgesehen, dass in zumindest einer Applikation A alle sicherheitsrelevanten Befehle bzw. Prozesse, die im Rahmen des Betriebs der Chipkarte C notwendig sind, zusammengefasst und integriert werden. Diese Applikation A bzw. dieses Modul wird TMM-Modul (Trust Management Module) genannt. In diesem Modul sind also alle sicherheitsrelevanten Funktionen und Befehle zusammengefasst. Es ist möglich, weitere Sicher- heitsfunktionen flexibel über bestimmte Protokolle nachzuladen.A central aspect of the present invention is improved security measures, in particular improved memory protection. In this case, it is provided that in at least one application A all security-relevant commands or processes that are necessary in the context of the operation of the chip card C are summarized and integrated. This application A or this module is called TMM module (Trust Management Module). In this module, all safety-relevant functions and commands are summarized. It is possible to reload additional security functions flexibly via specific protocols.
Erfindungsgemäß kann der Inhalt des TMM-Moduls flexibel konfiguriert werden. Damit ist es möglich, je nach Anwendung, unterschiedliche Sicherheitsmechanismen zu aktivieren und/ oder zu deaktivieren, um eine optima- Ie sicherheitstechnische Abdeckung der Chipkarte C für den jeweiligen Anwendungsfall zu erzielen. Das TMM-Modul ist erfindungsgemäß so ausgelegt, dass es auch aktiv Sicherheitsüberprüfungen durchführen kann und somit nicht - wie im Stand der Technik - als reiner abhängiger Prozess be- trieben wird.According to the invention, the content of the TMM module can be flexibly configured. This makes it possible, depending on the application, to activate and / or deactivate different security mechanisms in order to optimize Ie safety cover of the chip card C for each application to achieve. The TMM module according to the invention is designed so that it can actively perform safety checks and thus not - as in the prior art - is operated as a purely dependent process.
Ein weiterer, wesentlicher Vorteil der erfindungsgemäßen Lösung ist darin zu sehen, dass die sicherheitstechnischen Prozesse, die im TMM-Modul integriert sind, optimiert in den Ablauf bzw. in den gesamten Betrieb der Chipkarte C eingefasst werden können. Dies hat den Hintergrund, dass gewisse sicherheitstechnische Überprüfungen nur zu einem bestimmten Zeitpunkt im Systemablauf Sinn machen. So ist z. B. eine Authentifizierungs- maßnahme nur vor Beginn einer Transaktion sinnvoll, während weitere sicherheitstechnische Maßnahmen auch zu einem späteren Zeitpunkt ausge- führt werden können. Die optimale, insbesondere zeitoptimierte, Steuerung aller Prozesse auf der Chipkarte C wird durch den Multi-Tasking Kernel MTK kontrolliert und überwacht.Another, significant advantage of the solution according to the invention is the fact that the safety-related processes that are integrated in the TMM module, optimized in the process or in the entire operation of the smart card C can be bordered. This has the background that certain safety checks make sense only at a certain point in the system flow. So z. For example, an authentication measure only makes sense before the start of a transaction, while further security measures can also be carried out at a later time. The optimal, in particular time-optimized, control of all processes on the chip card C is controlled and monitored by the multi-tasking kernel MTK.
Für die erfindungsgemäße Lösung ist es auch möglich, dass spezifische Si- cherheitsmechanismen, die beispielsweise nur bei einer bestimmten Anwendung einzusetzen sind, durch das flexibel konfigurierbare TMM-Modul beim Betreiben der Chipkarte C eingesetzt werden können. Im Unterschied zu den Verfahren aus dem Stand der Technik war bisher keine Anpassung hinsichtlich sicherheitstechnischer Maßnahmen an eine bestimmte Art von Anwen- düng möglich. Dieser Nachteil wird mit der erfindungsgemäßen Lösung vollständig beseitigt.For the solution according to the invention, it is also possible that specific security mechanisms, which can be used, for example, only in a specific application, can be used by the flexibly configurable TMM module when operating the chip card C. In contrast to the methods of the prior art, no adaptation to safety measures for a particular type of application has hitherto been possible. This disadvantage is completely eliminated with the solution according to the invention.
Die erfindungsgemäße Lösung ist vorteilhafter Weise unabhängig von der jeweiligen Plattform der Chipkarte C und insbesondere unabhängig davon, ob eine virtuelle Maschine zum Einsatz kommt oder nicht oder ob die virtuelle Maschine off-card oder on-card realisiert ist.The solution according to the invention is advantageously independent of the respective platform of the chip card C and, in particular, independently of this, whether a virtual machine is used or not, or whether the virtual machine is realized off-card or on-card.
An dieser Stelle sei noch einmal darauf hingewiesen, dass die vorstehende, detaillierte Figurenbeschreibung im Zusammenhang mit der erfindungsgemäßen Lösung durch das Verfahren beschrieben worden ist. Vorteilhafte Weiterbildungen, Alternativen, Vorteile und Merkmale, die im Zusammenhang mit dem Verfahren geschildert worden sind, sind ebenso auf die anderen Lösungen der Aufgabe zu lesen und somit insbesondere auf den mobilen Datenträger, den Mikroprozessor, das Computerprogrammprodukt und auf das Verfahren zum Herstellen und/ oder zum Warten des mobilen Datenträgers anwendbar. Die vorstehend erwähnten Module, Komponenten und Einheiten des beschriebenen Verfahrens können sowohl in einer verkaufsfähigen Einheit bereits integriert sein, sie können jedoch auch als eigenständi- ges, separates Produkt nachträglich integriert werden, ohne dass weitere Maßnahmen an bestehenden Produkten notwendig sind.At this point it should be pointed out again that the above, detailed description of the figures in connection with the solution according to the invention has been described by the method. Advantageous developments, alternatives, advantages and features which have been described in connection with the method are also to be read on the other solutions of the problem and thus in particular on the mobile data carrier, the microprocessor, the computer program product and on the method for producing and / or or to service the mobile disk. The above-mentioned modules, components and units of the described method can already be integrated in a salable unit, but they can also be subsequently integrated as independent, separate product without the need for further measures on existing products.
Die in dieser detaillierten Figurenbeschreibung beschriebenen Ausführungsformen sollen lediglich Beispiele darstellen und können vom Fachmann auf verschiedenste Weise modifiziert werden, ohne dass der Bereich der Erfindung verlassen wird. Für einen einschlägigen Fachmann ist es insbesondere offensichtlich, dass die Erfindung auch als heterogenes System und teilweise oder vollständig in Software und/ oder Hardware und auf mehrere physikalische Produkte - dabei insbesondere auf Computerprogrammprodukte - verteilt realisiert sein kann. The embodiments described in this detailed description of the figures are merely intended to illustrate examples and can be modified by the person skilled in the art in a variety of ways without departing from the scope of the invention. It is particularly obvious to a person skilled in the art that the invention can also be realized as a heterogeneous system and partially or completely distributed in software and / or hardware and on a plurality of physical products, in particular computer program products.

Claims

P a t e n t a n s p r ü c h e Patent claims
1. Verfahren zum Betreiben eines mobilen Datenträgers (C), der mit fol- genden Ressourcen ausgestattet ist: einem Mikroprozessor (MP), einem Datenspeicher (DS), Schnittstellen (SS)für einen Datenaustausch zwischen Mikroprozessor (MP)und Datenspeicher (DS) und/ oder weiteren Modulen, die dem mobilen Datenträger (C) zugeordnet sind, wobei auf dem mobilen Datenträger (C) unterschiedliche Applikationen (A) gleichzeitig ausgeführt werden können, indem der mobile Datenträger (C) mittels einer zentralen Steuerungseinheit (MTK) betrieben wird, die den Betrieb des mobilen Datenträgers (C) derart steuert und/ oder überwacht, indem jeweils einer Applikation (A) nach einem Scheduling-Mechanismus Ressourcen zugewiesen und/ oder der Datenaustausch gesteuert wird.1. A method for operating a mobile data carrier (C), which is equipped with the following resources: a microprocessor (MP), a data memory (DS), interfaces (SS) for a data exchange between microprocessor (MP) and data memory (DS) and / or other modules that are associated with the mobile data carrier (C), wherein on the mobile data carrier (C) different applications (A) can be performed simultaneously by the mobile data carrier (C) by means of a central control unit (MTK) is operated which controls and / or monitors the operation of the mobile data carrier (C) in such a way that resources are allocated to each application (A) according to a scheduling mechanism and / or the data exchange is controlled.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass in der Steuerungseinheit (MTK) ein hardware-unterstützter Schutzmechanismus für den Datenspeicher (DS) ausgebildet ist.2. The method according to claim 1, characterized in that in the control unit (MTK) a hardware-supported protection mechanism for the data memory (DS) is formed.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Scheduling-Mechanismus konfigurierbar ist.3. The method according to claim 1 or 2, characterized in that the scheduling mechanism is configurable.
4. Verfahren nach zumindest einem der vorstehenden Patentansprüche, dadurch gekennzeichnet, dass der Betrieb des mobilen Datenträgers (C) mit- tels der Steuerungseinheit (MTK) derart gesteuert wird, dass der Datenaustausch zwischen unterschiedlichen Anwendungen und/ oder zwischen unterschiedlichen Applikationen (A), ausschließlich über die Steuerungseinheit (MTK) gesteuert und/ oder ausgeführt wird.4. The method according to at least one of the preceding claims, characterized in that the operation of the mobile data carrier (C) by means of the control unit (MTK) is controlled such that the data exchange between different applications and / or between different applications (A), is controlled and / or executed exclusively via the control unit (MTK).
5. Verfahren nach zumindest einem der vorstehenden Patentansprüche, dadurch gekennzeichnet, dass der Betrieb des mobilen Datenträgers (C) mit- tels der Steuerungseinheit (MTK) derart gesteuert wird, dass eine parallele oder gleichzeitige Kommunikation mit externen Modulen über mehrere gleiche oder unterschiedliche Hardware-Schnittstellen (SS) erfolgt.5. The method according to at least one of the preceding claims, characterized in that the operation of the mobile data carrier (C) mit- Control unit (MTK) is controlled so that a parallel or simultaneous communication with external modules over several identical or different hardware interfaces (SS) takes place.
6. Verfahren nach zumindest einem der vorstehenden Patentansprüche, dadurch gekennzeichnet, dass der mobile Datenträger (C) mehrere Betriebsmodi aufweist und dem Betriebsmodus mit der die Steuerungseinheit betrieben wird wenigstens so viele Rechte eingeräumt werden wie den übrigen Betriebsmodi.6. The method according to at least one of the preceding claims, characterized in that the mobile data carrier (C) has a plurality of operating modes and the operating mode with which the control unit is operated at least as many rights are granted as the other operating modes.
7. Verfahren nach zumindest einem der vorstehenden Patentansprüche, dadurch gekennzeichnet, dass der Scheduling-Mechanismus automatisch jeweils eine Ausführungszeit für eine Applikation (A) beschränkt, indem ein Verbrauch von Rechenzeit kontrolliert und Rechenzeit an die jeweiligen Ap- plikationen (A) zugewiesen wird.7. The method according to at least one of the preceding claims, characterized in that the scheduling mechanism automatically each time an execution time for an application (A) limited by a consumption of computing time controlled and computing time is assigned to the respective applications (A).
8. Verfahren nach zumindest einem der vorstehenden Patentansprüche, dadurch gekennzeichnet, dass der konfigurierbare Mechanismus Rechte berücksichtigt, die jeweils einer Applikation (A) vergeben werden können, und die an untergeordnete Sub- Applikationen weitergereicht werden können.8. The method according to at least one of the preceding claims, characterized in that the configurable mechanism takes into account rights, each of which an application (A) can be assigned, and which can be passed to subordinate sub-applications.
9. Verfahren nach zumindest einem der vorstehenden Patentansprüche, dadurch gekennzeichnet, dass jede Applikation (A) jeweils einzeln und/ oder zusammen mit anderen Applikationen einen geschützten Adressraum des Datenspeichers (DS) hat.9. The method according to at least one of the preceding claims, characterized in that each application (A) each individually and / or together with other applications has a protected address space of the data memory (DS).
10. Verfahren nach zumindest einem der vorstehenden Patentansprüche, dadurch gekennzeichnet, dass die zentrale Steuerungseinrichtung (MTK) zusätzlich alle sicherheitsrelevanten Funktionen steuert und/ oder über- wacht, die möglicherweise auf verschiedenen Bauteilen des mobilen Datenträgers (C) verteilt realisiert sind.10. The method according to at least one of the preceding claims, characterized in that the central control device (MTK) additionally controls all safety-related functions and / or über- wakes up, possibly distributed on different components of the mobile data carrier (C).
11. Mobiler Datenträger (C), auf dem unterschiedliche Applikationen (A) ausgeführt werden können, umfassend folgende Ressourcen:11. Mobile data carrier (C) on which different applications (A) can be executed, comprising the following resources:
Mikroprozessor (MP),Microprocessor (MP),
Datenspeicher (DS),Data storage (DS),
Schnittstellen (SS) für einen Datenaustausch zwischen Mikroprozessor (MP) und Datenspeicher (DS) und/ oder weiteren Modulen, die dem mobilen Datenträger (C) zugeordnet sind dadurch gekennzeichnet, dass der mobile Datenträger (C) eine zentrale Steuerungseinheit (MTK) mit einem Scheduler umfasst, wobei die Steuerungseinheit (MTK) den Betrieb des mobilen Datenträgers (C), insbesondere die Ausführung der Applikationen (A), derart steuert und/ oder überwacht, dass gleichzeitig mehrere Applikationen (A) aktiv sein können, indem der Scheduler nach einem konfigurierbaren Mechanismus jeweils einer Applikation Ressourcen zuweist und/ oder den Datenaustausch steuert.Interfaces (SS) for a data exchange between microprocessor (MP) and data memory (DS) and / or other modules associated with the mobile data carrier (C), characterized in that the mobile data carrier (C) has a central control unit (MTK) with a Scheduler comprises, wherein the control unit (MTK) controls the operation of the mobile data carrier (C), in particular the execution of the applications (A), such and / or monitored that simultaneously several applications (A) can be active by the scheduler after a configurable mechanism each allocates resources to an application and / or controls the exchange of data.
12. Mikroprozessor (MP) zum Einsetzen in einen mobilen Datenträger (C), auf dem unterschiedliche Applikationen (A) ausgeführt werden können, wobei der Mikroprozessor (MP) folgende Ressourcen umfasst:12. Microprocessor (MP) for insertion into a mobile data carrier (C) on which different applications (A) can be executed, wherein the microprocessor (MP) comprises the following resources:
Datenspeicher (DS),Data storage (DS),
Schnittstellen (SS) für einen Datenaustausch zwischen Mikroprozessor und Datenspeicher und/ oder weiteren Modulen, wobei dem Mikroprozessor (MP) eine zentrale Steuerungseinheit (MTK) mit einem Scheduler zugeordnet ist, und wobei die Steuerungseinheit (MTK) den Betrieb des mobilen Datenträgers (C), insbesondere die Ausführung der Applikationen (A), derart steuert und/ oder überwacht, dass gleichzeitig mehrere Applikationen (A) aktiv sein können, indem der Scheduler nach einem konfigurierbaren Me- chanismus jeweils einer Applikation (A) Ressourcen zuweist und/ oder den Datenaustausch steuert.Interfaces (SS) for a data exchange between microprocessor and data memory and / or further modules, wherein the microprocessor (MP) is assigned a central control unit (MTK) with a scheduler, and wherein the control unit (MTK) controls the operation of the mobile data carrier (C) , in particular the execution of the applications (A), controls and / or monitors such that several applications (A) can be active at the same time, by the scheduler having a configurable message each application (A) assigns resources and / or controls the exchange of data.
13. Computerprogrammprodukt, welches direkt in einen Datenspeicher (DS) eines programmierbaren mobilen Datenträgers (C) oder in eine dem mobilen Datenträger (C) zugeordnete Steuereinrichtung ladbar ist, mit Programmcodemitteln, um alle oder ausgewählte Schritte eines Verfahrens nach einem der vorstehenden Verfahrensansprüche auszuführen, wenn das Computerprogrammprodukt in dem mobilen Datenträger (C) oder in der Steuer- einrichtung ausgeführt wird.Computer program product, which can be loaded directly into a data memory (DS) of a programmable mobile data carrier (C) or into a control device assigned to the mobile data carrier (C), with program code means for carrying out all or selected steps of a method according to one of the preceding method claims, when the computer program product is executed in the mobile data carrier (C) or in the control device.
14. Computerprogrammprodukt nach Anspruch 12, dadurch gekennzeichnet, dass das Computerprogrammprodukt als Betriebssystem oder Betriebssystemkomponente ausgebildet ist.14. Computer program product according to claim 12, characterized in that the computer program product is designed as an operating system or operating system component.
15. Verfahren zum Herstellen und/ oder zum Warten eines mobilen Datenträgers (C), der mit einem Verfahren gemäß den Merkmalen der vorstehenden Verfahrensansprüche betrieben wird, wobei Komponenten, insbesondere software-basierte Betriebssystemkomponenten, auch nach Ausgabe des mobilen Datenträgers (C) durch andere Komponenten ersetzt werden können. 15. A method for producing and / or maintaining a mobile data carrier (C), which is operated by a method according to the features of the preceding method claims, wherein components, in particular software-based operating system components, even after the output of the mobile data carrier (C) by others Components can be replaced.
EP07722887A 2006-02-22 2007-02-21 Operating system for a chip card comprising a multi-tasking kernel Ceased EP1989621A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102006008248A DE102006008248A1 (en) 2006-02-22 2006-02-22 Mobile data carrier e.g. chip card, operating method, involves controlling and/or monitoring operation of mobile data carrier by central control unit such that application e.g. service, is allotted according to scheduling mechanism resource
PCT/EP2007/001511 WO2007096153A1 (en) 2006-02-22 2007-02-21 Operating system for a chip card comprising a multi-tasking kernel

Publications (1)

Publication Number Publication Date
EP1989621A1 true EP1989621A1 (en) 2008-11-12

Family

ID=38169584

Family Applications (1)

Application Number Title Priority Date Filing Date
EP07722887A Ceased EP1989621A1 (en) 2006-02-22 2007-02-21 Operating system for a chip card comprising a multi-tasking kernel

Country Status (4)

Country Link
US (1) US20090222835A1 (en)
EP (1) EP1989621A1 (en)
DE (1) DE102006008248A1 (en)
WO (1) WO2007096153A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106657582A (en) * 2016-09-29 2017-05-10 宇龙计算机通信科技(深圳)有限公司 Application program dividing function starting method and dividing function starting device and terminal

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1193321C (en) * 2000-07-11 2005-03-16 卡巴闭锁系统公开股份有限公司 Method for initialisation of mobile data supports
DE102008020343A1 (en) * 2008-04-23 2009-10-29 Giesecke & Devrient Gmbh Portable disk
DE102008045046A1 (en) 2008-08-27 2010-03-04 Capcologne Gmbh Method for using different applications in a telematics system
WO2010070656A1 (en) * 2008-12-15 2010-06-24 Raj S Paul Health guard system
FR2942330B1 (en) * 2009-02-13 2011-08-19 Renesas Design France Sas DEVICE FOR PROCESSING INFORMATION COMMUNICATING FOR RAPID ACCESS TO A SET OF PERSONAL INFORMATION
DE102010003581A1 (en) * 2010-04-01 2011-10-06 Bundesdruckerei Gmbh Electronic device, data processing system and method for reading data from an electronic device
DE102010053053A1 (en) * 2010-12-01 2012-06-06 Giesecke & Devrient Gmbh Microprocessor module, in particular chip card microprocessor module
KR101867960B1 (en) * 2012-01-05 2018-06-18 삼성전자주식회사 Dynamically reconfigurable apparatus for operating system in manycore system and method of the same
US9781054B1 (en) * 2014-07-25 2017-10-03 Google Inc. Quota-based resource scheduling
CN105511961B (en) * 2015-11-25 2019-02-05 珠海市魅族通讯设备有限公司 A kind of data transmission method for uplink and terminal
TWI774081B (en) * 2020-10-12 2022-08-11 瑞昱半導體股份有限公司 Multi-tasking chip
US11934255B2 (en) 2022-01-04 2024-03-19 Bank Of America Corporation System and method for improving memory resource allocations in database blocks for executing tasks

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5901303A (en) * 1996-12-27 1999-05-04 Gemplus Card International Smart cards, systems using smart cards and methods of operating said cards in systems
US6824064B2 (en) * 2000-12-06 2004-11-30 Mobile-Mind, Inc. Concurrent communication with multiple applications on a smart card
US7313705B2 (en) * 2002-01-22 2007-12-25 Texas Instrument Incorporated Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory
US7631196B2 (en) * 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
FI116166B (en) * 2002-06-20 2005-09-30 Nokia Corp A method and system for performing application sessions on an electronic device, and an electronic device
US7509487B2 (en) * 2003-09-29 2009-03-24 Gemalto Inc. Secure networking using a resource-constrained device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
See also references of WO2007096153A1 *
TANENBAUM A S: "Modern Operating Systems, PROCESSES AD THREADS", MODERN OPERATING SYSTEMS, XX, XX, 1 January 2001 (2001-01-01), pages 71 - 73,81, XP002372417 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106657582A (en) * 2016-09-29 2017-05-10 宇龙计算机通信科技(深圳)有限公司 Application program dividing function starting method and dividing function starting device and terminal

Also Published As

Publication number Publication date
DE102006008248A1 (en) 2007-08-23
US20090222835A1 (en) 2009-09-03
WO2007096153A1 (en) 2007-08-30

Similar Documents

Publication Publication Date Title
WO2007096153A1 (en) Operating system for a chip card comprising a multi-tasking kernel
EP2678796B1 (en) Method for interchanging data in a secure runtime environment
DE102012200613A1 (en) System and method for supporting JIT in a secure system and randomly allocated memory areas
DE60002687T2 (en) TECHNIQUES FOR GRANTING ACCESS THROUGH A CONTEXT LOCK IN A DEVICE WITH A SMALL SPACE REQUIRED USING RUNNING ENVIRONMENTAL PRIVILEGES
EP2795934B1 (en) Method for communicating with an application on a portable data storage medium, and such a portable data storage medium
DE10313318A1 (en) Controlled execution of a program intended for a virtual machine on a portable data carrier
EP3435270A1 (en) Device and method for cryptographically protected operation of a virtual machine
EP1695207A2 (en) Java smart card chip comprising a memory area reserved for global variables
DE112014001815T5 (en) Embedded memory with management scheme for real-time applications
CN107577454A (en) A kind of application program multithreading running optimizatin method based on python
EP3159821B1 (en) Processor system with applet security settings
EP0966711B1 (en) Microcomputer with a memory management unit
EP1393164B1 (en) Processor comprising an internal memory configuration and system comprising said processor
DE102005056357A1 (en) Application`s implementation paths implementing method for e.g. chip card, involves implementing two of paths by one of virtual machines, and assigning different operational resource contingents to virtual machines
DE102018001565A1 (en) Security element and method for access control to a security element
DE102004040296B3 (en) Write data to a nonvolatile memory of a portable data carrier
EP1898331B1 (en) Method and device for concurrent performance of processes
EP2112595A2 (en) Portable data carrier
DE102016122982B4 (en) Multiplexer for controlling access of a data processing device to a smart card
DE102005027709A1 (en) Method for operating a portable data carrier
DE102008051073A1 (en) Apparatus and method for remanipulating instructions
WO1999000726A1 (en) Computer system with interrupt control
EP2740070A1 (en) Mechanism for communicating between two applications on a safety module
DE102006037493A1 (en) Portable data carrier for data transfer has operating system with access control core and authentication status for each process or path
DE102005059248A1 (en) Program code generating method for e.g. data oriented chip card, involves providing formal model that comprises of information about security parameter, and generating program codes such that security parameter is maintained

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20080922

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

RIN1 Information on inventor provided before grant (corrected)

Inventor name: HOCKAUF, ROBERT

Inventor name: SPITZ, STEPHAN

Inventor name: ENGLBRECHT, ERICH

Inventor name: EFFING, WOLFGANG

17Q First examination report despatched

Effective date: 20081201

DAX Request for extension of the european patent (deleted)
REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20150507