DE102007041873A1 - Patch installing method for e.g. object oriented programming language card in mobile phone, involves forming class hierarchy using classes in program package, and including patch in class hierarchy as subclass of one of classes - Google Patents

Patch installing method for e.g. object oriented programming language card in mobile phone, involves forming class hierarchy using classes in program package, and including patch in class hierarchy as subclass of one of classes Download PDF

Info

Publication number
DE102007041873A1
DE102007041873A1 DE102007041873A DE102007041873A DE102007041873A1 DE 102007041873 A1 DE102007041873 A1 DE 102007041873A1 DE 102007041873 A DE102007041873 A DE 102007041873A DE 102007041873 A DE102007041873 A DE 102007041873A DE 102007041873 A1 DE102007041873 A1 DE 102007041873A1
Authority
DE
Germany
Prior art keywords
class
patch
smart card
patched
classes
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.)
Withdrawn
Application number
DE102007041873A
Other languages
German (de)
Inventor
Thomas Stocker
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 Mobile Security 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
Priority to DE102007041873A priority Critical patent/DE102007041873A1/en
Publication of DE102007041873A1 publication Critical patent/DE102007041873A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/4492Inheritance

Abstract

The method involves forming class hierarchy using classes in a program package (38) in a smart card module (10) e.g. Java(RTM: Object oriented programming language) card, provided with an object-oriented runtime environment (30). A patch (P) is included in the class hierarchy as a subclass of one of the classes, which is recorded in an export component. A new class field structure is formed for the patch. A class pointer of an instance field structure pointing to the class is changed in another class pointer pointing to the patch. An independent claim is also included for a machine-readable data medium having a set of instructions executed by a processor of a smart card module for performing a method for installing a patch in the smart card module.

Description

Die Erfindung betrifft allgemein das technische Gebiet der Installation von Patches in Smartcard-Modulen. Ein Smartcard-Modul in der Wortwahl des vorliegenden Dokuments kann beispielsweise die Bauform einer Chipkarte oder eines kompakten Chipmoduls aufweisen.The This invention relates generally to the technical field of installation patches in smart card modules. A smartcard module in the wording of the present document, for example, the design of a Have a smart card or a compact chip module.

Smartcard-Module werden für eine Vielzahl von Anwendungen eingesetzt. Neben den ursprünglich vorherrschenden Ausgestaltungen als Chipkarten oder einsteckbare Chipmodule – z. B. SIMs für Mobiltelefone – werden in zunehmendem Umfang Smartcard-Module entwickelt, die zum festen Einbau in Geräte vorgesehen sind. Solche eingebaute Module können beispielsweise als NFC-Module (NFC = Near Field Communications) ausgestaltet sein, die die Funktion einer Smartcard mit einer drahtlosen Kommunikationsschnittstelle kurzer Reichweite kombinieren.Smart card modules are used for a variety of applications. Next the originally prevailing embodiments as smart cards or plug-in chip modules - z. B. SIMs for Mobile phones - are becoming increasingly smart card modules designed for fixed installation in equipment are. Such built-in modules can, for example, as NFC modules (NFC = Near Field Communications) be designed which short the function of a smartcard with a wireless communication interface Combine range.

Die vorliegend betrachteten Ausgestaltungen von Smartcard-Modulen weisen Systemprogramme auf, die eine objektorientierte Laufzeitumgebung bereitstellen. Derartige Smartcard-Module sind z. B. unter der Marke Java Card bekannt. Das Dokument "Runtime Environment Specification Java CardTM Platform, Version 2.2.2", März 2006 , herausgegeben von der Firma Sun Microsystems, Inc., Santa Clara, USA, beschreibt die Laufzeitumgebung von Java-Card-Modulen. Auf dieses Dokument wird hiermit Bezug genommen.The presently considered embodiments of smart card modules have system programs that provide an object-oriented runtime environment. Such smart card modules are z. B. known under the brand Java Card. The document "Runtime Environment Specification Java CardTM Platform, Version 2.2.2", March 2006 , published by Sun Microsystems, Inc. of Santa Clara, USA, describes the runtime environment of Java Card modules. This document is hereby incorporated by reference.

Viele Smartcard-Module enthalten umfangreiche und komplexe Software. Dies gilt insbesondere für Java-Card-Module, weil diese relativ aufwändig sind und daher primär für anspruchsvolle Aufgaben eingesetzt werden. Auch wenn die in einem Smartcard-Modul enthaltene Software mit großer Sorgfalt erstellt wird, sind Fehler nicht völlig auszuschließen. Um derartige Fehler vor der Auslieferung des Smartcard-Moduls zu korrigieren, ist es bekannt, im Zuge der Komplettierung oder der Initialisierung des Smartcard-Moduls Patches in das Modul einzubringen. Gemäß dem allgemein üblichen Sprachgebrauch wird hierbei unter einem Patch oder "Flicken" Programmcode verstanden, der kein eigenständiges System- oder Anwendungsprogramm darstellt, sondern zur Modifikation eines bestehenden Programms – insbesondere zur Fehlerkorrektur oder Funktionserweiterung – dient.Lots Smartcard modules contain extensive and complex software. This This is especially true for Java Card modules because these are relative are complex and therefore primarily for demanding Tasks are used. Even if the in a smart card module included software is created with great care, Errors can not be completely ruled out. To such Correct errors before delivery of the smart card module, It is known in the course of completion or initialization of the smart card module to introduce patches into the module. According to the common usage is here under a Patch or "patch" program code understood that is not a stand-alone System or application program, but for modification of an existing program - in particular for error correction or functional extension - serves.

Die gerade erwähnte Patch-Möglichkeit ist jedoch nach der Komplettierung bzw. Initialisierung des Smartcard-Moduls nicht mehr nutzbar. Wird ein schwerwiegender Fehler erst nach diesem Zeitpunkt entdeckt, so kann ein Austausch des Smartcard-Moduls erforderlich werden. Bei einem Smartcard-Modul in Chipkarten-Bauform besteht das Problem weniger in den Kosten für eine neue Chipkarte, sondern vielmehr in dem logistischen Aufwand, der entsteht, wenn sich die Chipkarte bereits beim Endverbraucher befindet. Handelt es sich dagegen um ein fest in ein Gerät eingebautes Smartcard-Modul wie z. B. ein NFC-Modul, so sind möglicherweise viele bereits produzierte Geräte unbrauchbar oder in ihrer Funktion stark eingeschränkt. Je nach dem Wert der Geräte kann dadurch großer Schaden entstehen.The just mentioned patch possibility is after the completion or initialization of the smart card module not more usable. Will be a serious error after this time discovered, it may require replacement of the smart card module become. In a smart card module in chip card design is the problem less in the cost of a new smart card, but rather in the logistical effort that arises when the chip card is already at the end user. These it is a built-in smart device module such as As an NFC module, so many may already be produced devices unusable or strong in their function limited. Depending on the value of the devices can this causes great damage.

Bei Java-Card-Modulen ist es prinzipiell denkbar, ein bestehendes – fehlerhaftes – Programmpaket (package) zu löschen und eine korrigierte Fassung des Programmpakets neu zu laden. Dies ist jedoch nur möglich, wenn noch keine Objekte angelegt wurden und noch kein anderes Programmpaket auf das zu korrigierende Programmpaket gelinkt wurde. Diese Voraussetzungen sind sehr einschränkend und verhindern in den meisten Fällen das Patchen eines Smartcard-Moduls, das gerade personalisiert wird oder sich bereits beim Endverbraucher befindet.at Java Card modules, it is in principle conceivable, an existing - erroneous - package (package) delete and a corrected version of the program package reload. However, this is only possible if not yet Objects have been created and no other program package yet the program package to be corrected has been linked. These requirements are very restrictive and prevent in most cases patching a smart card module that is currently being personalized or already at the end user.

Das US-Patent 6,202,208 offenbart eine Technik zum Patchen eines von einer JavaTM Virtual Machine – also nicht einer Java Card Virtual Machine – ausgeführten Programms. Beim Einspielen eines Patch wird mindestens ein Eintrag in einer Methodentabelle des Programms geändert, so dass der geänderte Eintrag auf einen durch den Patch bereitgestellten Methoden körper (method body) verweist. Auf diese Weise kann das Programm während des laufenden Betriebs geändert werden. Diese Funktionalität ist z. B. für Telekommunikation-Vermittlungsanlagen wichtig, bei denen möglichst keine Ausfallzeiten auftreten sollen.The U.S. Patent 6,202,208 discloses a technique for patching a program executed by a Java Virtual Machine - not a Java Card Virtual Machine. When importing a patch, at least one entry in a method table of the program is changed so that the changed entry refers to a method body provided by the patch. In this way, the program can be changed during operation. This functionality is z. B. for telecommunications switching systems important in which as no downtime should occur.

Die Erfindung hat die Aufgabe, eine Technik zur Installation eines Patch in einem Smartcard-Modul bereitzustellen, die umfassend einsetzbar ist, also insbesondere auch dann, wenn sich das Smartcard-Modul bereits in den letzten Stufen der Herstellung oder sogar schon beim Endverbraucher befindet. Es ist ferner eine Aufgabe mancher Ausführungsformen der Erfindung, bereits im Smartcard-Modul vorhandene Daten möglichst weitgehend über den Patchvorgang hinweg zu erhalten.The The invention has the object of a technique for installing a patch in a smart card module that can be used extensively is, in particular even if the smart card module already in the last stages of production or even at End user. It is also an object of some embodiments the invention, as far as possible existing data in the smart card module largely to get over the patch process away.

