Verfahren zum Laden einer Applikation in einen Datenträger
Die Erfindung betrifft ein Verfahren zum Laden einer Applikation in einen Datenträger mit einem darin implementierten Betriebssystem und einer dem Betriebssystem zugeordneten Library.
Ein Datenträger im Sinn der Erfindung ist ein Rechnersystem, bei dem die Ressourcen, d.h. Speicherressourcen und/ oder Rechenkapazität (Rechen¬ leistung) begrenzt sind, z.B. eine Chipkarte (Smart Card, Mikroprozessor- Chipkarte). Der Datenträger hat einen Körper, in dem eine CPU (ein Mikro¬ prozessor) angeordnet ist, und der jede beliebige standardisierte oder nicht standardisierte Gestalt haben kann, beispielsweise die Gestalt einer flachen Chipkarte ohne Norm oder nach einer Norm wie z.B. ISO 7810 (z.B. ID-I, ID- 00, ID-000) oder die eines volumigen Tokens. Der Datenträger kann weiter eine oder mehrere beliebige Schnittstellen für kontaktlose und/ oder kon¬ taktbehaftete Kommunikation mit einem Lesegerät oder Datenverarbei¬ tungssystem (z.B. Personal Computer, Workstation, Server) haben.
Im Datenträger ist ein Betriebssystem zum Betrieb des Datenträgers imple¬ mentiert. Weiter können in dem Datenträger ein oder mehrere Applikatio¬ nen implementiert sein. Durch die Applikationen sind Funktionen des Da¬ tenträgers verwirklicht, so dass der Datenträger beispielsweise die Funktion einer Teilnehmerkarte für ein Mobilfunksystem (z.B. SIM-Karte, USIM- Karte), einer Zahlungsverkehrkarte, einer Karte im Bereich des Gesund¬ heitswesens oder einer anderen Karte hat.
Dem Betriebssystem ist eine Library (gleichbedeutend Bibliotheksdatei) mit einer Mehrzahl von Libraryfunktionen zugeordnet, die durch im Datenträ¬ ger implementierte Applikationen genutzt werden können, so dass die Ap¬ plikationen den Programmcode, der den Libraryfunktionen entspricht, nicht selbst enthalten müssen. Beispielsweise in J AVA-Karten enthalten dagegen
die zu ladenden Applikationen (Applets) neben den Datenelemente in der Regel auch den zugehörigen Code.
Herkömmlicherweise enthält die Library eines Datenträgers, der einem vor¬ bestimmten Standard genügt, sämtliche Libraryfunktionen, die in dem Stan¬ dard definiert sind. Damit ist sichergestellt, dass jede Applikation, die in dem Datenträger implementiert ist, oder die später noch in den Datenträger geladen wird, sämtliche Libraryfunktionen zur Verfügung hat, die sie benö¬ tigt. Allerdings nimmt die Library eine große Menge an Speicher im Daten¬ träger ein. Dieser Speicher fehlt beispielsweise, wenn zusätzliche Applikati¬ onen in den Datenträger geladen werden sollen. Dabei ist gerade bei Daten¬ trägern die Menge an verfügbarem Speicher relativ begrenzt.
Der Erfindung liegt die Aufgabe zu Grunde, ein Verfahren zum Laden einer Applikation in einen Datenträger zu schaffen, bei dem mit dem verfügbaren Speicher des Datenträgers sparsam umgegangen wird.
Die Aufgabe wird durch ein Verfahren nach Anspruch 1 gelöst. Vorteilhafte Ausgestaltungen der Erfindung sind in den abhängigen Ansprüchen ange¬ geben.
Das erfindungsgemäße Verfahren gemäß dem unabhängigen Anspruch 1 geht von einem Datenträger aus, mit einem darin implementierten Betriebs¬ system und einer dem Betriebssystem zugeordneten Library, in der Library¬ funktionen ablegbar sind. In den Datenträger können Applikationen geladen werden. Die Erfindung gibt ein Verfahren zum Laden einer Applikation in den Datenträger an. Gemäß der Erfindung wird die Applikation in den Da¬ tenträger geladen und werden höchstens diejenigen Libraryfunktionen in die Library geladen, die von der Applikation benötigt werden.
Da nur die benötigten Libraryfunktionen in den Datenträger geladen wer¬ den, wird kein Speicher durch überflüssige Libraryfunktionen verschenkt.
Daher ist gemäß Anspruch 1 ein Verfahren zum Laden einer Applikation in einen Datenträger geschaffen, bei dem mit dem verfügbaren Speicher des Datenträgers sparsam umgegangen wird.
Die benötigten Library funktionen können wahlweise zeitlich vor oder nach der Applikation in den Datenträger geladen werden. Wahlweise kann ein relativ großer Zeitabstand zwischen dem Laden der Applikation und dem Laden der Libraryfunktionen liegen. Alternativ können die Applikation und die Libraryfunktionen zeitlich eng benachbart in den Datenträger geladen werden.
Vorzugsweise wird die Library daraufhin überprüft, ob in ihr Libraryfunkti¬ onen enthalten sind, die von der Applikation benötigt werden. Anschließend werden nur diejenigen von der Applikation benötigten Library funktionen in die Library geladen werden, die gemäß der Überprüfung noch nicht in der Library enthalten sind. Beim Laden einer ersten Applikation in den Daten¬ träger, der zu diesem Zeitpunkt noch keine Applikationen enthält, kann die Überprüfung der Library wahlweise entfallen.
Vorzugsweise wird, bevor eine erste Applikation in den Datenträger geladen wird, eine leere Library im Datenträger bereitgestellt.
Gemäß einer Weiterbildung der Erfindung wird nach einem Entfernen einer Applikation aus dem Datenträger die Library überprüft, woraufhin nicht mehr benötigte Libraryfunktionen aus der Library entfernt werden.
Gemäß einer anderen Weiterbildung der Erfindung werden in die Library zu ladende Libraryfunktionen mit einer Signatur versehen. Dabei wird vor dem oder beim Laden der Libraryfunktion die Signatur der Libraryfunktion über¬ prüft und die Libraryfunktion nur dann in die Library geladen, falls dies gemäß der Signatur zulässig ist. Auf diese Weise können Libraryfunktionen mit bösartigen Inhalten wie Viren, Trojanern, Würmern oder dergleichen abgehalten werden.
Im folgenden wird die Erfindung an Hand von Ausführungsbeispielen und unter Bezugnahme auf die Zeichnung näher erläutert, in der zeigt:
Fig. 1 schematisch eine Smart Card mit einem Betriebssystem, einer dem Betriebssystem zugeordneten Library und einem Applikationsspei¬ cher mit einer Mehrzahl von darin abgespeicherten Applikationen.
Fig. 1 zeigt eine Smart Card 10 als ein Beispiel für einen Datenträger. In der Smart Card 10 ist ein Betriebssystem 20 implementiert, sowie eine dem Be¬ triebssystem zugeordnete Library 21 mit einer Mehrzahl von Libraryfunkti¬ onen a, b, c, ... . Weiter enthält die Smart Card 10 einen Applikationsspeicher 30 mit einer Mehrzahl von darin abgespeicherten Applikationen I, II, ... .
Beim Laden einer neuen Applikation in den Applikationsspeicher 30 wird die Library 21 auf ihren Bestand an Libraryfunktionen überprüft. Nur noch nicht vorhandene Library funktionen, die aber von der neuen Applikation benötigt werden, werden in die Library 21 geladen.
In der Smart Card 10 ist ein Speicherbereich vorgesehen, in dem die Informa¬ tion gespeichert ist, welche Libraryfunktionen a, b, c bereits in der Library 21 enthalten sind.
Der Speicherbereich ist in einer ersten Ausgestaltung aus der Smart Card 10 zumindest auslesbar und optional auch überschreibbar. Insbesondere kann der Speicherbereich eine Datei im MF der Smart Card 10 sein, die nach einer Authentisierung der Instanz, die die Anwendung laden möchte, für diese auslesbar ist. Außerhalb der Smart Card 10 erfolgt die Überprüfung, welche Libraryfunktionen noch in die Library 21 zu laden sind. Der Speicherbereich wird nach einem erfolgreichen Ergänzen der Library von außen durch einen schreibenden Zugriff aktualisiert. Aufwendiger aber sicherer ist es, die Ak¬ tualisierung des Speicherbereiches nur durch die Smart Card 10 selbst zu gestatten. In diesem Fall behandelt die Smart Card 10 das Ergänzen der Lib¬ rary 21 und das Eintragen der Änderungen in den Speicherbereich als ato¬ mare Transaktion. Das heißt sie sichert ab, dass immer entweder beide Schritte erfolgreich durchgeführt werden oder keiner der Schritte wirksam wird, wie es durch so genannte „Roll-Back" oder „Roll-Forward- Mechanismen" bekannt ist.
Der Speicherbereich ist in einer zweiten Ausgestaltung ein interner Spei¬ cherbereich der Smart Card 10. Die Smart Card 10 überprüft anhand der In¬ formationen in dem Speicherbereich, ob die Library 21 für das Laden der Anwendung zu ergänzen ist. Sie könnte zu diesem Zweck die der Smart Card 10 bereits vorliegende, zu ladende Anwendung auswerten. Bevorzugt erhält die Smart Card 10 jedoch als separates Datenelement ein Anforde¬ rungsprofil der zu ladenden Anwendung, in welchem die benötigten Libra¬ ryfunktionen und gegebenenfalls deren Versionen aufgeführt sind.
Nachdem die Smart Card 10 intern überprüft hat, welche Libraryfunktionen zu ergänzen sind, sendet es diese Information als Antwort an das Terminal, das beispielsweise ein Computer mit Kartenleser und optionaler Netzwerk- anbindung sein kann. Die zum Laden der Anwendung auf die Smart Card 10 berechtigte Instanz kann der Inhaber des Computer oder der Betreiber eines mit dem Computer über das Netzwerk verbundenen Servers sein. Das Ter¬ minal sendet die zu ergänzenden Library funktionen an die Smart Card 10. Die Smart Card 10 ergänzt die Library 21 mit den erhaltenen Libraryfunkti¬ onen ergänzt und notiert die Ergänzungen in dem dafür vorgesehenen Spei¬ cherbereich.
Die zu ladende Anwendung umfasst vorzugsweise nur Daten und keinen ausführbaren Code.