DE102007003580A1 - Installieren eines Patch in einem Smartcard-Modul - Google Patents

Installieren eines Patch in einem Smartcard-Modul Download PDF

Info

Publication number
DE102007003580A1
DE102007003580A1 DE102007003580A DE102007003580A DE102007003580A1 DE 102007003580 A1 DE102007003580 A1 DE 102007003580A1 DE 102007003580 A DE102007003580 A DE 102007003580A DE 102007003580 A DE102007003580 A DE 102007003580A DE 102007003580 A1 DE102007003580 A1 DE 102007003580A1
Authority
DE
Germany
Prior art keywords
patch
smart card
card module
application
routine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102007003580A
Other languages
English (en)
Inventor
Robert Pinzinger
Jörn TREGER
Ludger Holtmann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Giesecke and Devrient GmbH
Original Assignee
Giesecke and Devrient GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Priority to DE102007003580A priority Critical patent/DE102007003580A1/de
Priority to US12/449,142 priority patent/US20100012732A1/en
Priority to EP08707129A priority patent/EP2111578A1/de
Priority to PCT/EP2008/000387 priority patent/WO2008089922A1/de
Publication of DE102007003580A1 publication Critical patent/DE102007003580A1/de
Ceased 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Business, Economics & Management (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Stored Programmes (AREA)

Abstract

Bei einem Verfahren zum Installieren eines Patch (62) in einem Smartcard-Modul wird ein Ladeprogramm (38) zum Laden einer Pseudo-Applikation (50), die den Patch (62) enthält, in das Smartcard-Modul genutzt. Eine in der Pseudo-Applikation (50) enthaltene Installationsroutine (52) wird aufgerufen, dieen (26) des Smartcard-Moduls enthaltenen Patchroutine (40) mitteilt, um den Patch (62) an einen Ort außerhalb der Pseudo-Applikation (50) zu installieren. Die erfindungsgemäße Technik kann zum Installieren des Patch (62) im Feld verwendet werden und erfordert nur geringen Aufwand und nur geringe Änderungen an bestehenden Komponenten und Strukturen.

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.
  • 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. Nach der Herstellung eines Gerätes mit fest eingebautem Smartcard-Modul – z. B. eines Mobiltelefons mit eingelötetem Smartcard-Modul – ist das Smartcard-Modul nicht mehr oder nur noch mit erheblichem Aufwand von dem Gerät trennbar.
  • Viele Ausgestaltungen von Smartcard-Modulen weisen Systemprogramme auf, die eine Laufzeitumgebung zum Ausführen von Applikationen und ein Ladeprogramm zum Laden von Applikationen in das Smartcard-Modul 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 einschließlich des Ladeprogramms bei Java-Card-Modulen.
  • 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.
  • 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.
  • Prinzipiell könnten natürlich eine neue Generation von Smartcard-Modulen und ein speziell angepasstes Hintergrundsystem entwickelt werden, die eine Funktion zum Patchen der Smartcard-Module im Feld bereitstellen. Diese Vorgehensweise wäre jedoch technisch komplex, teuer und zeitaufwändig. Es besteht daher Bedarf nach einer Patch-Möglichkeit, die sich mit möglichst wenig Aufwand und möglichst geringen Änderungen bei heute üblichen Smartcard-Modulen – z. B. Java-Card-Modulen – und heute üblichen Hintergrundsystemen einsetzen lässt.
  • Das US-Patent 6,202,208 offenbart eine Technik zum Patchen eines von einer JavaTM Virtual Machine – also nicht einer Java Card Virtual Machine – üblicherweise auf einem PC oder jedenfalls einem hinsichtlich seiner Hardware-Ressourcen nicht beschränkten System ausgeführten Programms. Beim Einspielen eines Patch wird mindestens ein Eintrag in einer Methodentabelle des Programms geändert, so daß der geänderte Eintrag auf einen durch den Patch bereitgestellten Methodenkö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.
  • Die Erfindung hat die Aufgabe, eine Technik zur Installation eines Patch in einem Smartcard-Modul auch nach der Komplettierung bzw. Initialisierung des Smartcard-Moduls bereitzustellen, die nur geringen Aufwand und nur geringe Änderungen an bestehenden Komponenten und Strukturen erfordert.
  • Erfindungsgemäß wird diese Aufgabe durch ein Verfahren mit den Merkmalen des Anspruchs 1, ein Verfahren mit den Merkmalen des Anspruchs 11 und ein Smartcard-Modul mit den Merkmalen des Anspruchs 12 gelöst. Die abhängigen Ansprüche betreffen optionale Merkmale einiger Ausgestaltungen der Erfindung.
  • Die Erfindung geht von der Grundidee aus, die an sich bekannte Funktion des Smartcard-Moduls zum Laden von Applikationen auch zum Einbringen des Patch in das Smartcard-Modul zu verwenden. Hierzu ist erfindungsgemäß vorgesehen, mittels des Ladeprogramms eine Pseudo-Applikation, die den Patch enthält, in das Smartcard-Modul zu laden, und eine in der Pseudo-Applikation enthaltene Installationsroutine aufzurufen, die ihrerseits den Patch einer in den Systemprogrammen enthaltenen Patchroutine mit teilt, um den Patch an einen Ort außerhalb der Pseudo-Applikation zu installieren.
  • Das erfindungsgemäße "Verpacken" des Patch in die Pseudo-Applikation hat den erheblichen Vorteil, daß an sich bekannte Funktionen und Strukturen, wie sie z. B. bei Smartcard-Modulen nach dem Java-Card-Standard üblich sind, zum Erzielen der Patch-Funktionalität genutzt werden. So braucht z. B. in manchen Ausgestaltungen lediglich die Patchroutine neu entwickelt zu werden, und auch diese Patchroutine kann sich auf bereits bestehende Funktionen zum Einbringen von Patches während der Initialisierung und/oder Komplettierung des Smartcard-Moduls stützen. Das eigentlich zum Laden regulärer Applikationen vorgesehene Ladeprogramm kann in manchen Ausgestaltungen ohne jede Veränderung auch zum Laden der Pseudo-Applikation, die den Patch enthält, eingesetzt werden.
  • Das erfindungsgemäße Verfahren ist für die Außenwelt transparent. Der in die Pseudo-Applikation verpackte Patch kann daher auf beliebige Weise – z. B. in einem OTA-Ladevorgang (OTA = over the air) in das Smartcard-Modul eingebracht werden.
  • In manchen Ausgestaltungen ist der Patch für mindestens eines der Systemprogramme des Smartcard-Moduls vorgesehen. Der Patch kann beispielsweise in einen gesonderten Patchbereich in einem nicht-flüchtigen überschreibbaren Speicher des Smartcard-Moduls eingeschrieben werden.
  • In manchen Ausführungsformen ist der Patch durch eine Signatur abgesichert. Alternativ oder zusätzlich kann ein Identifikator vorgesehen sein, der sicherstellt, daß nur eine ununterbrochene Folge aufeinander aufbauender Patches installiert werden kann. Allgemein können beliebige kryptographische Prüfsummen und Authentisierungen verwendet werden, um das Verfahren gegen eine unautorisierte Veränderung der im Smartcard-Modul gespeicherten Programme abzusichern.
  • 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.
  • 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:
  • 1 ein Blockdiagramm mit Funktionseinheiten eines Smartcard-Moduls nach einem Ausführungsbeispiel der Erfindung,
  • 2 eine Darstellung der Systemprogramme und der Pseudo-Applikation im Speicher des Smartcard-Moduls nach 1 bei der Installation des Patch, und
  • 3 ein Ablaufdiagramm eines Verfahrens zur Installation eines Patch in dem Smartcard-Modul nach 1.
  • 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.
  • 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.
  • Das Smartcard-Modul 10 ist gemäß dem Java-Card-Standard ausgestaltet. Es weist umfangreiche 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 bilden ein Betriebssystem 28, eine Laufzeitumgebung 30 und einen Satz von Hilfsprogrammen 32. Das Betriebssystem 28 stellt hardwarenahe Funktionen bereit, die von der Laufzeitumgebung 30 und den Hilfsprogrammen 32 genutzt werden. Die Laufzeitumgebung 30 weist eine virtuelle Maschine 34 auf, die im vorliegenden Ausführungsbeispiel als JCVM (Java Card Virtual Machine) ausgestaltet ist. Ferner ist als Teil der Laufzeitumgebung 30 eine Klassenbibliothek 36 vorgesehen, die Anwendungsprogrammierschnittstellen bereitstellt.
  • In den Systemprogrammen 26 sind ein Ladeprogramm 38 (Installer) und eine Patchroutine 40 enthalten, deren Arbeitsweise später noch genau beschrieben wird. In dem Ausführungsbeispiel gemäß 1 ist die Patchroutine 40 Bestandteil der Klassenbibliothek 36, während das Ladeprogramm 38 als eines der Hilfsprogramme 32 ausgestaltet ist. In Ausführungsalternativen können das Ladeprogramm 38 und/oder die Patchroutine 40 in anderen Gliederungseinheiten der Systemprogramme 26 enthalten sein.
  • Bis auf die Patchroutine 40 sind sämtliche Systemprogramme 26 übliche Komponenten eines Java-Card-Moduls. Die Patchroutine 40 kann schon bei der Herstellung des Smartcard-Moduls 10 vorgesehen sein. Es sind jedoch auch Ausgestaltungen möglich, bei denen die Patchroutine 40 erst zu einem späteren Zeitpunkt – z. B. bei der Komplettierung oder Initialisierung des Smartcard-Moduls 10 – in den nicht-flüchtigen überschreibbaren Speicher 22 eingebracht wird. Hierzu kann beispielsweise eine Patchfunktion nach dem Stand der Technik verwendet werden. Derartige Ausgestaltungen haben den Vorteil, daß die erfindungsgemäße Patch-Funktionalität in einem völlig üblichen Java-Card-Modul implementiert werden kann.
  • Das Smartcard-Modul 10 ist dazu eingerichtet, mehrere Applikationen – in 1 ist beispielhaft nur eine Applikation 42 gezeigt – im nicht-flüchtigen überschreibbaren Speicher 22 aufzunehmen. Im vorliegenden Ausführungsbeispiel ist jede Applikation 42 als Java Card Applet ausgebildet und aus der Klasse javacardframework.Applet abgeleitet. Jede Applikation 42 weist mehrere Methoden auf, die in 1 durch horizontale Unterteilungen angedeutet sind. Insbesondere sind in jeder Applikation 42 eine Installationsroutine 44 und eine Verarbeitungsroutine 46 enthalten.
  • Die Installationsroutine 44 ist im vorliegenden Ausführungsbeispiel eine Methode mit dem Namen "install", die gemäß dem Java-Card-Standard nach dem Laden der Applikation 42 aufgerufen wird, um eine Instanz der Applikation 42 zu erzeugen und bei der Laufzeitumgebung zu registrieren. Die als Methode mit dem Namen "process" ausgestaltete Verarbeitungsroutine 46 interpretiert und bearbeitet eingehende Kommando-APDUs (APDU = Application Protocol Data Unit), die an die Applikation 42 gerichtet sind. In der Regel weist die Applikation 42 weitere Routinen – z. B. Methoden mit den Namen "select" und "deselect" – auf, die hier jedoch nicht weiter von Belang sind.
  • Das Ladeprogramm 38 (Installer) dient zum Laden weiterer Applikationen in das Smartcard-Modul 10. In den vorliegenden Ausführungsbeispielen ist das Ladeprogramm 38 ein an sich bekannter Installer gemäß dem Java-Card-Standard, wie er z. B. in dem eingangs erwähnten Dokument "Runtime Environment Specification Java CardTM Platform, Version 2.2.2" beschrieben ist. Gegenüber seiner Umgebung verhält sich das Ladeprogramm 38 wie eine vom Smartcard-Modul 10 ausgeführte Applikation, auch wenn es in der Wortwahl des vorliegenden Dokuments Teil der Systemprogramme 26 ist.
  • Das Ladeprogramm 38 erhält eine in das Smartcard-Modul 10 zu ladende Applikation in Form eines Programmpakets 48 im CAP-Format (CAP = Converted Applet). Zum Laden der Applikation wird zunächst das Ladeprogramm 38 selektiert. Werden – wie verbreitet üblich – Kommandos gemäß der GP (Global Platform) Spezifikation genutzt, erfolgt der Ladevorgang dann durch die Kommando-APDU "INSTALL FOR LOAD", gefolgt von einer oder mehrerer Kommando-APDUs "LOAD". Nachdem das neue Programmpaket 48 erfolgreich in den nicht-flüchtigen überschreibbaren Speicher 22 geladen wurde, wird es mittels der Kommando-APDU "INSTALL FOR INSTALL" installiert. Hierbei wird unter anderem die Installationsroutine – im vorliegenden Ausführungsbeispiel die "install"-Methode – der neuen Applikation ausgeführt. Bei Zugrundelegung eines anderen Standards können an Stelle der genannten GP-konformen Kommandos auch anders aussehende Kommandos treten, die aber diegleiche Funktion haben.
  • Der gerade kurz umrissene Vorgang zum Nachladen von Applikationen in das Smartcard-Modul 10 ist als solcher aus dem Java-Card-Standard bekannt. In den hier beschriebenen Ausführungsbeispielen wird dieser Ladevorgang jedoch genutzt, um einen Patch – also einen "Flicken" für ein bereits im Smartcard-Modul 10 befindliches System- oder Anwendungsprogramm – in das Smartcard-Modul 10 zu laden und dort zu installieren. Hierzu ist erfindungsgemäß die Verwendung einer Pseudo-Applikation 50 vorgesehen.
  • Die in 2 gezeigte Pseudo-Applikation 50 entspricht in ihrer Struktur einer regulären Applikation 42. Insbesondere weist die Pseudo-Applikation 50 eine als "install"-Methode ausgestaltete Installationsroutine 52 und eine als "process"-Methode ausgestaltete Verarbeitungsroutine 54 auf. Ferner sind in der Pseudo-Applikation 50 Patchdaten 56 enthalten, die im vorliegenden Ausführungsbeispiel in eine Signatur 58, einen Identifikator 60 und den eigentlichen Patch 62 gegliedert sind. Der Patch 62 liegt zweckmäßig in verschlüsselter Form vor. Vorzugsweise erfolgt die Verschlüsselung unter Verwendung eines symmetrischen Verfahrens. Die zur Entschlüsselung eines Patches 62 benötigten Schlüssel können dann vorab zusammen mit der Patchroutine 40 zweckmäßig in den nicht-flüchtigen Speicher 22 eingebracht werden. Die Signatur 58 deckt sowohl den Identifikator 60 als auch den Patch 62 ab und stellt eine Sicherung gegen unerlaubte Manipulationen dar. Ohne weiteres können statt einer einzelnen Signatur 58 auch mehrere Signaturen vorgesehen sein, die z. B. verschiedenen Nutzern der Systemprogramme 26 oder der Laufzeitumgebung 30 zugeordnet sein können.
  • Im Unterschied zu einer regulären Applikation 42 ist die Pseudo-Applikation 50 nicht zur Verarbeitung von Kommando-APDUs eingerichtet. Die Verarbeitungsroutine 54 der Pseudo-Applikation 50 ist daher nur der Form nach vorhanden und besteht lediglich aus einem Befehl, der eine Ausnahmebehandlung auslöst. Dieser Befehl kann beispielsweise wie folgt lauten:
    ISOException.throwIt(ISO7816.SW_FUNC_NOT_SUPPORTED);
  • Die Installationsroutine 52 führt die eigentliche Aufgabe der Pseudo-Applikation 50 aus. Diese Aufgabe besteht im vorliegenden Ausführungsbeispiel darin, daß die Installationsroutine 52, sobald sie im Zuge des Ladens der Pseudo-Applikation 50 in das Smartcard-Modul 10 aufgerufen wird, ihrer seits die Patchroutine 40 aufruft und ihr die Patchdaten 56 – beziehungsweise einen Verweis auf die Patchdaten 56 – übergibt. Dieser Vorgang ist in 2 durch die gestrichelten Pfeile angedeutet.
  • Die Patchroutine 40 verifiziert daraufhin die Patchdaten 56. Hierbei stellt sie mittels geeigneter Verfahren sicher, daß die Patchdaten 56 in Ordnung und alle Voraussetzungen für die Installation des Patches 62 erfüllt sind. Insbesondere überprüft die Patchroutine 40 die Korrektheit der Signatur 58 und die Gültigkeit des Identifikators 60 und entschlüsselt den Patch 62, wenn dieser verschlüsselt vorliegt. Falls Überprüfungen und Entschlüsselung erfolgreich verlaufen, installiert die Patchroutine 40 den Patch 62 in dem nicht-flüchtigen Speicher 22 des Smartcard-Moduls 10. Dies ist in 2 durch den gepunkteten Pfeil dargestellt. Der Speicherbereich, in dem der Patch 62 installiert werden soll, kann beispielsweise in dem Identifikator 60 oder im Patch 62 oder in anderen – in 2 nicht gezeigten – Komponenten der Patchdaten 56 angegeben sein.
  • Die gerade beschriebene Aufteilung der Funktionen zwischen der Installationsroutine 52 und der Patchroutine 40 stellt sicher, daß das sicherheitskritische Einspielen des Patch 62 in das Smartcard-Modul 10 nur nach einer erfolgreichen Verifikation durch die Patchroutine 40 erfolgt. Es versteht sich, daß die mit dem Einspielen des Patch 62 zusammenhängenden Schritte in Ausführungsalternativen anders zwischen der Installationsroutine 52 und der Patchroutine 40 – sowie gegebenenfalls weiteren Routinen – aufgeteilt werden können. Die Verwendung einer in den Systemprogrammen 26 enthaltenen Patchroutine 40 ist in der Regel erforderlich, um den Patch 62 außerhalb der Pseudo-Applikation 50 – insbesondere in den Systemprogrammen 26 oder in manchen Ausgestaltungen auch in anderen Applikationen – installieren zu können.
  • 3 stellt die gerade kurz beschriebenen Schritte des Installieren des Patch 62 im Smartcard-Modul 10 ausführlicher dar. Der Ablauf wird in Schritt 70 dadurch ausgelöst, daß das Ladeprogramm 38 die Kommando-APDU "INSTALL FOR LOAD" erhält. Das Programmpaket 48 mit der Pseudo-Applikation 50 wird daraufhin mit einem oder mehreren "LOAD"-Kommandos in das Smartcard-Modul 10 übertragen. Hierbei wird die Pseudo-Applikation 50 im nichtflüchtigen überschreibbaren Speicher 22 angelegt.
  • Im folgenden Schritt 72 erhält das Ladeprogramm 38 die Kommando-APDU "INSTALL FOR LOAD". Das Ladeprogramm 38 bearbeitet diese Kommando-APDU und ruft dabei die Installationsroutine 52 – also die "install"-Methode der Pseudo-Applikation 50 – auf. Die Installationsroutine 52 ruft ihrerseits in Schritt 74 die Patchroutine 40 auf und teilt dieser den Patch 62 mit, indem die Installationsroutine 52 einen Verweis auf die Patchdaten 56 an die Patchroutine 40 übergibt.
  • Die Installationsroutine 52 der Pseudo-Applikation 50 braucht die bei regulären Applikationen übliche Registrierung (Aufruf der Methode Applet.register) nicht auszuführen. Im Gegensatz zu regulären Applikationen braucht die Pseudo-Applikation 50 nämlich nicht selektierbar zu sein, und ein Eintrag der Pseudo-Applikation 50 in die Registrierungsdatei (Registry) der Systemprogramme 26 ist daher nicht erforderlich.
  • Nach ihrem Aufruf prüft die Patchroutine 40 zunächst in Schritt 76 die Korrektheit der Signatur 58 bzw. Signaturen. Hierbei werden sowohl der Identifikator 60 als auch der eigentliche Patch 62 verifiziert. Sofern er verschlüsselt vorliegt, wird der Patch 62 dazu zunächst entschlüsselt. Wenn die Signaturprüfung in Schritt 76 erfolgreich war, überprüft die Patchroutine 40 in Schritt 78 den Identifikator 60. Der Identifikator 60 enthält zweckmäßig eine auch als Patchlevel bezeichnete laufende Nummer aller Patches für das Smartcard-Modul 10. In Schritt 78 wird dann geprüft, ob die laufende Nummer des gerade zur Installation vorgesehenen Patch 62 eine zulässige Nummer im Hinblick auf die Reihe der Nummern der bereits vorhandenen Patches ist; in einfachster Ausführung kann z. B. geprüft werden, ob die laufende Nummer gleich der nächst höheren Nummer des letzen im Smartcard-Modul 10 installierten Patch ist. Ist die Nummer zulässig, liegt z. B. eine lückenlose Kette von Patches vor, kann der aktuelle Patch 62 installiert werden. Schlägt einer der beiden Prüfschritte 76 und 78 fehl, wird der Vorgang abgebrochen.
  • Installation und Aktivierung des Patch 62 erfolgen in Schritt 80. Hierzu kann ein an sich bekanntes Verfahren eingesetzt werden. In vielen Ausführungsformen weist das Smartcard-Modul 10 einen gesonderten Patchbereich im nicht-flüchtigen überschreibbaren Speicher 22 auf, in den der Patch 62 eingeschrieben und durch geeignetes Setzen von Sprungzielen aktiviert wird. Es können jedoch auch andere Techniken zum Ausführen des eigentlichen Patch-Vorgangs eingesetzt werden.
  • Nach einer erfolgreichen Installation des Patch in Schritt 80 wird in einem optionalen Schritt 82 die Pseudo-Applikation 50 gelöscht und somit der von der Pseudo-Applikation 50 belegte Speicherplatz freigegeben. Hierzu wird das gemäß dem Java-Card-Standard vorgesehene Löschprogramm (Applet Deletion Manager) eingesetzt. Es sind jedoch auch Ausgestaltungen vorgesehen, bei denen die Pseudo-Applikation 50 nicht gelöscht wird.
  • Die erfolgreiche Installation des Patch 62 kann nun an das Hintergrundsystem in einer Antwort-APDU zurückgemeldet werden.
  • Es versteht sich, daß 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.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • 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.
  • Zitierte Patentliteratur
    • - US 6202208 [0007]

Claims (14)

  1. Verfahren zum Installieren eines Patch (62) in einem Smartcard-Modul (10), wobei das Smartcard-Modul (10) Systemprogramme (26) aufweist, die eine Laufzeitumgebung (30) zum Ausführen von Applikationen (42, 50) in dem Smartcard-Modul (10) und ein Ladeprogramm (38) zum Laden von Applikationen (42, 50) in das Smartcard-Modul (10) bereitstellen, mit den Schritten: – Nutzen des Ladeprogramms (38) zum Laden einer Pseudo-Applikation (50), die den Patch (62) enthält, in das Smartcard-Modul (10), und – Aufrufen einer in der Pseudo-Applikation (50) enthaltenen Installationsroutine (52), die ihrerseits den Patch (62) einer in den Systemprogrammen (26) enthaltenen Patchroutine (40) mitteilt, um den Patch (62) an einen Ort außerhalb der Pseudo-Applikation (50) zu installieren.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Patchroutine (40) den Patch (62) in mindestens eines der Systemprogramme (26) installiert.
  3. Verfahren nach Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, daß die Systemprogramme (26) ein Betriebssystem (28), eine virtuelle Maschine (34) und eine Klassenbibliothek (36) aufweisen.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß das Smartcard-Modul (10) einen nicht-flüchtigen überschreibbaren Speicher (22) aufweist, und daß die Patchroutine (40) den Patch (62) in einen Bereich des nicht-flüchtigen überschreibbaren Speicher (22) einschreibt.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß jede in das Smartcard-Modul (10) geladene Applikation (42, 50) eine Installationsroutine (44, 52) bereitstellt, die beim Laden der Applikation (42, 50) aufgerufen wird, und daß die Installationsroutine (52) der Pseudo-Applikation (50) in gleicher Weise wie die Installationsroutine (44) einer regulären Applikation (42) aufgerufen wird.
  6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß dem Patch (62) ein Identifikator (60) zugeordnet ist, und daß der Patch (62) nur dann installiert wird, wenn der Identifikator (60) angibt, daß der unmittelbar vorhergehende Patch bereits installiert wurde.
  7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß dem Patch (62) eine Signatur (58) zugeordnet ist, und daß der Patch (62) nur nach einer erfolgreichen Signaturprüfung (76) installiert wird.
  8. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß der Patch (62) in verschlüsselter Form bereitgestellt wird.
  9. Verfahren nach einem der Anspruch 6 bis Anspruch 8, dadurch gekennzeichnet, daß die Signatur (58), der Identifikator (60) und der Patch (62) in der Pseudo-Applikation (50) enthalten sind.
  10. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß das Smartcard-Modul (10) als Java Card ausgestaltet ist.
  11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß die Pseudo-Applikation (50) als Programmpaket (48) im CAP-Format in das Smartcard-Modul (10) geladen wird.
  12. Verfahren zum Komplettieren und/oder Initialisieren eines Smartcard-Moduls (10), dadurch gekennzeichnet, daß in das Smartcard-Modul (10) eine Patchroutine (40) eingebracht wird, die dazu eingerichtet ist, in einem Verfahren nach einem der Ansprüche 1 bis 11 aufgerufen und zum Installieren eines Patch (62) verwendet zu werden.
  13. Smartcard-Modul (10) mit einem Prozessor (12), einem Speicher (14) und einer Host-Schnittstelle (16), das zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 10 eingerichtet ist.
  14. Smartcard-Modul (10) nach Anspruch 13, dadurch gekennzeichnet, daß das Smartcard-Modul (10) als NFC-Modul ausgestaltet ist und eine Funk-Schnittstelle (18) aufweist.
DE102007003580A 2007-01-24 2007-01-24 Installieren eines Patch in einem Smartcard-Modul Ceased DE102007003580A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102007003580A DE102007003580A1 (de) 2007-01-24 2007-01-24 Installieren eines Patch in einem Smartcard-Modul
US12/449,142 US20100012732A1 (en) 2007-01-24 2008-01-18 Installing a patch in a smart card module
EP08707129A EP2111578A1 (de) 2007-01-24 2008-01-18 Installieren eines patch in einem smartcard-modul
PCT/EP2008/000387 WO2008089922A1 (de) 2007-01-24 2008-01-18 Installieren eines patch in einem smartcard-modul

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102007003580A DE102007003580A1 (de) 2007-01-24 2007-01-24 Installieren eines Patch in einem Smartcard-Modul

Publications (1)

Publication Number Publication Date
DE102007003580A1 true DE102007003580A1 (de) 2008-07-31

Family

ID=39345199

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007003580A Ceased DE102007003580A1 (de) 2007-01-24 2007-01-24 Installieren eines Patch in einem Smartcard-Modul

Country Status (4)

Country Link
US (1) US20100012732A1 (de)
EP (1) EP2111578A1 (de)
DE (1) DE102007003580A1 (de)
WO (1) WO2008089922A1 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007041873A1 (de) 2007-09-04 2009-03-05 Giesecke & Devrient Gmbh Installieren eines Patch in einem Smartcard-Modul
EP2466507A1 (de) * 2010-12-20 2012-06-20 Gemalto SA Verfahren zur Aktualisierung einer kodierten Datei
DE102012015573A1 (de) 2012-08-07 2014-02-13 Giesecke & Devrient Gmbh Verfahren zum Aktivieren eines Betriebssystems in einem Sicherheitsmodul

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11557163B2 (en) * 2006-08-16 2023-01-17 Isonas, Inc. System and method for integrating and adapting security control systems
US20100082702A1 (en) * 2008-09-29 2010-04-01 Honeywell International Inc. Dynamic vehicle information management
US8335921B2 (en) 2010-12-17 2012-12-18 Google, Inc. Writing application data to a secure element
US8646059B1 (en) 2010-12-17 2014-02-04 Google Inc. Wallet application for interacting with a secure element application without a trusted server for authentication
US8352749B2 (en) 2010-12-17 2013-01-08 Google Inc. Local trusted services manager for a contactless smart card
US9691055B2 (en) 2010-12-17 2017-06-27 Google Inc. Digital wallet
CN102063634B (zh) * 2010-12-24 2013-04-24 北京握奇数据系统有限公司 一种掩膜智能卡的功能扩展方法及智能卡
US8255687B1 (en) 2011-09-15 2012-08-28 Google Inc. Enabling users to select between secure service providers using a key escrow service
US8171525B1 (en) 2011-09-15 2012-05-01 Google Inc. Enabling users to select between secure service providers using a central trusted service manager
US8313036B1 (en) 2011-09-16 2012-11-20 Google Inc. Secure application directory
US8385553B1 (en) 2012-02-28 2013-02-26 Google Inc. Portable secure element
US8429409B1 (en) 2012-04-06 2013-04-23 Google Inc. Secure reset of personal and service provider information on mobile devices
EP2660721A1 (de) * 2012-05-03 2013-11-06 Gemalto SA Verfahren zum Laden einer Anwendung in einer sicheren Vorrichtung
CN103914351A (zh) * 2012-12-28 2014-07-09 北京中电华大电子设计有限责任公司 Java卡系统补丁实现方法
US10108409B2 (en) 2014-01-03 2018-10-23 Visa International Service Association Systems and methods for updatable applets
EP2930641B1 (de) * 2014-04-07 2019-04-03 Nxp B.V. Verfahren zur Programmierung einer Chipkarte, Computerprogrammprodukt und programmierbare Chipkarte
CN105631505B (zh) * 2014-11-07 2024-01-05 紫光同芯微电子有限公司 一种支持java卡补丁函数的智能卡
EP3283951B1 (de) 2015-04-14 2020-01-29 Capital One Services, LLC System und verfahren für sichere firmware-validierung
US10607220B2 (en) 2016-08-25 2020-03-31 Mastercard International Incorporated Systems and methods for consolidated message processing
CN106933536B (zh) * 2017-03-01 2019-08-27 天地融科技股份有限公司 一种智能卡的应用加载运行方法及智能卡
FR3099258B1 (fr) 2019-07-26 2022-06-24 Idemia Identity & Security France Adaptation dynamique d’un environnement d’exécution d’élément sécurisé à des profils

Citations (2)

* 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
US6338435B1 (en) * 1999-01-15 2002-01-15 Todd Carper Smart card patch manager

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6390374B1 (en) * 1999-01-15 2002-05-21 Todd Carper System and method for installing/de-installing an application on a smart card
WO2001016873A1 (en) 1999-08-31 2001-03-08 Cryptec Systems, Inc. Smart card patch manager
JP2002099312A (ja) * 2000-09-22 2002-04-05 Mitsubishi Electric Corp プログラマブルコントローラおよび制御プログラム開発支援装置
US6880084B1 (en) * 2000-09-27 2005-04-12 International Business Machines Corporation Methods, systems and computer program products for smart card product management
US20040205709A1 (en) * 2001-05-09 2004-10-14 Sun Microsystems, Inc. Method,system, and program for providing patch expressions used in determining whether to install a patch
KR20040022451A (ko) * 2001-07-16 2004-03-12 유킹 렌 임베디드 소프트웨어 업데이트 시스템
JP3880384B2 (ja) * 2001-12-06 2007-02-14 松下電器産業株式会社 Icカード
US20060080655A1 (en) 2004-10-09 2006-04-13 Axalto Inc. System and method for post-issuance code update employing embedded native code
US7685591B2 (en) * 2004-12-20 2010-03-23 Microsoft Corporation Customizing a software application through a patch file
US20070067325A1 (en) * 2005-02-14 2007-03-22 Xsapio, Ltd. Methods and apparatus to load and run software programs in data collection devices

Patent Citations (2)

* 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
US6338435B1 (en) * 1999-01-15 2002-01-15 Todd Carper Smart card patch manager

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Runtime Environment Specification, Java CardTM 2.2.2 Platform (online). Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,California 95054, USA, 2006 (recherchiert am 30.07.2007). Im Inter- net: <URL:http://java.sun.com/products/javacard/sp ecs.html>
Runtime Environment Specification, Java CardTM 2.2.2 Platform (online). Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,California 95054, USA, 2006 (recherchiert am 30.07.2007). Im Internet: <URL:http://java.sun.com/products/javacard/sp ecs.html> *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007041873A1 (de) 2007-09-04 2009-03-05 Giesecke & Devrient Gmbh Installieren eines Patch in einem Smartcard-Modul
EP2466507A1 (de) * 2010-12-20 2012-06-20 Gemalto SA Verfahren zur Aktualisierung einer kodierten Datei
WO2012084496A1 (en) * 2010-12-20 2012-06-28 Gemalto Sa Method for updating an encoded file
DE102012015573A1 (de) 2012-08-07 2014-02-13 Giesecke & Devrient Gmbh Verfahren zum Aktivieren eines Betriebssystems in einem Sicherheitsmodul
WO2014023394A1 (de) 2012-08-07 2014-02-13 Giesecke & Devrient Gmbh Verfahren zum aktivieren eines betriebssystems in einem sicherheitsmodul
US9390259B2 (en) 2012-08-07 2016-07-12 Giesecke & Devrient Gmbh Method for activating an operating system in a security module

Also Published As

Publication number Publication date
US20100012732A1 (en) 2010-01-21
EP2111578A1 (de) 2009-10-28
WO2008089922A1 (de) 2008-07-31

Similar Documents

Publication Publication Date Title
DE102007003580A1 (de) Installieren eines Patch in einem Smartcard-Modul
EP2318921B1 (de) Laden und aktualisieren einer personalisierungsbedürftigen applikation
DE102012015573A1 (de) Verfahren zum Aktivieren eines Betriebssystems in einem Sicherheitsmodul
EP2673731B1 (de) Verfahren zur programmierung eines mobilendgeräte-chips
DE102004057490A1 (de) Vorrichtung und Verfahren zum Verarbeiten eines Programmcodes
DE102012016164A1 (de) Sicherheitselement und Verfahren zur Installation von Daten in dem Sicherheitselement
DE102005046696B4 (de) Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt
EP3224756B1 (de) Verfahren zum nachladen von software auf eine chipkarte durch einen nachladeautomaten
DE102014019090A1 (de) Verfahren zum Bereitstellen einer sicherheitskritischen Softwareapplikation auf einer Computereinheit
DE102007041873A1 (de) Installieren eines Patch in einem Smartcard-Modul
DE19716015A1 (de) Einbringen von Information auf einer Chipkarte
WO2011033030A1 (de) Verfahren zum installieren und konfigurieren von applikationen auf einem portablen datenträger
DE102010004446A1 (de) Verfahren zum Bereitstellen eines sicheren Zählers auf einem Endgerät
DE102012022874A1 (de) Applikationsinstallation
EP3488375B1 (de) Chipset mit gesicherter firmware
DE102004058882A1 (de) Erzeugen von Programmcode in einem Ladeformat und Bereitstellen von ausführbarem Programmcode
DE102022112550A1 (de) Verfahren zum Anpassen einer Funktionalität einer Softwareapplikation an eine für die Ausführung der Funktionalität verfügbare Hardwareausstattung eines Kraftfahrzeugs sowie computerlesbares Speichermedium und Computersystem
DE102022205299A1 (de) Verfahren zur Versionsverwaltung von Firmware für Komponenten der funktionalen Sicherheit und elektrisches Gerät
DE102012024250B4 (de) Verfahren zur Bereitstellung von Chips mit hoher Kopierschutzfunktion, insbesondere für digitale Authentifizierungssysteme, wie Chipkarten oder dergleichen, sowie danach hergestellte Chips
EP2747085B1 (de) Verfahren zum Betreiben eines Sicherheitselements sowie ein solches Sicherheitselement
DE10323033A1 (de) Laden eines ausführbaren Programms in einen tragbaren Datenträger
DE102018006208A1 (de) Chipset, für Endgerät, mit aktualisierbarem Programm
EP1720096B1 (de) Verfahren zum Hinzufügen einer Funktionalität zu einem ausführbaren ersten Modul eines Programmpakets
DE102011113091A1 (de) Programmpaketinstallation
DE102011114415A1 (de) Datenaustausch zwischen Applikationen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final