Erfindungsgemäß wird diese Aufgabe durch ein Verfahren mit den Merkmalen des Anspruchs 1, ein Verfahren mit den Merkmalen des Anspruchs 6, einen maschinenlesbaren Datenträger gemäß Anspruch 15 und ein Smartcard-Modul gemäß Anspruch 16 gelöst. Die abhängigen Ansprüche betreffen optionale Merkmale einiger Ausgestaltungen der Erfindung.According to the invention, this object is achieved by a method having the features of claim 1, a method having the features of claim 6, a machine-readable data carrier according to claim 15 and a smart card module according to claim 16. The dependent claims relate to optional features of some embodiments of the invention.

Ein erster Aspekt der Erfindung geht von der Grundidee aus, den Patch in die Klassenhierarchie als Subklasse der gepatchten Klasse einzufügen. Hierdurch kann der bei objektorientierten Laufzeitumgebungen vorhandene Polymorphie-Mechanismus in natürlicher Weise verwendet werden, um den im Patch vorhandenen Programmcode korrekt in die Aufrufordnung der Klassen des Programmpakets einzubinden. In manchen Ausgestaltungen wird der Patch ähnlich wie beim dynamischen Nachladen einer Klasse im Speicher des Smartcard-Moduls angelegt.One The first aspect of the invention is based on the basic idea, the patch into the class hierarchy as a subclass of the patched class. This allows the existing object-oriented runtime environments Polymorphism mechanism used in a natural way to correctly place the code in the patch into the Include call order of the classes of the program package. In some embodiments the patch will be similar to dynamic reloading Class created in the memory of the smart card module.

In manchen Ausführungsformen wird der Patch ferner in die Klassenhierarchie als Superklasse jeder ursprünglichen Subklasse der gepatchten Klasse eingefügt. Diese Maßnahme stellt sicher, dass Elemente (z. B. Methoden oder Felder) des Patch von abgeleiteten Klassen im selben Programmpaket korrekt angesprochen werden. Um den Patch auch für externe abgeleitete Klassen (also Subklassen der gepatchten Klasse, die sich in einem anderen Programmpaket befinden) bereitzustellen, wird in manchen Ausgestaltungen ferner für mindestens ein vom Patch überschriebenes Element (z. B. eine Methode oder ein Feld) der gepatchten Klasse der Patch in eine Exportkomponente eingetragen.In In some embodiments, the patch is further incorporated into the Class hierarchy as superclass of each original Subclass of the patched class inserted. This measure Make sure that elements (such as methods or fields) of the patch of derived classes in the same program package correctly addressed become. To the patch also for external derived classes (ie subclasses of the patched class that are in another Program package) will in some embodiments also for at least one overwritten by the patch Element (for example, a method or a field) of the patched class the patch is entered in an export component.

Gemäß einem zweiten Aspekt der Erfindung wird mindestens eine Instanzfeldstruktur der gepatchten Klasse und/oder einer Subklasse davon an den Patch angepasst. Dies hat den erheblichen Vorteil, dass bereits im Smartcard-Modul enthaltene Daten (z. B. persönliche Daten des Benutzers, die beider Personalisierung in das Smartcard-Modul eingetragen wurden) weitgehend oder vollständig erhalten werden können. Das Anpassen der Instanzfeldstruktur kann in manchen Ausführungsformen z. B. beinhalten, dass ein Feld angehängt oder eingefügt wird und/oder dass der Typ eines Feldes geändert wird.According to one second aspect of the invention is at least one instance field structure the patched class and / or a subclass thereof to the patch customized. This has the considerable advantage that already in the smart card module contained data (eg personal data of the user, the two personalization have been entered in the smart card module) can be largely or completely preserved. Customizing the instance field structure may be in some embodiments z. For example, include a field appended or inserted and / or that the type of a field is changed.

In vielen Ausgestaltungen werden Maßnahmen getroffen, um ein nicht autorisiertes Patchen des Smartcard-Datenträgers, das erhebliche Schäden verursachen könnte, zu verhindern. Beispielsweise kann vorgesehen sein, dass die zu patchende Klasse oder eine Superklasse bestimmt oder zumindest beeinflusst, ob der Patch installiert werden darf. Hierdurch können die Authentisierungsanforderungen klassenindividuell festgelegt werden, und der bei objektorientierten Laufzeitumgebungen vorhandene Vererbungsmechanismus kann in vorteilhafter Weise verwendet werden, um die Zulässigkeit des Patchvorgangs zu bestimmen.In many designs are taken to a unauthorized patching of the smart card data carrier, which could cause significant damage, too prevent. For example, it may be provided that the patch to be patched Class or superclass determines or at least influences whether the patch may be installed. This allows the Authentication requirements are set class-specific, and the inheritance mechanism that exists in object-oriented runtime environments be used advantageously to the admissibility of the patching process.

In den Ausführungsbeispielen des vorliegenden Dokuments werden hauptsächlich Smartcard-Module nach dem Java-Card-Standard beschrieben. Die Erfindung ist jedoch auch zur Verwendung bei anderen Smartcard-Modulen geeignet, die ähnliche Strukturen aufweisen. Dies können beispielsweise Smartcard-Module nach dem .NET-Standard sein.In the embodiments of the present document mainly smart card modules according to the java card standard described. However, the invention is also suitable for use with other smart card modules, which have similar structures. This can For example, smart card modules according to the .NET standard.

Der erfindungsgemäße maschinenlesbare Datenträger kann als körperliches Medium – z. B. als Diskette oder CD-ROM oder Halbleiterspeicher – oder als nicht-körperliches Medium – z. B. als über ein Computernetzwerk übermitteltes Signal – ausgestaltet sein. Der Datenträger kann beispielsweise bei der Herstellung und/oder Komplettierung und/oder Initialisierung des Smartcard-Moduls verwendet werden, um eine Patchroutine mit der erfindungsgemäßen Funktionalität in das Smartcard-Modul einzubringen.Of the inventive machine-readable data carrier can be used as a physical medium - eg. B. as a floppy disk or CD-ROM or semiconductor memory - or as non-physical Medium - eg. As transmitted over a computer network Signal - be configured. The disk can for example, in the manufacture and / or completion and / or Initialization of the smart card module used to be a patch routine with the functionality according to the invention into the smart card module.

Weitere Merkmale, Vorteile und Aufgaben der Erfindung gehen aus der folgenden genauen Beschreibung eines Ausführungsbeispiels und mehrerer Ausführungsalternativen hervor. Es wird auf die schematischen Zeichnungen verwiesen, in denen zeigen:Further Features, advantages and objects of the invention will become apparent from the following detailed description of an embodiment and several Implementation alternatives. It is on the schematic Drawings referenced in which:

1 ein Blockdiagramm mit Funktionseinheiten eines Smartcard-Moduls nach einem Ausführungsbeispiel der Erfindung, 1 a block diagram with functional units of a smart card module according to an embodiment of the invention,

2 eine Darstellung von Teilen des Speicherinhalts des Smartcard-Moduls vor dem Installieren eines Patch, 2 a representation of portions of the memory contents of the smart card module prior to installing a patch,

3 eine Darstellung wie in 2 nach dem Installieren des Patch, 3 a representation like in 2 after installing the patch,

4 ein Flussdiagramm eines Verfahrens zum Installieren des Patch, 4 a flow diagram of a method for installing the patch,

5 ein Flussdiagramm eines dem Verfahren von 4 vorgeschalteten Verfahrens zur Autorisierungsprüfung, und 5 a flowchart of the method of 4 upstream procedure for authorization verification, and

6 eine beispielhafte Darstellung der Anpassung einer Instanzfeldstruktur durch Einfügen eines zusätzlichen Feldes. 6 an exemplary representation of the adaptation of an instance field structure by inserting an additional field.

Das in 1 dargestellte Smartcard-Modul 10 ist im vorliegenden Ausführungsbeispiel als Chipmodul zum Einlöten in ein Host-Gerät – z. B. ein Mobiltelefon – ausgestaltet. Das Smartcard-Modul 10 weist einen Prozessor 12, einen Speicher 14, eine Host-Schnittstelle 16 und eine Funk-Schnittstelle 18 auf. Hierbei wird die Host-Schnittstelle 16 zur leitungsgebundenen Kommunikation mit dem Host-Gerät verwendet, während die Funk-Schnittstelle 18 zur drahtlosen Kommunikation über kurze Distanzen (NFC = Near Field Communications) mit einem externen Terminal dient. In Ausführungsalternativen ist das Smartcard-Modul 10 dagegen als übliche Chipkarte oder als übliches Chipmodul mit nur einer Schnittstelle zur leitungsgebundenen oder drahtlosen Kommunikation mit einem externen Terminal ausgestaltet.This in 1 illustrated smart card module 10 is in the present embodiment as a chip module for soldering in a host device -. B. a mobile phone - designed. The smart card module 10 has a processor 12 , a store 14 , a host interface 16 and a radio interface 18 on. This will be the host interface 16 used for wired communication with the host device while the radio interface 18 for short-range wireless communication (NFC = Near Field Communications) to an external terminal. In alternative executions is the smart card module 10 however, designed as a conventional chip card or as a conventional chip module with only one interface for wired or wireless communication with an external terminal.

