EP1989621A1 - Betriebssystem für eine chipkarte mit einem multi - tasking kernel - Google Patents

Betriebssystem für eine chipkarte mit einem 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
English (en)
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/de
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

Die Erfindung betrifft ein Verfahren zum Betreiben einer Chipkarte (C), einen Mikroprozessor zum Einsetzen in die Chipkarte (C) und ein Computerprogrammprodukt, sowie ein Verfahren zum Herstellen und/ oder zum Warten einer Chipkarte (C), die mittels eines vorstehend beschriebenen Verfahren betrieben wird. Dabei ist zentraler Multi-Tasking Kernel (MTK) vorgesehen, der den gesamten Betrieb der Chipkarte (C) steuert, so dass auf der Chipkarte (C) mehrere Applikationen (A) gleichzeitig aktiviert werden können, wobei eine Applikation (A) auch sicherheitstechnische Funktionen für die Chipkarte (C) realisieren kann.

Description

Betriebssy stem f ür eine Chipkarte mit einem MuI ti-Tasking Kernel
Die Erfindung liegt auf dem Gebiet der Chipkartentechnik und betrifft insbesondere ein Verfahren und ein System zum Betreiben von mobilen Datenträgern.
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.
Ü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.
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.
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.
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.
Betriebssysteme, die das Nachladen von Programmcode ermöglichen, können grundsätzlich in zwei Kategorien unterteilt werden:
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.
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.
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.
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.
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.
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.
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.
Die Aufgabe wird insbesondere durch ein Verfahren zum Betreiben eines mobilen Datenträgers gelöst, der mit folgenden Ressourcen ausgestattet ist: - zumindest einem Mikroprozessor,
- zumindest einem Datenspeicher, der üblicherweise aus mehreren unterschiedlichen Datenspeicherbereichen besteht und
- 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 ¬
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.
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.
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.
2. Die beteiligten Applikationen können Daten über vordefinierte Spei- cherbereiche austauschen, die mehreren - in diesem Fall den aktiven -
Applikationen gemeinsam zur Verfügung stehen.
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.
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.
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.
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.
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 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 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.
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.
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 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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Zusätzliche, vorteilhafte Ausführungsformen ergeben sich aus den Unteransprüchen.
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:
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,
Figur 2 eine übersichtsartige Darstellung einer Aktivierung von Appli- kationen durch den erfindungsgemäßen Multi-Tasking Kernel gemäß einer bevorzugten Ausführungsform und
Figur 3 eine übersichtsartige Darstellung einer möglichen Strukturierung von Bauteilen eines erfindungsgemäßen Datenträgers.
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.
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.
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-
/ Output-Schnittstellen für die Chipkarte C und betreffen somit den gesamten Datentransfer, der in Bezug auf die Chipkarte C anfällt.
Erfindungsgemäß ist zusätzlich zu diesen Bauteilen eine zentrale Steue- rungseinrichtung MTK vorgesehen, die insbesondere durch den Multi-
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.
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.
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.
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.
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.
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.
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.
In Fig. 2 ist schematisch dargestellt, wie der Multi-Tasking Kernel MTK un- terschiedliche Applikationen Ai, A2, A3 auf optimierte Weise aktiviert.
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.
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.
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.
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.
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.
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.
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.
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.

Claims

