Mobile
Datenträger
finden heute vielfältige Einsatzgebiete
vor, unter anderem 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
Kamerasystemen 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 Only Memory) und dem EEPROM (Electrical Eraseable
Read Only Memory) und Schnittstellen für einen Datenaustausch zwischen
den diversen 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.
Je
nach 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 befehlsgetriggerten 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 werden. 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 Bytecode) 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 Speicherschutzes
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 bekannt. 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 entsprechender
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 Datenspeicher 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, getriggert 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 Zugriffsschutz 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 auszufü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-Aufgabe 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 anderen
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 Applikationen 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
Funktionen 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
erreicht 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 alternativ 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 nel 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 Untervergabe bzw. einer Weitervergabe von
Rechten an untergeordnete Sub-Applikationen vorgesehen.
Des
Weiteren dient der Multi-Tasking Kernel dazu, Mechanismen zum sicheren
Datenaustausch zwischen den einzelnen Applikationen bereitzustellen.
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 Speicherbereiche
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 Systemkomponenten,
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
basierende 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 triggern, dass eine parallele
oder gleichzeitige Kommunikation mit internen oder 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 quasiparallele 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 insgesamt 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 Privilegierungsstufen 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ührung
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 folgenden 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 Optimierungskriterium 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. Sicherheitskomponenten, 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 chipkartenbezogenen
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 Autorisierungs-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 IPSec 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 Platform 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=0 oder T=1, ü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 Betriebssystem 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 hinzuweisen, 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 Mikroprozessor
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 Verfahrens 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.