Der Speicher 14 ist in mehrere Speicherfelder unterteilt. Im vorliegenden Ausführungsbeispiel sind als Speicherfelder ein als ROM ausgebildeter Festwertspeicher 20, ein als EEPROM ausgebildeter, nicht-flüchtiger überschreibbarer Speicher 22 und ein als RAM ausgebildeter Arbeitsspeicher 24 vorgesehen.The memory 14 is divided into several memory fields. In the present embodiment, memory arrays are a ROM formed as a read-only memory 20 , a non-volatile overwritable memory designed as an EEPROM 22 and a random access memory configured as RAM 24 intended.

Das Smartcard-Modul 10 ist gemäß dem Java-Card-Standard ausgestaltet. Es weist Systemprogramme 26 auf, die sich teils im Festwertspeicher 20 und teils im nicht-flüchtigen überschreibbaren Speicher 22 befinden sowie auf Daten im Arbeitsspeicher 24 zugreifen. Die Systemprogramme 26 umfassen ein hardwarenahes Betriebssystem 28 und eine objektorientierte Laufzeitumgebung 30. Die Laufzeitumgebung 30 weist eine virtuelle Maschine 32 auf, die im vorliegenden Ausführungsbeispiel als JCVM (Java Card Virtual Machine) ausgestaltet ist. Ferner ist als Teil der Laufzeitumgebung 30 eine Klassenbibliothek 34 vorgesehen, die Anwendungsprogrammierschnittstellen und Hilfsprogramme bereitstellt. Insbesondere weist die Laufzeitumgebung 30 – im vorliegenden Ausführungsbeispiel die Klassenbibliothek 34 – eine Patchroutine 36 auf, die die im folgenden noch genau beschriebenen Patchfunktionen steuert.The smart card module 10 is designed according to the Java Card standard. It has system programs 26 on, which is partly in read-only memory 20 and partly in non-volatile overwritable memory 22 and data in memory 24 access. The system programs 26 include a hardware-related operating system 28 and an object-oriented runtime environment 30 , The runtime environment 30 assigns a virtual machine 32 on, which is configured in the present embodiment as a JCVM (Java Card Virtual Machine). It is also part of the runtime environment 30 a class library 34 providing application programming interfaces and utilities. In particular, the runtime environment points 30 - In the present embodiment, the class library 34 - a patch routine 36 which controls the patch functions described in more detail below.

In 1 ist ein in dem Smartcard-Modul 10 installiertes Programmpaket 38 veranschaulicht, das beispielsweise eine vom Smartcard-Modul 10 ausgeführte Applikation (Applet) bildet. Es versteht sich, dass zusätzliche, in 1 nicht gezeigte Programmpakete vorhanden sein können. Das Programmpaket 38 weist eine Mehrzahl von Klassen auf, von denen in 1 beispielhaft drei Klassen A, B, C dargestellt sind. Die Klassen A, B, C bilden eine Klassenhierarchie. In dieser Klassenhierarchie ist die Klasse A die unmittelbare Superklasse der Klasse B, und die Klasse C ist eine unmittelbare Subklasse der Klasse B. Dies ist durch Verweise 40, 42 veranschaulicht, die zu jeder Klasse deren Superklasse bezeichnen.In 1 is one in the smart card module 10 installed program package 38 For example, this is one of the smart card module 10 executed application (applet) forms. It is understood that additional, in 1 not shown program packages may be present. The program package 38 has a plurality of classes, of which in 1 three classes A, B, C are shown by way of example. The classes A, B, C form a class hierarchy. In this class hierarchy, class A is the immediate superclass of class B, and class C is an immediate subclass of class B. This is by reference 40 . 42 which designates for each class its superclass.

Im nicht-flüchtigen überschreibbaren Speicher 22 sind Klassenfeldstrukturen 44 und Instanzfeldstrukturen 46 angelegt, die in 1 lediglich schematisch gezeigt sind. Jede Klassenfeldstruktur 44 enthält die Felder der Klassenvariablen je einer Klasse. Jede Instanzfeldstruktur 56 ist je einer Klasseninstanz – also je einem Objekt – zugeordnet und enthält die Felder der Instanzvariablen dieses Objekts.In non-volatile overwritable memory 22 are class field structures 44 and instance field structures 46 created in 1 are shown only schematically. Each class field structure 44 contains the fields of the class variables for each class. Each instance field structure 56 is always assigned to a class instance - that is, one object each - and contains the fields of the instance variables of this object.

In dem hier beschriebenen Ausführungsbeispiel befinden sich sowohl die Klassenfeldstrukturen 44 als auch die Instanzfeldstrukturen 46 in einem Heap (Haldenspeicher) 48, der in einem Bereich des nicht-flüchtigen überschreibbaren Speichers 22 angelegt ist. Es sind jedoch auch Ausführungsformen vorgesehen, bei denen die Klassenfeldstrukturen 44 als statische Datenstrukturen außerhalb des Heap 48 angelegt werden.In the embodiment described here, both the class field structures are located 44 as well as the instance field structures 46 in a heap 48 which is in an area of non-volatile overwritable memory 22 is created. However, embodiments are also provided in which the class field structures 44 as static data structures outside the heap 48 be created.

1 zeigt ferner ein Patchpaket 50, das über die Host-Schnittstelle 16 in das Smartcard-Modul 10 eingelesen wird. Das Patchpaket 50 enthält einen oder mehrere Patches P. Jedem Patch P kann optional je eine Anpassungsbeschrei bung 52 zugeordnet sein, die angibt, auf welche Weise durch den Patch P betroffene Instanzfeldstrukturen 46 beim Installieren des Patches P geändert werden müssen. Beispielsweise kann das Patchpaket 50 ähnlich wie eine CAP-Datei (CAP = Converted Applet) aufgebaut sein, wobei eventuell vorhandene Anpassungsbeschreibungen 52 in einer zusätzlichen Komponente enthalten sind. Die diversen in einer solchen CAP-Datei enthaltenen Datenkomponenten sind also solche gut bekannt und daher in 1 nicht gezeigt. 1 also shows a patch package 50 that's over the host interface 16 into the smart card module 10 is read. The patch package 50 contains one or more patches P. Each patch P can optionally have one adaptation description 52 which specifies, in what way instance field structures affected by the patch P. 46 need to be changed when installing patch P. For example, the patch package 50 similar to a CAP file (CAP = Converted Applet) be constructed, with any existing adaptation descriptions 52 contained in an additional component. The various data components contained in such a CAP file are so well known and therefore in 1 Not shown.

Das Patchpaket 50 wird im vorliegenden Ausführungsbeispiel durch die bei Java-Card-Modulen üblichen Mechanismen wie ein Programmpaket (Package) in das Smartcard-Modul 10 geladen. Bei der Installation des Patchpakets 50 als "Pseudo-Applikation" wird jedoch die Patchroutine 36 ausgeführt, die den Patch P auf die im folgenden beschriebene Weise in die Programmausführungsumgebung des Smartcard-Moduls 10 einbindet. Das Laden eines Patchpakets als "Pseudo-Applikation" ist bereits in der deutschen Patentanmeldung 10 2007 003 580.4 der Giesecke & Devrient GmbH, eingereicht am 24. Januar 2007, beschrieben.The patch package 50 is in the present embodiment by the usual in Java Card modules mechanisms such as a program package (Package) in the smart card module 10 loaded. When installing the patch package 50 however, the "pseudo-application" becomes the patch routine 36 execute the patch P into the program execution environment of the smart card module in the manner described below 10 integrates. Loading a patch package as a "pseudo-application" is already in the German patent application 10 2007 003 580.4 Giesecke & Devrient GmbH, filed January 24, 2007.

2 und 3 zeigen jeweils Datenstrukturen im nicht-flüchtigen überschreibbaren Speicher 22 des Smartcard-Moduls 10 vor bzw. nach der Installation des Patch P durch die Patchroutine 36. Die Schritte, die von der Patchroutine 36 zur Installation des Patch P für die Klasse B als zu patchende Klasse ausgeführt werden, sind in 4 dargestellt. Mit anderen Worten ist 3 das Ergebnis, wenn das Verfahren gemäß 4 auf Speicherstrukturen gemäß 2 angewendet wird. 2 and 3 each show data structures in the non-volatile overwritable memory 22 of the smart card module 10 before or after installing the patch P through the patch routine 36 , The steps taken by the patch routine 36 to install the class P patch P as the class to be patched are in 4 shown. In other words 3 the result, if the procedure according to 4 on memory structures according to 2 is applied.

Der in 2 gezeigte ursprüngliche Speicherinhalt entspricht der Darstellung von 1 mit den drei Klassen A, B, C, deren Klassenhierarchie durch die Verweise 40, 42 auf die jeweilige Superklasse angegeben ist. Jeder Verweis 40, 42 ist in einer Klassenkomponente CLASS der entsprechenden Methode B, C enthalten. In an sich bekannter Weise enthalten die Klassen komponenten CLASS weitere Informationen, beispielsweise eine Tabelle mit Verweisen auf Bytecode für die implementierten Methoden und eine Tabelle der in der Klasse definierten Interfaces. Ein solches Interface 54 mit dem Namen "patchable" ist in der Klassenkomponente der Klasse B gezeigt.The in 2 shown original memory contents corresponds to the representation of 1 with the three classes A, B, C, their class hierarchy by the references 40 . 42 indicated on the respective superclass. Every reference 40 . 42 is contained in a class component CLASS of the corresponding method B, C. In a manner known per se, the classes CLASS contain additional information, for example a table with references to bytecode for the implemented methods and a table of the interfaces defined in the class. Such an interface 54 named "patchable" is shown in the class component of class B.