P a t e n t a n s p r ü c h e
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.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass in der Steuerungseinheit (MTK) ein hardware-unterstützter Schutzmechanismus für den Datenspeicher (DS) ausgebildet ist.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Scheduling-Mechanismus konfigurierbar ist.
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.
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.
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.
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.
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.
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.
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.
11. Mobiler Datenträger (C), auf dem unterschiedliche Applikationen (A) ausgeführt werden können, umfassend folgende Ressourcen:
Mikroprozessor (MP),
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 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.
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:
Datenspeicher (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.
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.
14. Computerprogrammprodukt nach Anspruch 12, dadurch gekennzeichnet, dass das Computerprogrammprodukt als Betriebssystem oder Betriebssystemkomponente ausgebildet ist.
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.
EP07722887A 2006-02-22 2007-02-21 Betriebssystem für eine chipkarte mit einem multi - tasking kernel Ceased EP1989621A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102006008248A DE102006008248A1 (de) 2006-02-22 2006-02-22 Betriebssystem für eine Chipkarte mit einem Multi-Tasking Kernel
PCT/EP2007/001511 WO2007096153A1 (de) 2006-02-22 2007-02-21 Betriebssystem für eine chipkarte mit einem multi - tasking kernel

Publications (1)

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

Family

ID=38169584

Family Applications (1)

Application Number Title Priority Date Filing Date
EP07722887A Ceased EP1989621A1 (de) 2006-02-22 2007-02-21 Betriebssystem für eine chipkarte mit einem multi - tasking kernel

Country Status (4)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106657582A (zh) * 2016-09-29 2017-05-10 宇龙计算机通信科技(深圳)有限公司 应用程序的分身功能启动方法、分身功能启动装置和终端

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004503031A (ja) * 2000-07-11 2004-01-29 カバ・シュリースジステーメ・アー・ゲー 移動データ記憶媒体の初期化のための方法
DE102008020343A1 (de) * 2008-04-23 2009-10-29 Giesecke & Devrient Gmbh Portabler Datenträger
DE102008045046A1 (de) 2008-08-27 2010-03-04 Capcologne Gmbh Verfahren zur Anwendung von unterschiedlichen Applikationen in einem Telematiksystem
WO2010070656A1 (en) * 2008-12-15 2010-06-24 Raj S Paul Health guard system
FR2942330B1 (fr) * 2009-02-13 2011-08-19 Renesas Design France Sas Dispositif de traitement de l'information communiquant permettant un acces rapide a un ensemble d'informations personnelles
DE102010003581A1 (de) * 2010-04-01 2011-10-06 Bundesdruckerei Gmbh Elektronisches Gerät, Datenverarbeitungssystem und Verfahren zum Lesen von Daten aus einem elektronischen Gerät
DE102010053053A1 (de) * 2010-12-01 2012-06-06 Giesecke & Devrient Gmbh Mikroprozessormodul, insbesondere Chipkarten-Mikroprozessormodul
KR101867960B1 (ko) * 2012-01-05 2018-06-18 삼성전자주식회사 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법
US9781054B1 (en) * 2014-07-25 2017-10-03 Google Inc. Quota-based resource scheduling
CN105511961B (zh) * 2015-11-25 2019-02-05 珠海市魅族通讯设备有限公司 一种数据发送方法及终端
TWI774081B (zh) * 2020-10-12 2022-08-11 瑞昱半導體股份有限公司 具有多工處理的晶片
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 (fi) * 2002-06-20 2005-09-30 Nokia Corp Menetelmä ja järjestelmä sovellusistuntojen suorittamiseksi elektroniikkalaitteessa, ja elektroniikkalaite
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 (zh) * 2016-09-29 2017-05-10 宇龙计算机通信科技(深圳)有限公司 应用程序的分身功能启动方法、分身功能启动装置和终端

Also Published As

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

Similar Documents

Publication Publication Date Title
WO2007096153A1 (de) Betriebssystem für eine chipkarte mit einem multi - tasking kernel
DE60006217T2 (de) Techniken zum gewähren des zugriffs durch eine kontextsperre in einem gerät mit kleinem platzbedarf unter verwendung von einem eingangspunktobjekt
EP2678796B1 (de) Verfahren zum datenaustausch in einer gesicherten laufzeitumgebung
DE102012200613A1 (de) System und Verfahren zur Unterstützung von JIT in einem sicheren System und zufällig zugewiesenen Speicherbereichen
WO2019020233A1 (de) Vorrichtung und verfahren zum kryptographisch geschützten betrieb einer virtuellen maschine
DE10324337B4 (de) Rechnersystem und zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms
DE102011122242A1 (de) Verfahren zur Kommunikation mit einer Applikation auf einem portablen Datenträger sowie ein solcher portabler Datenträger
EP1695207A2 (de) Java smart card chip mit für globale variablen reserviertem speicherbereich
DE112014001815T5 (de) Eingebetteter Speicher mit Managementschema für Echtzeit-Applikationen
CN107577454A (zh) 一种基于python的应用程序多线程运行优化方法
CN107633087A (zh) 一种基于数据库的数据存储方法
EP3159821B1 (de) Prozessor-system mit applet security settings
EP0966711B1 (de) Mikrocomputer mit einer speicherverwaltungseinheit
EP1393164B1 (de) Prozessor mit interner speicherkonfiguration und anordnung mit diesem prozessor
DE102011083468A1 (de) Schaltungsanordnung zur Ablaufplanung bei einer Datenverarbeitung
DE102005056357A1 (de) Multithreading-fähige virtuelle Maschine
DE102018001565A1 (de) Sicherheitselement und Verfahren zur Zugriffskontrolle auf ein Sicherheitselement
DE102004040296B3 (de) Schreiben von Daten in einen nichtflüchtigen Speicher eines tragbaren Datenträgers
EP2112595A2 (de) Portabler Datenträger
DE102005019260A1 (de) Steuerung der Programmausführung in einem ressourcenbeschränkten System
EP2780804B1 (de) Verfahren zur steuerung der programmausführung
DE102016122982B4 (de) Multiplexer zum Steuern eines Zugriffs einer Datenverarbeitungsvorrichtung auf eine Smartcard
DE102005027709A1 (de) Verfahren zum Betreiben eines tragbaren Datenträgers
EP0991995A1 (de) Computersystem mit unterbrechungssteuerung
EP2740070A1 (de) Mechanismus zur kommunikation zwischen zwei applikationen auf einem sicherheitsmodul

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