Die Klassen A, B, C weisen ferner Bytecode der von ihnen implementierten Methoden auf. 2 zeigt beispielhaft eine Implementierung der Methode "authorize", deren Bedeutung später noch beschrieben werden wird.Classes A, B, C also have bytecodes of the methods they implement. 2 shows an example of an implementation of the method "authorize", whose meaning will be described later.

Das Programmpaket 38 (1) mit den Klassen A, B, C weist ferner eine Exportkomponente 58 (2) auf, die Verweise auf alle exportierten Elemente (Klassen, Methoden und Felder) des Programmpakets 38 enthält. 2 zeigt beispielhaft einen solchen Verweis 60, der ein von der Klasse B exportiertes Element betrifft und daher auf die Klasse B gerichtet ist. Die Darstellung in 2 ist hier lediglich symbolisch zu verstehen. In einer realen Implementierung würde sich die Information des Verweises 60 in einer Konstantenpool-Komponente des Programmpakets 38 befinden. Aus Gründen der Übersichtlichkeit werden diese und andere Einzelheiten hier jedoch nicht im Detail beschrieben und gezeigt, weil sie im Zusammenhang mit Java-Card-Umgebungen gut bekannt sind.The program package 38 ( 1 ) with classes A, B, C also has an export component 58 ( 2 ), the references to all exported elements (classes, methods and fields) of the program package 38 contains. 2 shows an example of such a reference 60 which relates to an item exported from class B and is therefore directed to class B. The representation in 2 is here to be understood only symbolically. In a real implementation, the information of the reference would be 60 in a Constant Pool component of the program package 38 are located. However, for the sake of clarity, these and other details are not described and shown in detail here because they are well known in the context of Java Card environments.

Vor dem Patchvorgang weist der Heap 48 den in 2 beispielhaft gezeigten Speicherinhalt auf. Eine Klassenfeldstruktur 44B enthält Felder für die Klassenvariablen von Klasse B, und eine Klassenfeldstruktur 44C enthält ein Feld für eine Klassenvariable der abgeleiteten Klasse C. Bidirektionale Verweise 62B, 62C – zusammenfassend als Verweise 62 bezeichnet – erlauben es, von der Klasse B, C auf die zugehörige Klassenfeldstruktur 44B, 44C zuzugreifen und umgekehrt.Before the patching process, the heap points 48 the in 2 shown memory contents on. A class field structure 44B contains fields for the class variables of class B, and a class field structure 44C Contains a field for a class variable of derived class C. Bidirectional References 62B . 62C - in summary as references 62 - allow, from class B, C, to the associated class field structure 44B . 44C to access and vice versa.

In der Darstellung von 2 wird angenommen, dass zwei Instanzen der Klasse B und eine Instanz der Klasse C existieren. Entsprechende Instanz feldstrukturen 46B.1, 46B.2 und 46C.1 für die Felder dieser Instanzen sind in 2 gezeigt. Da die Klasse C von der Klasse B abgeleitet ist, weist die Instanzfeldstruktur 46C.1 dasselbe erste Feld wie die Instanzfeldstrukturen 46B.1, 46B.2 auf, das in 2 durch eine schräge Schraffur gekennzeichnet ist. Ferner enthält die Instanzfeldstruktur 46C.1 ein weiteres, in 2 senkrecht schraffiertes Feld für eine zusätzliche Instanzvariable der Klasse C. Verweise 64B.1, 64B.2 und 64C.1 – zusammenfassend als Verweise 64 bezeichnet – erlauben es, von den Instanzfeldstrukturen 46B.1, 46B.2 und 46C.1 auf die zugeordneten Klassen B und C zuzugreifen.In the presentation of 2 It is assumed that two instances of class B and one instance of class C exist. Corresponding instance field structures 46B.1 . 46B.2 and 46C.1 for the fields of these instances are in 2 shown. Because class C is derived from class B, the instance field structure assigns 46C.1 the same first field as the instance field structures 46B.1 . 46B.2 on that in 2 is characterized by an oblique hatching. It also contains the instance field structure 46C.1 another, in 2 vertical hatched field for an additional instance variable of class C. References 64B.1 . 64B.2 and 64C.1 - in summary as references 64 denotes - allow, from the instance field structures 46B.1 . 46B.2 and 46C.1 to access the assigned classes B and C.

Das in 4 gezeigte Verfahren zur Installation des Patch P, der die Klasse B als zu patchende Klasse betrifft, beginnt in Schritt S1 mit dem Anlegen geeigneter Speicherstrukturen. Insbesondere sind dies die Speicherstrukturen für die diversen Komponenten des Patch P sowie, falls der Patch P mindestens eine Klassenvariable enthält, eine entsprechende Klassenfeldstruktur 44P (gezeigt in 3).This in 4 The method shown for installing the patch P, which concerns the class B as a class to be patched, begins in step S1 with the creation of suitable memory structures. In particular, these are the memory structures for the various components of the patch P and, if the patch P contains at least one class variable, a corresponding class field structure 44P (shown in 3 ).

Der Patch P ist im wesentlichen wie eine Klasse aufgebaut und weist daher auch dieselben Komponenten wie eine Klasse auf. Unter anderem sind dies eine Klassenkomponente CLASS, Bytecode für die vom Patch P implementierten Methoden, ein Konstantenpool, und so weiter. Das Anlegen der Speicherstrukturen in Schritt S1 (4) entspricht damit ungefähr dem dynamischen Nachladen einer Klasse, so dass die an sich bekannten Funktionen der Laufzeitumgebung 30 ohne oder mit geringfügigen Änderungen verwendet werden können. Im Unterschied zu einer vollständigen Klasse implementiert der Patch jedoch nicht alle Methoden der zu patchenden Klasse, sondern nur diejenigen Methoden, die in der zu patchenden Klasse fehlerhaft sind oder aus sonstigen Gründen verändert werden sollen.The patch P is essentially constructed like a class and therefore has the same components as a class. Among other things, these are a class component CLASS, bytecode for the methods implemented by the patch P, a constant pool, and so on. The application of the memory structures in step S1 ( 4 ) corresponds approximately to the dynamic reloading of a class, so that the known functions of the runtime environment 30 can be used without or with minor changes. However, unlike a full class, the patch does not implement all the methods of the class to be patched, but only those methods that are broken in the class being patched or that should be modified for other reasons.

In Schritt S2 wird der Patch P nun in die Klassenhierarchie als Subklasse der zu patchenden Klasse – hier B – eingefügt. Hierzu wird ein Verweis 66 auf die Klasse B in die Klassenkomponente CLASS des Patch P eingetragen und somit die Klasse B als Superklasse des Patch P definiert. Dieser Schritt kann auch mit Schritt S1 kombiniert werden.In step S2, the patch P is now inserted into the class hierarchy as a subclass of the class to be patched - here B -. This will be a reference 66 is entered on the class B in the class component CLASS of the patch P and thus defines the class B as the superclass of the patch P. This step can also be combined with step S1.

Abgeleitete Klassen der gepatchten Klasse sollen nur dann eine Methode der gepatchten Klasse aufrufen, wenn diese Methode nicht durch den Patch P ersetzt wurde. Für Klassen, die von der gepatchten Klasse intern abgeleitet sind – also Klassen, deren Superklasse die gepatchte Klasse ist und die sich im selben Programmpaket 38 wie die gepatchte Klasse befinden – wird dies dadurch erzielt, dass der Patch P als Superklasse dieser abgeleiteten Klassen eingetragen wird. Dies geschieht in den Schritten S3 und S4. Die abgeleiteten Klassen können in Schritt S3 beispielsweise durch Überprüfen ihrer Superklassen-Verweise (Bytecodes "instance_of" bzw. "checkcast") identifiziert werden.Derived classes of the patched class should call a method of the patched class only if this method has not been replaced by the patch P. For classes internally derived from the patched class - that is, classes whose superclass is the patched class and which are in the same program package 38 like the patched class - this is achieved by entering patch P as the superclass of these derived classes. This happens in steps S3 and S4. For example, the derived classes may be identified in step S3 by checking their superclass references (bytecodes "instance_of" and "checkcast", respectively).

Im vorliegenden Beispiel ist die Klasse C die einzige intern abgeleitete Klasse, und deren Verweis 42 wird in Schritt S4 auf den Patch P gerichtet, um P als Superklasse von C zu definieren.In this example, class C is the only internally derived class, and their reference 42 is directed to the patch P in step S4 to define P as the superclass of C.

Insgesamt ist durch die Schritte S2, S3 und S4 der Patch P in die Klassenhierarchie "zwischen" die gepatchte Klasse B und deren ursprüngliche Subklassen – hier C – eingebunden worden. Dies ermöglicht es, die von der Java-Card-Umgebung bereitgestellte Polymorphie zu nutzen, um die im Patch P enthaltenen Methoden in der gewünschten Weise in das Programmpaket 38 einzubinden. So wird ein von der Klasse C ausgehender Methodenaufruf, der eine in der Klasse B enthaltene und nun vom Patch P überschriebene Methode betrifft, korrekt durch den Patch P ausgeführt. Eine vom Patch P nicht überschriebene Methode der Klasse B wird jedoch nach wie vor von der Implementierung der Klasse B ausgeführt.Overall, the patch P has been integrated into the class hierarchy "between" the patched class B and its original subclasses - here C - through the steps S2, S3 and S4. This makes it possible to use the polymorphism provided by the Java Card environment to incorporate the methods contained in the patch P in the desired manner in the program package 38 integrate. Thus, a method call from class C, which involves a method contained in class B and now overwritten by patch P, is executed correctly by patch P. However, a class B method not overwritten by patch P is still performed by the class B implementation.

Klassen die sich nicht im Programmpaket 38 befinden ("externe Klassen") und die von der gepatchten Klasse B abgeleitet sind, werden von der Java-Card-Laufzeitumgebung 30 dynamisch über die Exportkomponente 58 des Programmpakets 38 gelinkt. Auch in diesem Fall soll eine korrekte Einbindung des Patch P sichergestellt werden. Hierzu werden in Schritt S5 alle Exporttoken der Exportkomponente 58, die sich auf ein ursprünglich von der gepatchten Klasse B bereitgestelltes und durch den Patch P ersetztes Element beziehen, so verändert, dass sie nun auf den Patch P verweisen. Wie bereits erwähnt, ist zur Anpassung der Exporttoken in vielen Implementierungen des hier beschriebenen Verfahrens eine Veränderung der Einträge in der Konstantenpool-Komponente der gepatchten Klasse B erforderlich.Classes are not in the program package 38 ("external classes") and those derived from the patched class B are from the Java Card runtime environment 30 dynamically via the export component 58 of the program package 38 linked. Also in this case, a correct integration of the patch P should be ensured. For this purpose, in step S5, all export tokens of the export component 58 , which refer to an element originally provided by the patched class B and replaced by the patch P, are changed so that they now refer to the patch P. As previously mentioned, in many implementations of the method described herein, modification of the export tokens requires changing the entries in the constant pool component of the patched class B.

Die in Schritt S5 ausgeführte Anpassung ist in 3 dadurch veranschaulicht, dass der Verweis 60 der Exportkomponente 58 so verändert wurde, dass er nicht mehr auf die gepatchte Klasse B, sondern auf den Patch P zeigt. Durch diese Maßnahme wird der Patch P auch hinsichtlich externer abgeleiteter Klassen korrekt in die Aufrufordnung der Java-Card-Laufzeitumgebung 30 eingebunden.The adaptation made in step S5 is in 3 This demonstrates that the reference 60 the export component 58 was changed so that it no longer points to the patched class B, but to the patch P. As a result of this measure, the patch P also correctly enters the calling order of the Java Card runtime environment with regard to external derived classes 30 involved.

Wenn der Patch P keine Objekte mit eigenen Instanzvariablen deklariert, dann ist der Installationsvorgang nun abgeschlossen, wie dies in 4 durch einen gestrichelten Pfeil angedeutet ist. In manchen Ausgestaltungen kann es jedoch auch in diesem Fall erforderlich sein, die Klassenverweise 64 einiger oder aller Instanzfeldstrukturen 46, die bislang auf die zu patchende Klasse – z. B. Klasse B – verweisen, in Verweise auf den Patch P zu ändern. In diesen Ausgestaltungen werden immer Schritte ähnlich den Schritten S6 und S7 ausgeführt.If patch P does not declare objects with their own instance variables, then the installation process is now complete, as in 4 is indicated by a dashed arrow. However, in some embodiments, the class references may also be required in this case 64 some or all instance field structures 46 , which so far on the to be patched class - z. For example, class B - to change to references to the patch P. In these embodiments, steps similar to steps S6 and S7 are always executed.

Wenn die Methoden des Patch P zusätzliche Felder für Instanzvariablen benötigen und/oder für bestehende Felder einen anderen Typ erfordern, so werden auf jeden Fall die Schritte S6–S10 ausgeführt, in denen die bereits im Heap 48 bestehenden Instanzfeldstrukturen 46 dem Patch P angepasst werden. Hierdurch wird erreicht, dass bereits vorhandene Objekte (z. B. mit personalisierten Daten) über den Patchvorgang hinweg erhalten bleiben.If the methods of the patch P require additional fields for instance variables and / or require a different type for existing fields, then in any case, the steps S6-S10 are executed in which the already in the heap 48 existing instance field structures 46 be adapted to the patch P. This ensures that existing objects (eg with personalized data) are preserved throughout the patching process.

In Schritt S6 werden alle Instanzfeldstrukturen 46 gesucht, die der zu patchenden Klasse zugeordnet sind. Dies kann geschehen, indem der Heap 48 durchsucht wird und die Verweise 64 der Instanzfeldstrukturen 46 analysiert werden. Die Verweise 64 der gefundenen Instanzfeldstrukturen 46 werden in Schritt S7 so verändert, dass sie sich auf den Patch P beziehen. Ferner werden in Schritt S8 die zusätzlich benötigten Felder in die Instanzfeldstrukturen 46 eingefügt bzw. der Typ bestehender Felder geändert (z. B. Änderung eines Feldes des Typs "short" in ein Feld des Typs "int"). Hierbei wird der bisherige Feldinhalt soweit möglich erhalten und – bei einer Typänderung – an den neuen Typ angepasst.In step S6, all instance field structures become 46 searched for, which are assigned to the class to be patched. This can be done by heap 48 is searched and the references 64 the instance field structures 46 to be analyzed. The references 64 the found instance field structures 46 are changed in step S7 so that they refer to the patch P. Furthermore, in step S8, the additional required fields are added to the instance field structures 46 changed or the type of existing fields changed (eg change of a field of the type "short" into a field of the type "int"). In this case, the previous field content is preserved as far as possible and - in case of a type change - adapted to the new type.

In dem in 3 gezeigten Beispiel betreffen die Schritte S6–S8 die beiden Instanzfeldstrukturen 46B.1 und 46B.2, deren Verweise 64B.1, 64B.2 in Schritt S7 auf den Patch P gerichtet werden. Ferner werden in dem Beispiel von 3 die Instanzfeldstrukturen 46B.1 und 46B.2 um je ein zusätzliches Feld – das durch eine horizontale Schraffur gekennzeichnet ist – erweitert.In the in 3 In the example shown, steps S6-S8 relate to the two instance field structures 46B.1 and 46B.2 whose references 64B.1 . 64B.2 be directed to the patch P in step S7. Further, in the example of 3 the instance field structures 46B.1 and 46B.2 by an additional field - which is characterized by a horizontal hatching - extended.

Während in dem Beispiel gemäß 3 das horizontal schraffierte Feld lediglich an die Instanzfeldstrukturen 46B.1 und 46B.2 angehängt wurde, ist in manchen Ausgestaltungen der Erfindung ein Mechanismus vorgesehen, der eine weitgehende Umgestaltung der in Schritt S6 identifizierten Instanzfeldstrukturen 46 gestattet. Hierzu wertet die Patchroutine 36 die in diesen Ausführungsformen im Patchpaket 50 enthaltene Anpassungsbeschreibung 52 aus. Diese Anpassungsbeschreibung 52 gibt an, auf welche Weise die Anpassung der bestehenden Instanzfeldstrukturen 46 erfolgen soll.While in the example according to 3 the horizontally hatched field only to the instance field structures 46B.1 and 46B.2 In some embodiments of the invention, a mechanism has been provided which substantially reconfigures the instance field structures identified in step S6 46 allowed. The patch routine evaluates this 36 in these embodiments in the patch package 50 included adjustment description 52 out. This adjustment description 52 indicates how to customize the existing instance field structures 46 should be done.

In einem Ausführungsbeispiel enthält die Anpassungsbeschreibung 52 einen Eintrag "objektfeld_anpassungsbeschreibung_1", der beispielsweise wie folgt definiert sein kann:

Figure 00140001
In one embodiment, the adjustment description includes 52 an entry "objektfeld_anpassungsbeschreibung_1", which can be defined as follows, for example:
Figure 00140001

Ein solcher beispielhafter Eintrag gibt an, dass eine alte Instanzfeldstruktur 46 – z. B. der Klasse B – fünf Felder hat, während die angepasste Instanzfeldstruktur 46' – z. B. der Klasse P – sechs Felder haben soll und das neue Feld zwischen die früheren Felder mit den Indexwerten 2 und 3 eingefügt werden soll. 6 veranschaulicht die Anpassung einer Instanzfeldstruktur 46 mit Feldinhalten F0–F4 gemäß diesem Eintrag.Such an exemplary entry indicates that an old instance field structure 46 - z. For example, class B has five fields while the custom instance field structure 46 ' - z. For example, class P should have six fields and the new field should be inserted between the earlier fields with index values 2 and 3. 6 illustrates the customization of an instance field structure 46 with field contents F0-F4 according to this entry.

In den weiteren Schritten S9 und S10 werden diejenigen Instanzfeldstrukturen 46 gesucht und angepasst, die Subklassen der zu patchenden Klasse zugeordnet sind. Die Schritte S9 und S10 werden ähnlich wie die Schritte S5 und S8 ausgeführt; eine Änderung von Klassenverweisen 64 ist hier nicht erforderlich. Zur Anpassung der Instanzfeldstrukturen 46 in Schritt S10 können die gleichen Regeln und/oder Anpassungsbeschreibungen 52 wie in Schritt S8 herangezogen werden, da jede in Schritt S10 bearbeitete Instanzfeldstruktur 46 dieselbe anfängliche Folge von Feldern wie jede in Schritt S8 bearbeitete Instanzfeldstruktur 46 der zu patchenden Superklasse enthält. Die in Schritt S10 bearbeiteten Instanzfeldstrukturen 46 können jedoch, weil sie abgeleiteten Klassen zugeordnet sind, zusätzliche ("angehängte") Felder aufweisen. Diese Felder müssen bei der Anpassung in Schritt S10 erhalten bleiben.In the further steps S9 and S10, those instance field structures become 46 searched for and adapted, the subclasses are assigned to the class to be patched. Steps S9 and S10 are executed similarly to steps S5 and S8; a change of class references 64 is not required here. To adapt the instance field structures 46 in step S10, the same rules and / or customization descriptions may be used 52 as in step S8, since each instance field structure processed in step S10 46 the same initial sequence of fields as each instance field structure edited in step S8 46 contains the superclass to be patched. The instance field structures processed in step S10 46 however, because they are associated with derived classes, they may have additional ("attached") fields. These fields must be preserved in the adaptation in step S10.

In dem in 3 gezeigten Beispiel betreffen die Schritte S9 und S10 die Instanzfeldstruktur 46C.1, die der abgeleiteten Klasse C zugeordnet ist. In diese Instanzfeldstruktur 46C.1 wird das zusätzliche vom Patch P benötigte Feld (in 3 horizontal schraffiert) eingefügt, und zwar vor das (in 3 vertikal schraffierte) Feld für die zusätzliche Instanzvariable der Klasse C.In the in 3 In the example shown, steps S9 and S10 relate to the instance field structure 46C.1 assigned to the derived class C. In this instance field structure 46C.1 becomes the additional field required by patch P (in 3 horizontally hatched), before the (in 3 vertically hatched) field for the additional instance variable of class C.

In Ausführungsvarianten der gerade beschriebenen Schritte werden die bestehenden Instanzfeldstrukturen 46 nicht verändert (oder zumindest werden keine Felder zwischen bestehende Felder eingefügt), so dass auch auf die Anpassungsbeschreibung 52 verzichtet werden kann. Felder, die vom Patch P gegebenenfalls zusätzlich benötigt werden, werden in diesen Ausführungsvarianten in einem gesonderten Patchfeld angelegt, das sich beispielsweise am Ende jeder Instanzfeldstruktur 46 oder davon getrennt im Heap 48 befinden kann. Die Laufzeitumgebung 30 hat dann die Aufgabe, Zugriffe auf solche Felder geeignet auf die jeweiligen Speicherorte zu lenken.In embodiments of the steps just described, the existing instance field structures 46 not changed (or at least no fields are inserted between existing fields), so that also on the adjustment description 52 can be waived. Fields which may additionally be required by the patch P are created in these embodiment variants in a separate patch field, for example at the end of each instance field structure 46 or separated from it in the heap 48 can be located. The runtime environment 30 then has the task to direct accesses to such fields suitable to the respective storage locations.

Es versteht sich, dass die Aufteilung der Schritte S6–S8 und S9–S10 in 4 lediglich aus Gründen der klareren Darstellung gewählt wurde. In einer Implementierung können insbesondere die Schritte S6 und S9 kombiniert werden, so dass der gesamte Heap 48 nach Instanzfeldstrukturen 46 durchsucht wird und für jede gefundene Struktur je nach dem Ziel ihres Verweises 64 entweder die Schritte S7 und S8 oder der Schritt 10 oder kein weiterer Verarbeitungsvorgang ausgeführt wird (letzteres dann, wenn die Instanzfeldstruktur 46 weder der gepatchten Klasse noch einer davon abgeleiteten Klasse zugeordnet ist).It is understood that the division of steps S6-S8 and S9-S10 in FIG 4 was chosen only for reasons of clarity. In particular, in one implementation, steps S6 and S9 may be combined so that the entire heap 48 by instance field structures 46 is searched and for each found structure according to the purpose of their reference 64 either steps S7 and S8 or step 10 or no further processing is performed (the latter when the instance field structure 46 is not associated with either the patched class or any derived class).

Ferner versteht sich, dass in möglichen Implementierungen die in 4 gezeigten Schritte in unterschiedlicher, gegebenenfalls von 4 abweichen der Reihenfolge und/oder ineinander verzahnt (interleaved) ausgeführt werden können. Die Installation des Patch P erfolgt jedoch in den hier beschriebenen Ausführungsbeispielen stets als atomare Transaktion.Furthermore, it is understood that in possible implementations the in 4 shown steps in different, possibly from 4 differ in the order and / or interlocked (interleaved) can be performed. However, the installation of the patch P always takes place in the embodiments described here as an atomic transaction.

Das hier beschriebene Verfahren gestattet die Installation des Patch P in einer ungesicherten Umgebung, also beispielsweise, wenn sich das Smartcard-Modul 10 bereits beim Endbenutzer befindet. Da ein fehlerhafter oder böswillig programmierter Patch P hohen Schaden anrichten kann, ist es in den hier beschriebenen Ausführungsbeispielen wichtig, jede unautorisierte Installation sicher zu verhindern. Zu diesem Zweck können an sich bekannte Signatur- und Authentifizierungsprüfungen eingesetzt werden, die z. B. beim Laden des Patchpakets 50 oder vor dem Beginn der Patchinstallation durchgeführt werden.The method described here allows installation of the patch P in an unsecured environment, such as when the smart card module 10 already at the end user. Since a faulty or maliciously-programmed patch P can cause high damage, it is important in the embodiments described herein to safely prevent any unauthorized installation. For this purpose, known signature and authentication checks can be used, the z. When loading the patch package 50 or before starting the patch installation.

In diesem Zusammenhang ist es ein besonderes Merkmal vieler Ausführungsformen der Erfindung, dass die zu patchende Klasse oder eine Superklasse davon – hier z. B. die Klassen B oder A – bestimmt oder zumindest beeinflusst, ob die Patchinstallation zugelassen wird. Auf diese Weise können unterschiedliche Sicherheitsanforderungen unproblematisch berücksichtigt werden. Beispielsweise kann eine Klasse, die lediglich ein Adressbuch verwaltet, die Installation eines Patches zulassen, während eine sicherheitskritische Klasse, die z. B. für die Kennwortüberprüfung zuständig ist, keine Veränderung erlaubt.In In this context, it is a particular feature of many embodiments the invention that the class to be patched or a superclass of it - here z. B. classes B or A - determined or at least influenced if the patch installation allowed becomes. In this way, different security requirements be considered without problems. For example, can a class that maintains only an address book, the installation allow a patch while a security critical Class, the z. For password verification is responsible, no change allowed.

Im hier beschriebenen Ausführungsbeispiel führt die Patchroutine 36 vor dem eigentlichen, in 4 gezeigten Patchvorgang eine Autorisierungsprüfung durch, wie sie beispielhaft in 5 gezeigt ist. Der Ablauf startet in Schritt T1 damit, dass die Patchroutine 36 das Patchpaket 50 überprüft und die zu patchende Klasse und das zugehörige Programmpaket – hier z. B. die Klasse B und das Programmpaket 38 – identifiziert.In the embodiment described here performs the patch routine 36 before the actual, in 4 The patch process shown in FIG. 1 performs an authorization check as exemplified in FIG 5 is shown. The process starts in step T1 with the patch routine 36 the patch package 50 checked and the class to be patched and the associated program package - here z. Class B and the program package 38 - identified.

In Schritt T2 überprüft die Patchroutine 36 nun, ob das Patchen der identifizierten Klasse grundsätzlich zulässig ist. Hierzu wird im vorliegenden Ausführungsbeispiel ermittelt, ob in der zu patchenden Klasse – hier B – oder einer Superklasse davon – hier A – das Interface "patchable" implementiert ist. Dieses Interface, das als sogenanntes "tagging interface" verwendet wird, kann beispielsweise wie folgt definiert sein:

Figure 00170001
In step T2, the patch routine checks 36 now, whether the patching of the identified class is basically allowed. For this purpose, in the present exemplary embodiment it is determined whether the interface "patchable" is implemented here in the class to be patched - in this case B - or a superclass thereof - here A. This interface, which is used as a so-called "tagging interface", can be defined, for example, as follows:
Figure 00170001

Im vorliegenden Beispiel ist gemäß 2 das Interface "patchable" in der Klasse B als Interface 54 definiert, und die Methode "authorize" ist durch den Bytecode 56 implementiert. Das Verfahren wird daher mit Schritt T3 fortgesetzt. Andernfalls würde das Verfahren mit einer Fehlermeldung abgebrochen und der Patch P nicht installiert werden.In the present example is according to 2 the interface "patchable" in class B as interface 54 defined, and the method "authorize" is by the bytecode 56 implemented. The method is therefore continued with step T3. Otherwise, the procedure would be aborted with an error message and the patch P would not be installed.

In Schritt T3 wird durch einen Aufruf der Methode "authorize" bestimmt, ob der Patch P installiert werden darf. Hierbei ist grundsätzlich die Klasse, die das Interface "patchable" implementiert, selbst für die Sicherheit verantwortlich. So erwartet die Methode "authorize" im vorliegenden Beispiel die Parameter "buffer", "offset" und "length", die auf Autorisierungsdaten des Patch P – z. B. ein Kennwort oder eine Signatur – verweisen. Ferner kann in manchen Ausgestaltungen vorgesehen sein, dass der Patch P ganz oder teilweise verschlüsselt ist; in diesem Fall muss der Code zusätzlich entschlüsselt werden.In Step T3 is determined by a call to the "authorize" method, whether the patch P may be installed. This is basically the class that implements the patchable interface itself responsible for safety. So the method awaits "authorize" in this example the parameters "buffer", "offset" and "length", which depends on authorization data of the patch P - z. For example, a password or a signature - refer. Further may be provided in some embodiments that the patch P is encrypted in whole or in part; in this case In addition, the code must be decrypted.

Die Funktionen zur Autorisierung des Patch P und gegebenenfalls zur Entschlüsselung von Programmcode brauchen nicht notwendigerweise in der Klasse der Methode "authorize" implementiert zu sein. Vielmehr ist in manchen Ausführungsformen vorgesehen, dass die Methode "authorize" auf Funktionen zurückgreift, die von einer Security Domain bereitgestellt werden.The Functions for the authorization of the patch P and, if necessary, for Decryption of program code does not necessarily need to be implemented in the class of the method "authorize". Much more In some embodiments, it is provided that the method "authorize" accesses functions from a Security domain be provided.

Im Einklang mit dem üblichen Sprachgebrauch ist eine Security Domain eine auf dem Smartcard-Modul 10 befindliche Applikation, die Aufgaben der Schlüsselverwaltung übernimmt und sonstige sicherheitskritische Dienste bereitstellt. Auch in Ausgestaltungen, die eine Security Domain verwenden, ist jedoch aus Sicherheitsgründen nach wie vor eine explizite Kennzeichnung der pachbaren Klassen durch das Interfache "patchable" vorgesehen.In keeping with common usage, a security domain is one on the smart card module 10 located application that performs key management tasks and provides other safety-critical services. However, in embodiments which use a security domain, an explicit identification of the pachable classes by the inter-patch "patchable" is still provided for security reasons.

Als Abwehrmaßnahme gegen Angriffe, bei denen der Berechnungsablauf der Autorisierungsüberprüfung in Schritt T3 durch externe Einwirkung gestört wird, kann die Autorisierungsüberprüfung oder ein Teil davon mehrfach durchgeführt werden, indem z. B. die Methode "authorize" mehrfach aufgerufen wird. Die Ergebnisse werden dann verglichen, und die Erlaubnis zur Installation des Patch wird nur bei positiver Übereinstimmung erteilt.When Defense against attacks in which the calculation process the authorization check in step T3 external interference is disturbed, the authorization verification or part of it can be done several times by z. For example, the method "authorize" is called multiple times. The results are then compared, and permission to install the patch will only be issued if the match is positive.

Wenn in Schritt T4 festgestellt wird, dass die Autorisierung zur Installation des Patch P erteilt wurde, wird in Schritt T5 das Installationsverfahren gemäß 4 für die in Schritt T1 aufgefundene Klasse B als zu patchende Klasse ausgeführt. Andernfalls wird das Verfahren abgebrochen.If it is determined in step T4 that the authorization for installing the patch P has been issued, in step T5, the installation procedure according to 4 for the class B found in step T1 as too running patching class. Otherwise, the procedure is aborted.

Es versteht sich, dass zumindest der von der zu patchenden Klasse ausgeführte Schritt T3 abgeschlossen sein muss, bevor der eigentliche Patchvorgang in Schritt T5 beginnt. Mit anderen Worten darf während des Patchvorgangs kein Thread aktiv sein, der die zu patchende Klasse oder Objekte davon betrifft.It It is understood that at least the one executed by the class to be patched Step T3 must be completed before the actual patching process begins in step T5. In other words, during In the patching process, no thread that is the class to be patched will be active or objects thereof.

In dem hier beschriebenen Ausführungsbeispiel reicht es aus, wenn das Interface "patchable" in der zu patchenden Klasse oder einer ihrer Superklassen implementiert ist. Die Eigenschaft, patchbar zu sein, ist somit vererbbar. Der bei Java-Card-Umgebungen übliche Vererbungsmechanismus kann in vorteilhafter Weise auch eingesetzt werden, wenn eine abgeleitete Klasse aus Sicherheitsgründen nicht patchbar sein soll. Diese abgeleitete Klasse braucht dann lediglich das Interface "patchable" neu zu implementieren.In the embodiment described here it is sufficient if the interface is "patchable" in the class to be patched or one of its superclasses is implemented. The property, patchable Being thus is hereditary. The usual in Java Card environments Inheritance mechanism can also be used advantageously if a derived class for security reasons should not be patchable. This derived class then needs just to reimplement the interface "patchable".

Es versteht sich, dass in Abwandlungen statt eines Interface "patchable" auch ein Interface "non-patchable" vorgesehen sein kann, das die Patchbarkeit einer Klasse und der davon abgeleiteten Klassen ausschließt.It understands that in modifications instead of an interface "patchable" also an interface "non-patchable" can be provided, which the Patchability of a class and its derived classes.

In weiteren Ausführungsalternativen können die Klassen eines Programmpakets 38 auf andere Weise als durch die Implementierung eines Interface angeben, ob ein Patch zulässig sein soll und gegebenenfalls welche Sicherheitsüberprüfungen vorgenommen werden sollen. Die eigentliche Autorisierung wird dann durch die Patchroutine 36 durchgeführt. Es sind auch Ausführungsformen vorgesehen, bei denen die Autorisierungsüberprüfung gänzlich durch die Patchroutine 36 – ohne eine Beeinflussungsmöglichkeit durch die zu patchende Klasse – ausgeführt wird.In further alternative embodiments, the classes of a program package 38 other than by implementing an interface, whether a patch should be allowed and, if so, what security checks should be made. The actual authorization is then through the patch routine 36 carried out. Embodiments are also provided in which the authorization check is performed entirely by the patch routine 36 - is performed without being influenced by the class to be patched.

Es versteht sich, dass die hier beschriebenen Ausführungsformen und Ausführungsvarianten lediglich als Beispiele zu sehen sind. Weitere Abwandlungen und Kombinationen der hier beschriebenen Merkmale sind für den Fachmann unmittelbar ersichtlich.It it should be understood that the embodiments described herein and variants to see only as examples are. Further modifications and combinations of the ones described here Features will be readily apparent to those skilled in the art.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list The documents listed by the applicant have been automated generated and is solely for better information recorded by the reader. The list is not part of the German Patent or utility model application. The DPMA takes over no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • - US 6202208 [0007] - US 6202208 [0007]
  • - DE 102007003580 [0030] - DE 102007003580 [0030]

Zitierte Nicht-PatentliteraturCited non-patent literature

  • - "Runtime Environment Specification Java CardTM Platform, Version 2.2.2", März 2006 [0003] - "Runtime Environment Specification Java CardTM Platform, Version 2.2.2", March 2006 [0003]

Claims (16)

Verfahren zum Installieren eines Patch (P) in einem Smartcard-Modul (10), wobei das Smartcard-Modul (10) eine objektorientierte Laufzeitumgebung (30) und mindestens ein Programmpaket (38) mit einer Mehrzahl von Klassen (A, B, C) aufweist, die eine Klassenhierarchie bilden, dadurch gekennzeichnet, dass der Patch (P) in die Klassenhierarchie als Subklasse der gepatchten Klasse (B) eingefügt wird.Method for installing a patch (P) in a smart card module ( 10 ), whereby the smart card module ( 10 ) an object-oriented runtime environment ( 30 ) and at least one program package ( 38 ) having a plurality of classes (A, B, C) constituting a class hierarchy, characterized in that the patch (P) is inserted into the class hierarchy as a subclass of the patched class (B). Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Klassenhierarchie des Programmpakets (38) vor dem Patchvorgang mindestens eine Subklasse (C) der zu patchenden Klasse (B) aufweist, und dass der Patch (P) in die Klassenhierarchie als Superklasse jeder solchen Subklasse (C) eingefügt wird.Method according to claim 1, characterized in that the class hierarchy of the program package ( 38 ) has at least one subclass (C) of the class (B) to be patched before the patching, and that the patch (P) is inserted into the class hierarchy as the superclass of each such subclass (C). Verfahren nach Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, dass für mindestens ein vom Patch (P) betroffenes Element der gepatchten Klasse (B) der Patch (P) in eine Exportkomponente (58) des Programmpakets (38) eingetragen wird.Method according to Claim 1 or Claim 2, characterized in that for at least one element of the patched class (B) affected by the patch (P), the patch (P) is converted into an export component ( 58 ) of the program package ( 38 ) is entered. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass für den Patch (P) eine neue Klassenfeldstruktur (44P) angelegt wird.Method according to one of claims 1 to 3, characterized in that for the patch (P) a new class field structure ( 44P ) is created. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass mindestens ein vor dem Patchvorgang auf die zu patchende Klasse (B) verweisender Klassenverweis (64B.1, 64B.2) mindestens einer Instanzfeldstruktur (46B.1, 46B.2) in einen auf den Patch (P) verweisenden Klassenverweis (64B.1, 64B.2) geändert wird.Method according to one of claims 1 to 4, characterized in that at least one before the patching on the class to be patched class (B) referring class reference ( 64B.1 . 64B.2 ) at least one instance field structure ( 46B.1 . 46B.2 ) into a class reference referring to the patch (P) ( 64B.1 . 64B.2 ) will be changed. Verfahren zum Installieren eines Patch (P) in einem Smartcard-Modul (10), wobei das Smartcard-Modul (10) eine objektorientierte Laufzeitumgebung (30) und mindestens ein Programmpaket (38) mit einer Mehrzahl von Klassen (A, B, C) aufweist, dadurch gekennzeichnet, dass mindestens eine Instanzfeldstruktur (46B.1, 46B.2) der gepatchten Klasse (B) und/oder mindestens eine Instanzfeldstruktur (46C.1) einer Subklasse (C) der gepatchten Klasse (B) an eine durch den Patch (P) bewirkte Änderung angepasst wird.Method for installing a patch (P) in a smart card module ( 10 ), whereby the smart card module ( 10 ) an object-oriented runtime environment ( 30 ) and at least one program package ( 38 ) having a plurality of classes (A, B, C), characterized in that at least one instance field structure ( 46B.1 . 46B.2 ) of the patched class (B) and / or at least one instance field structure ( 46C.1 ) of a subclass (C) of the patched class (B) is adapted to a change caused by the patch (P). Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass das Anpassen der mindestens einen Instanzfeldstruktur (46B.1, 46B.2, 46C.1) das Anhängen oder Einfügen eines Feldes oder das Ändern eines Typs eines Feldes beinhaltet.Method according to claim 6, characterized in that the adaptation of the at least one instance field structure ( 46B.1 . 46B.2 . 46C.1 ) includes appending or inserting a field or changing a type of a field. Verfahren nach Anspruch 6 oder Anspruch 7, dadurch gekennzeichnet, dass bei der Anpassung der mindestens einen Instanzfeldstruktur (46B.1, 46B.2, 46C.1) der bisherige Inhalt der Instanzfeldstruktur (46B.1, 46B.2, 46C.1) erhalten bleibt.Method according to claim 6 or claim 7, characterized in that when adapting the at least one instance field structure ( 46B.1 . 46B.2 . 46C.1 ) the previous content of the instance field structure ( 46B.1 . 46B.2 . 46C.1 ) preserved. Verfahren nach einem der Ansprüche 6 bis 8, dadurch gekennzeichnet, dass dem Patch (P) eine Anpassungsbeschreibung (52) zugeordnet ist, die angibt, wie die Instanzfeldstuktur (46B.1, 46B.2, 46C.1) angepasst werden soll.Method according to one of claims 6 to 8, characterized in that the patch (P) an adjustment description ( 52 ), which specifies how the instance field structure ( 46B.1 . 46B.2 . 46C.1 ) should be adjusted. Verfahren nach einem der Ansprüche 6 bis 9, dadurch gekennzeichnet, dass das Verfahren ferner gemäß einem der Ansprüche 1 bis 5 ausgestaltet ist.Method according to one of claims 6 to 9, characterized in that the method further according to a of claims 1 to 5 is configured. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, dass die zu patchende Klasse (B) oder eine Superklasse (A) der zu patchenden Klasse (B) bestimmt oder zumindest beeinflusst, ob der Patch (P) installiert werden darf.Method according to one of claims 1 to 10, characterized in that the class to be patched (B) or a superclass (A) of the class (B) to be attached or at least influences whether the patch (P) may be installed. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass die zu patchende Klasse (B) oder die Superklasse (A) ein Interface mit einer Methode zur Autorisierungsüberprüfung implementiert.Method according to claim 11, characterized in that that the class to be patched (B) or the superclass (A) is an interface with an authorization verification method implemented. Verfahren nach einem der Ansprüche 1 bis 12, dadurch gekennzeichnet, dass das Smartcard-Modul (10) als Java Card ausgestaltet ist.Method according to one of claims 1 to 12, characterized in that the smart card module ( 10 ) is designed as a Java Card. Verfahren nach einem der Ansprüche 1 bis 13, dadurch gekennzeichnet, dass der Patch in einem Patchpaket (50) im CAP-Format in das Smartcard-Modul (10) geladen wird.Method according to one of claims 1 to 13, characterized in that the patch in a patch package ( 50 ) in CAP format into the smart card module ( 10 ) is loaded. Maschinenlesbarer Datenträger mit Programmbefehlen, die dazu eingerichtet sind, einen Prozessor (12) eines Smartcard-Moduls (10) zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 14 zu veranlassen.Machine-readable data carrier with program instructions, which are adapted to a processor ( 12 ) of a smart card module ( 10 ) for carrying out a method according to one of claims 1 to 14. Smartcard-Modul (10) mit einem Prozessor (12) und mindestens einem Speicher (14), das zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 14 eingerichtet ist.Smart card module ( 10 ) with a processor ( 12 ) and at least one memory ( 14 ) arranged to carry out a method according to any one of claims 1 to 14.
DE102007041873A 2007-09-04 2007-09-04 Patch installing method for e.g. object oriented programming language card in mobile phone, involves forming class hierarchy using classes in program package, and including patch in class hierarchy as subclass of one of classes Withdrawn DE102007041873A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102007041873A DE102007041873A1 (en) 2007-09-04 2007-09-04 Patch installing method for e.g. object oriented programming language card in mobile phone, involves forming class hierarchy using classes in program package, and including patch in class hierarchy as subclass of one of classes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102007041873A DE102007041873A1 (en) 2007-09-04 2007-09-04 Patch installing method for e.g. object oriented programming language card in mobile phone, involves forming class hierarchy using classes in program package, and including patch in class hierarchy as subclass of one of classes

Publications (1)

Publication Number Publication Date
DE102007041873A1 true DE102007041873A1 (en) 2009-03-05

Family

ID=40299153

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007041873A Withdrawn DE102007041873A1 (en) 2007-09-04 2007-09-04 Patch installing method for e.g. object oriented programming language card in mobile phone, involves forming class hierarchy using classes in program package, and including patch in class hierarchy as subclass of one of classes

Country Status (1)

Country Link
DE (1) DE102007041873A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101783040B (en) * 2008-12-23 2011-08-17 深圳市莫廷影像技术有限公司 Smart card swipe machine and information exchange method
CN103455342A (en) * 2013-06-06 2013-12-18 广州市久邦数码科技有限公司 Theme calling method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6202208B1 (en) 1998-09-29 2001-03-13 Nortel Networks Limited Patching environment for modifying a Java virtual machine and method
US20070074187A1 (en) * 2005-09-29 2007-03-29 O'brien Thomas E Method and apparatus for inserting code fixes into applications at runtime
DE102007003580A1 (en) 2007-01-24 2008-07-31 Giesecke & Devrient Gmbh Install a patch in a smart card module

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6202208B1 (en) 1998-09-29 2001-03-13 Nortel Networks Limited Patching environment for modifying a Java virtual machine and method
US20070074187A1 (en) * 2005-09-29 2007-03-29 O'brien Thomas E Method and apparatus for inserting code fixes into applications at runtime
DE102007003580A1 (en) 2007-01-24 2008-07-31 Giesecke & Devrient Gmbh Install a patch in a smart card module

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Runtime Environment Specification Java CardTM Platform, Version 2.2.2", März 2006

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101783040B (en) * 2008-12-23 2011-08-17 深圳市莫廷影像技术有限公司 Smart card swipe machine and information exchange method
CN103455342A (en) * 2013-06-06 2013-12-18 广州市久邦数码科技有限公司 Theme calling method and device
CN103455342B (en) * 2013-06-06 2016-08-10 广州市久邦数码科技有限公司 The method and device that a kind of theme calls

Similar Documents

Publication Publication Date Title
EP2318921B1 (en) Loading and updating an application requiring personalization
DE102007003580A1 (en) Install a patch in a smart card module
DE60308990T2 (en) PROTECTION OF A DEVICE AGAINST UNWANTED USE IN A SAFE ENVIRONMENT
DE102014220616A1 (en) Method for loading executable program instructions into a chip card in active operation
DE102012015573A1 (en) Method for activating an operating system in a security module
DE102013013179A1 (en) Method for operating a security element
DE10324337B4 (en) Computer system and associated method for performing a safety program
DE102004057490B4 (en) Device and method for processing a program code
EP1695207A2 (en) Java smart card chip comprising a memory area reserved for global variables
DE102007041873A1 (en) Patch installing method for e.g. object oriented programming language card in mobile phone, involves forming class hierarchy using classes in program package, and including patch in class hierarchy as subclass of one of classes
EP2987078B1 (en) Method for providing an application on a security module, and such a security module
EP2524333B1 (en) Method for providing a secure counter on a terminal
WO2011033030A1 (en) Method for installing and configuring applications on a portable data carrier
DE102018115758A1 (en) Security of Java Card key objects
DE102004058882A1 (en) Generating program code in a load format and providing executable program code
EP3329415B1 (en) Chipcard with a main and a persistent application allows an update of the main application without changes to the user data stored in the persistens application
EP3215957B1 (en) Chip card, chip card system, and method for accessing a chip card
EP2573677B1 (en) Data exchange between applications
DE102021001883A1 (en) Initialization and personalization of a UICC
DE102018006208A1 (en) Chipset, for terminal, with updatable program
EP1638058A2 (en) Verification of a data carrier before the installation of an application program
DE102011113091A1 (en) Program package installation
EP1801694A2 (en) Securing a portable data carrier against attacks
DE102005059248A1 (en) Program code generating method for e.g. data oriented chip card, involves providing formal model that comprises of information about security parameter, and generating program codes such that security parameter is maintained
WO2015158419A1 (en) Method for executing a code sequence on a security module

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
R012 Request for examination validly filed
R012 Request for examination validly filed

Effective date: 20140827

R081 Change of applicant/patentee

Owner name: GIESECKE+DEVRIENT MOBILE SECURITY GMBH, DE

Free format text: FORMER OWNER: GIESECKE & DEVRIENT GMBH, 81677 MUENCHEN, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee