DE102021004158A1 - Verfahren zum Betreiben einer universal integrated Circuit Card, UICC, und UICC - Google Patents

Verfahren zum Betreiben einer universal integrated Circuit Card, UICC, und UICC Download PDF

Info

Publication number
DE102021004158A1
DE102021004158A1 DE102021004158.5A DE102021004158A DE102021004158A1 DE 102021004158 A1 DE102021004158 A1 DE 102021004158A1 DE 102021004158 A DE102021004158 A DE 102021004158A DE 102021004158 A1 DE102021004158 A1 DE 102021004158A1
Authority
DE
Germany
Prior art keywords
volatile memory
applet
uicc
stored
data
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.)
Pending
Application number
DE102021004158.5A
Other languages
English (en)
Inventor
Stefan Eckardt
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+DEVRIENT MOBILE SECURITY GERMANY GMBH, DE
Original Assignee
Giesecke and Devrient Mobile Security 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 Mobile Security GmbH filed Critical Giesecke and Devrient Mobile Security GmbH
Publication of DE102021004158A1 publication Critical patent/DE102021004158A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Betreiben einer Universal Integrated Circuit Card, UICC, wobei die UICC einen Prozessor, einen flüchtigen Speicher und einen nicht-flüchtigen Speicher umfasst, wobei ein Programmcode eines Betriebssystems und ein Programmcode eines Applets in dem nicht-flüchtigen Speicher gespeichert sind. Das Verfahren umfasst die Schritte: Ausführen des Programmcodes des Betriebssystems durch den Prozessor und Ausführen des Programmcodes des Applets durch den Prozessor, wobei während des Ausführens des Programmcodes des Applets dem Applet zugehörige Daten in den flüchtigen Speicher gespeichert werden; Empfangen, in der UICC, eines Suspendier-Kommandos; Überprüfen, durch das Applet, ob dem Applet zugehörige Daten, die in dem flüchtigen Speicher gespeichert sind, in den nicht-flüchtigen Speicher zu speichern sind; und falls dem Applet zugehörige Daten, die in dem flüchtigen Speicher gespeichert sind, in den nicht-flüchtigen Speicher zu speichern sind, Speichern der dem Applet zugehörigen Daten in den nicht-flüchtigen Speicher. Zudem ist auch eine entsprechende UICC und ein Computerprogramm-Produkt vorgesehen.

Description

  • TECHNISCHES GEBIET DER ERFINDUNG
  • Die Erfindung betrifft ein Verfahren zum Betreiben einer Universal Integrated Circuit Card, UICC. Weiterhin betrifft die Erfindung eine UICC und ein Computerprogrammprodukt.
  • Zur Nutzung von Diensten enthält ein Gerät, beispielsweise ein Mobilfunktelefon oder ein Maschine-zu-Maschine-Gerät, englisch: Machine-to-Machine-Device, kurz M2M-Gerät, oder ein Gerät zur Nutzung von Technologien des Internets-der-Dinge, englisch: Internet-of-Things, kurz: IoT, eine UICC. Die UICC wird auch als „Chipkarte“ oder „Teilnehmeridentitätsmodul“ oder „SIM“ bezeichnet. In der UICC sind Benutzerdaten abgelegt, um einen Teilnehmer (Person oder Gerät) für einen Service oder an einem Kommunikationsnetz eindeutig zu identifizieren und/oder zu authentisieren. Damit ist es einem Betreiber der Dienstleistung oder des Kommunikationsnetzwerks möglich, die Nutzung seines angebotenen Dienstes, jedem Teilnehmer eindeutig zuzuordnen. Weiterhin ist es dem Betreiber eines Kommunikationsnetzes möglich, einen Netzzugang, also das Einbuchen in das Kommunikationsnetz, zu ermöglichen, sobald eine Authentisierung des Teilnehmers stattgefunden hat. Er kann zudem den Netzzugang verweigern, falls eine Authentisierung des Teilnehmers nicht möglich ist.
  • TECHNISCHER HINTERGRUND
  • Beim Betreiben einer UICC kann es vorkommen, dass für eine bestimmte Zeitspannung kein Zugriff auf die UICC notwendig ist. Um in einem derartigen Fall Energie einsparen zu können, wird die UICC für diese bestimmte Zeitspanne in einen Ruhezustand versetzt, was nachfolgend auch als Suspendieren bezeichnet wird. In diesem Ruhezustand wird der UICC keine Energie für ihren Betrieb zur Verfügung gestellt. Damit in einer darauffolgenden UICC-Sitzung keine zeitaufwendige oder energieverbrauchende Initialisierung der UICC erfolgen muss, kann eine sogenannte „Suspendieren - Wiederherstellen“ Kommandofolge angewendet werden, also das Verwenden eines Suspendieren-Kommandos („suspend UICC“) und anschließendes Verwenden eines Wiederherstellen-Kommandos („resume UICC“). Weitere Details zu der „Suspendieren - Wiederherstellen“ Kommandofolge können beispielsweise dem Abschnitt 11.1.22 „Suspend UICC“ der ETSI TS 102 221 Version 16.2.0 (2020-05) entnommen werden.
  • Nach dieser Spezifikation ETSI TS 102 221 Version 16.2.0 (2020-05), Abschnitt 11.1.22.2.2, ist es vorgesehen, dass die UICC den kompletten UICC-Status in einen nicht-flüchtigen Speicher speichert, wenn die UICC ein Suspendieren-Kommando erhält. Dabei umfasst der UICC-Status alle Daten, die notwendig sind, die UICC bei einem Wiederherstellen (auf Grundlage eines Wiederherstellen-Kommandos) in den gleichen Zustand zu versetzen, der gleich ist zu dem Zustand der UICC ohne ein Unterbrechen der Energieversorgung.
  • Der UICC-Status, der in den nicht-flüchtigen Speicher gespeichert wird, umfasst u.a. den „status of toolkit applications“, also den kompletten Status von Applets (JavaCardApplets). Bei jedem Suspendieren der UICC wird dann eine entsprechende Datenmenge (von wenigen 10 Bytes bis zu 1000 Bytes oder mehr) pro Applet in einen nicht-flüchtigen Speicher der UICC gespeichert. Entsprechend kann bei jedem Suspendieren der UICC eine relativ große Datenmenge (bis zu 1000 Bytes oder mehr) pro Applet in einen nicht-flüchtigen Speicher der UICC gespeichert werden. Damit kann das Suspendieren der UICC zeit- und energieintensiv sein.
  • Die Anzahl von Schreibzyklen auf einen nichtflüchtigen Speicher ist begrenzt und herstellerseitig nur bis zu einer Obergrenze garantiert. Durch die gegebenenfalls relativ große zu speichernde Datenmenge kann es zu einer vorzeitigen Alterung des nicht-flüchtigen Speichers kommen.
  • Aus der DE 10201800 604 A1 ein Verfahren zum Betreiben einer UICC bekannt, bei dem das Sicherheitselement Daten, die während zwei Ruhezustandszyklen angepasst wurden und die durch einen Angriff durch Wiedereinspielung bedroht sind, vor einem erneuten Ruhezustand (Suspend) oder während desselben in einen nicht als geteilte Ressource verwendeten nicht-flüchtigen Speicher gespeichert werden, insbesondere in einen externen nicht-flüchtigen Speicher.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Der Erfindung liegt die Aufgabe zu Grunde, ein Verfahren zum Betreiben einer UICC und eine entsprechende UICC zu schaffen, durch das ein Hardware-schonender, zeitsparender und energiesparender Betrieb der UICC erfolgt. Spezifisch liegt der Erfindung die Aufgabe zu Grunde, ein Verfahren zum Betreiben einer UICC und eine entsprechende UICC zu schaffen, durch das eine Suspendieren-Prozedur Hardware-schonender, zeitsparender und energiesparender erfolgt.
  • Die Aufgabe wird durch die in den unabhängigen Patentansprüchen beschriebenen Merkmale gelöst. Vorteilhafte Ausgestaltungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
  • Ein Verfahren zum Betreiben einer Universal Integrated Circuit Card, UICC, wobei die UICC einen Prozessor, einen flüchtigen Speicher und einen nicht-flüchtigen Speicher umfasst, und wobei ein Programmcode eines Betriebssystems und ein Programmcode eines Applets in dem nicht-flüchtigen Speicher gespeichert sind, ist mit den folgenden Verfahrensschritten vorgesehen: Ausführen des Programmcodes des Betriebssystems durch den Prozessor und Ausführen des Programmcodes des Applets durch den Prozessor, wobei während des Ausführens des Programmcodes des Applets dem Applet zugehörige Daten in dem flüchtigen Speicher gespeichert werden; Empfangen, in der UICC, eines Suspendier-Kommandos; Überprüfen, durch das Applet, ob dem Applet zugehörige Daten, die in dem flüchtigen Speicher gespeichert sind, in den nicht-flüchtigen Speicher zu speichern sind; und falls dem Applet zugehörige Daten, die in dem flüchtigen Speicher gespeichert sind, in den nicht-flüchtigen Speicher zu speichern sind, Speichern der dem Applet zugehörigen Daten in den nicht-flüchtigen Speicher.
  • Bei einer UICC im Sinne der Erfindung handelt es sich um ein in Baugröße und Ressourcenumfang reduziertes elektronisches Modul, welches eine Steuereinheit (Mikrocontroller) und mindestens eine Schnittstelle (Datenschnittstelle) zur Kommunikation mit dem Gerät aufweist. Diese Kommunikation erfolgt bevorzugt über ein Verbindungsprotokoll, insbesondere einem Protokoll gemäß ETSI TS 102 221 bzw. ISO-7816. Die UICC weist einen sicheren nicht-flüchtigen Speicherbereich auf (nicht-flüchtiger Speicher), in dem Teilnehmeridentitätsdaten sicher eingebracht sind, um Manipulation- und/oder Missbrauchsversuche bei der Identifizierung und/oder Authentisierung am Netzwerk zu verhindern. Diese UICC weist einen Speicherbereich auf, in dem interne Zustände einer UICC-Sitzung abgelegt werden können. Die UICC ist mittels eines Geräts betriebsfähig, wobei die UICC bis auf Versorgungssignale, wie Versorgungsspannung, Takt, Reset etc. autark ist.
  • Bei der UICC handelt es sich beispielsweise um eine Chipkarte oder eine SIM-Karte oder ein Teilnehmeridentitätsmodul. Die UICC dient dazu, mit den im sicheren nichtflüchtigen Speicherbereich gespeicherten maschinenlesbaren Teilnehmeridentitätsdaten einen Teilnehmer in einem Kommunikationsnetz zu identifizieren und für das Nutzen von Diensten zu authentifizieren. Unter UICC sind auch USIM, TSIM, ISIM, CSIM oder R-UIM gemäß dem Standard ETSI TS 102 221 gefasst. Bevorzugt ist die UICC eine embedded UICC, eUICC.
  • Die UICC kann ein integraler Bestandteil innerhalb des Geräts sein, beispielsweise ein fest verdrahteter elektronischer Baustein. Derartige UICC werden auch als eUICC bezeichnet. In dieser Bauform sind diese UICC nicht für eine Entnahme aus dem Gerät vorgesehen und können prinzipiell nicht einfach ausgetauscht werden. Derartige UICC können auch als embedded Secure Elements ausgestaltet sein und sind eine sichere Hardwarekomponente im Gerät.
  • Die UICC kann auch eine Softwarekomponente in einem vertrauenswürdigen Teil eines Betriebssystems, einer sogenannten Trusted Execution Environment, kurz TEE, des Gerätes sein. Die UICC ist beispielsweise innerhalb einer gesicherten Laufzeitumgebung in Form von darin ablaufenden Programmen, sogenannten „Trustlets“, ausgebildet.
  • Die UICC kann der Fernüberwachung, -kontrolle und -wartung von Geräten wie Maschinen, Anlagen und Systemen dienen. Es kann für Zähleinheiten wie Stromzähler, Warmwasserzähler etc. verwendet werden. Die UICC ist beispielsweise Bestandteil der Technologie des IoT.
  • Bei einem Gerät im Sinn der Offenbarung handelt es sich prinzipiell um ein Gerät oder eine Gerätekomponente mit Mitteln zur Kommunikation mit einem Kommunikationsnetz, um Dienste des Kommunikationsnetzes nutzen zu können oder um Dienste eines Servers über ein Gateway des Kommunikationsnetzes nutzen zu können. Beispielsweise ist ein mobiles Gerät wie ein Smartphone, ein Tablet-PC, ein Notebook, ein PDA unter dem Begriff zu fassen. Unter dem Gerät können beispielsweise auch Multimedia-Geräte wie digitale Bilderrahmen, Audiogeräte, Fernsehgeräte, E-Book-Reader verstanden werden, die ebenfalls Mittel zur Kommunikation mit dem Kommunikationsnetzwerk aufweisen.
  • Insbesondere ist das Gerät in einer Maschine, ein Automat und/oder einem Fahrzeug eingebracht. Ist das Gerät in einem Kraftfahrzeug eingebracht, hat es beispielsweise eine UICC integriert. Die UICC kann mittels des Geräts, beispielsweise eines Modems des Geräts, eine Datenverbindung zu einem Server über das Kommunikationsnetz aufbauen. Mit dem Gerät kann beispielsweise ein Server des Geräte-Herstellers kontaktiert werden, um Steuereinheiten, z.B. ECUs (ECU = Electronic Control Unit) für Funktionalitäten des Geräts anzusprechen. Über die UICC lässt sich ein Server im Hintergrundsystem des Mobilfunknetz-Betreibers, MNO, kontaktieren, beispielsweise ein Server, um Aktualisierungen für Software, Firmware oder/und Betriebssystem der UICC in die UICC zu laden.
  • In dem nicht-flüchtigen Speicher der UICC ist ein Programmcode des Betriebssystems und ein Programmcode eines Applets gespeichert. Der Prozessor führt die Programmcodes des Betriebssystems und des Applets aus. Es können eine Vielzahl (z.B. zumindest zwei, zumindest drei, oder zumindest fünf) von Programmcodes für eine Vielzahl (z.B. zumindest zwei, zumindest drei, oder zumindest fünf) von Applets in dem nicht-flüchtigen Speicher gespeichert sein und von dem Prozessor ausgeführt werden. Dabei ist je ein Programmcode für je ein Applet vorgesehen.
  • Allgemein kann ein Applet eine Anwendung oder eine Applikation der UICC sein. Das Applet kann ein Programm mit einem spezifischen (eingeschränkten) Aufgabenumfang sein. Bevorzugt ist das Applet ein Java-Applet, bevorzugter ein Java Card™ Applet.
  • Der Programmcode des Applets kann ein Bytecode, insbesondere ein Java-Bytecode sein. Der Bytecode kann durch eine virtuelle Maschine, insbesondere durch eine Java Virtual Machine, JVM, interpretiert werden. Die Interpretation des Bytecodes durch die virtuelle Maschine, insbesondere durch die JVM, kann von dem Prozessor ausgeführt werden.
  • Während des Ausführens des Programmcodes des Applets durch den Prozessor werden dem Applet zugehörige Daten in den nicht-flüchtigen Speicher gespeichert. Die dem Applet zugehörigen können Daten sein, die während des Ausführens des Programmcodes des Applets erzeugt werden und insbesondere in dem flüchtigen Speicher zwischengespeichert werden. Spezifisch können die Daten eine Variable, eine Datei, ein Dateizeiger (=Filepointer), ein Anwendungsparameter, ein Status, ein Sicherheitsaspekt des Applets (authentisierte Anwendung/nicht-authentisierte Anwendung); und/oder ein Sicherheitsaspekt einer Datei sein. Der flüchtige Speicher der UICC kann ein Arbeitsspeicher sein.
  • Ein Suspendier-Kommando wird in der UICC empfangen. Das Suspendier-Kommando kann von einem Gerät gesendet werden. Ein Empfangen eines Kommandos ist dabei eine Signalübertragung zum wechselseitigen Steuern zwischen dem Gerät und der UICC. Dabei erfolgt der Kommandoaustausch unter anderem durch das Sender-Empfänger-Modell: Daten bzw. Informationen werden in Zeichen kodiert und dann von einem Sender (Gerät) über einen Übertragungskanal (Schnittstelle) an einen Empfänger (UICC) übertragen. Dabei ist entscheidend, dass Sender und Empfänger dieselbe Kodierung verwenden, damit der Empfänger die Nachricht versteht, d.h. die auszutauschenden Daten dekodieren kann.
  • Ein Kommando ist dabei eine Anweisung, ein Befehl oder eine Instruktion, die beispielsweise vom Gerät gesendet wird. Dieses Kommando ist dabei ein vom Protokolltyp-Auswahl-Kommando (PTS) verschiedenes Kommando. Das Kommando ist bevorzugt ein Kommando gemäß ETSI TS 102 221 bzw. ISO/IEC 7816 Standard. Es kann dabei einen Kommandokopf und einen Kommandokörper aufweisen.
  • Das Applet prüft, bevorzugt nach dem Empfangen des Suspendier-Kommandos in der UICC, ob Daten, die dem Applet zugehörig sind, in dem flüchtigen Speicher in den nicht-flüchtigen Speicher gespeichert werden sollen. Das Prüfen durch das Applet kann in dem Programmcode des Applets implementiert sein, z.B. durch ein Unterprogramm. Das Prüfen durch das Applet kann ein entsprechendes Anzeigen durch das Applet während des Ausführens durch den Prozessor sein. Das Prüfen durch das Applet kann ein Methodenaufruf im Applet sein. Bei dem Ausführen des Programmcodes des Applets kann das Prüfen durch den Prozessor ausgeführt werden.
  • Wird durch das Prüfen festgestellt, dass dem Applet zugehörige Daten, die in dem flüchtigen Speicher gespeichert sind, in den nicht-flüchtigen Speicher zu speichern sind, werden die dem Applet zugehörigen Daten in den nicht-flüchtigen Speicher gespeichert. Das Speichern kann durch das Applet, das Betriebssystem und/oder den Prozessor initiiert und/oder durchgeführt werden.
  • Nach dem Prüfen und gegebenenfalls dem Speichern der Daten in den nicht-flüchtigen Speicher, kann die UICC deaktiviert (stromlos geschalten) werden. Allgemein kann ein Suspendieren der UICC (auf Grundlage des Suspendier-Kommandos) ein zeitweises Deaktivieren der UICC sein.
  • Dadurch, dass nicht (pauschal) der gesamte Status des Applets in dem flüchtigen Speicher in den nicht-flüchtigen Speicher gespeichert wird, wird der nicht-flüchtige Speicher der UICC weniger stark beansprucht und es kann Zeit und Energie eingespart werden. Die Wirksamkeit der Suspendieren-Wiederherstellen Kommando-Abfolge ist wesentlich erhöht. Die Funktionalität der UICC kann durch weniger häufiges und weniger intensives Beschreiben des nicht-flüchtigen Speichers für eine längere Laufzeit aufrechterhalten werden.
  • Das Suspendier-Kommando kann als APDU Kommando in der UICC empfangen werden. Ein APDU ist ein kombinierter Kommando-/Datenblock eines Verbindungsprotokolls zwischen der UICC und einem Gerät. Die Struktur der APDU ist durch den Standard ISO-7816-4 definiert. APDUs stellen ein Informationselement der Anwendungsebene (Schicht 7 des OSI-Schichtenmodels) dar.
  • Wird durch das Prüfen festgestellt, dass dem Applet zugehörige Daten, die in dem flüchtigen Speicher gespeichert sind, nicht in den nicht-flüchtigen Speicher zu speichern sind, kann die Betriebsspannung der UICC abgeschaltet werden, ohne dass die dem Applet zugehörigen Daten in den nicht-flüchtigen Speicher gespeichert werden.
  • Allgemein kann die UICC, insbesondere das Betriebssystem der UICC oder das Applet, die gesamten Daten, (lediglich) einen Teil der Daten oder keine der Daten, die dem Applet zugehörig sind und in dem flüchtigen Speicher gespeichert sind in den nichtflüchtigen Speicher speichern.
  • Allgemein kann die UICC, insbesondere das Betriebssystem, nicht verpflichtet sein, die gesamten Daten, die dem Applet zugehörig sind und in dem flüchtigen Speicher gespeichert sind in den nicht-flüchtigen Speicher zu speichern, wenn ein Suspendier-Kommando empfangen wird.
  • Das Applet kann bestimmen, welche der dem Applet zugehörigen Daten, die in dem flüchtigen Speicher gespeichert sind, in den nicht-flüchtigen Speicher gespeichert werden sollen. Das Bestimmen der Daten durch das Applet kann durch ein entsprechendes Markieren der Daten (während des Betriebs der UICC) erfolgen. Die Daten, die als zu speichernde Daten bestimmt oder identifiziert wurden, können in den nicht-flüchtigen Speicher gespeichert werden. Zu der Bestimmung durch das Applet kann ein Unterprogramm in dem Programmcode des Applets implementiert sein und durch den Prozessor ausgeführt werden, wodurch das Applet die Bestimmung durchführen kann. Das Bestimmen kann durch einen Vorgang ausgelöst werden, der das Speichern der Daten bedingt. Beispielsweise kann eine Aktualisierung von Daten während des Betriebs der UICC bedingen, dass die Daten in den nicht-flüchtigen Speicher geschrieben werden. Beispielsweise kann eine lange Zeitdauer einer Kartensitzung dazu veranlassen, RAM-Daten in den nicht-flüchtigen Speicher zu schreiben. Beispielsweise kann eine Fehlermeldung das Bestimmen auslösen. Beispielsweise kann ein ungewöhnlicher Betriebszustand das Bestimmen auslösen.
  • Der Programmcode des Applets ist bevorzugt ein Bytecode, insbesondere ein Java-Bytecode sein. Der Bytecode wird beispielsweise durch eine virtuelle Maschine, insbesondere durch eine Java Virtual Machine, JVM, interpretiert. Die Interpretation des Bytecodes durch die virtuelle Maschine, insbesondere durch die JVM, wird hier auch als das „Ausführen von einem Prozessor“ bezeichnet.
  • In einer Ausgestaltung können die zum Speichern in den nicht-flüchtigen Speicher bestimmten Daten in einer Liste, beispielsweise einer Liste des Applets oder des Betriebssystems, geführt werden. Diese Liste könnte beim Empfangen des Suspendieren-Kommandos abgefragt oder ausgewertet werden.
  • Das Applet kann eine Information oder ein Signal an die UICC, insbesondere an das Betriebssystem der UICC, senden, wobei die Information oder das Signal signalisiert, dass die Betriebsspannung der UICC abgeschaltet werden kann. Die UICC, insbesondere das Betriebssystem der UICC, kann also eine Information darüber empfangen, beispielsweise gesendet von dem Applet, dass das Suspendieren (Deaktivieren) der UICC durchgeführt werden kann, bevorzugt ohne weitere Daten des Applets in dem flüchtigen Speicher in den nicht-flüchtigen Speicher zu speichern.
  • Die UICC, insbesondere das Betriebssystem der UICC, kann nach dem Empfangen des Suspendier-Kommandos überprüfen, ob in der UICC, insbesondere in dem Betriebssystem, eine Information hinterlegt ist, dass das Applet überprüfen soll, ob dem Applet zugehörige Daten, die in dem flüchtigen Speicher gespeichert sind, in den nicht-flüchtigen Speicher gespeichert werden sollen, und dass die dem Applet zugehörigen Daten in dem flüchtigen Speicher in den nicht-flüchtigen Speicher zu speichern sind, fall das Prüfen ergibt, dass die dem Applet zugehörigen Daten in dem flüchtigen Speicher in den nicht-flüchtigen Speicher zu speichern sind.
  • Falls in der UICC, insbesondere in dem Betriebssystem der UICC, eine Information hinterlegt ist, dass das Applet überprüfen soll, ob dem Applet zugehörige Daten, die in dem flüchtigen Speicher gespeichert sind, in den nicht-flüchtigen Speicher gespeichert werden sollen, können das Überprüfen und das Speichern durchgeführt werden.
  • Falls in der UICC, insbesondere in dem Betriebssystem der UICC, keine Information hinterlegt ist, dass das Applet überprüfen soll, ob dem Applet zugehörige Daten, die in dem flüchtigen Speicher gespeichert sind, in den nicht-flüchtigen Speicher gespeichert werden sollen, kann die UICC, insbesondere das Betriebssystem der UICC, die dem Applet zugehörigen Daten, insbesondere die gesamten oder alle der dem Applet zugehörigen Daten, in dem flüchtigen Speicher in den nicht-flüchtigen Speicher speichern.
  • Die UICC, insbesondere das Betriebssystem der UICC, kann nach dem Empfangen des Suspendier-Kommandos überprüfen, ob in der UICC, insbesondere in dem Betriebssystem, eine Information hinterlegt ist, dass dem Applet eine Information zu dem Suspendier-Kommando gesendet werden soll oder zu senden ist. Falls in der UICC, insbesondere in dem Betriebssystem der UICC, eine Information hinterlegt ist, dass dem Applet eine Information zu dem Suspendier-Kommando zu senden ist, kann die UICC, insbesondere das Betriebssystem der UICC, eine Information zu dem Suspendier-Kommando senden. Falls in der UICC, insbesondere in dem Betriebssystem der UICC, keine Information hinterlegt ist, dass dem Applet eine Information zu dem Suspendier-Kommando zu senden ist, kann die UICC, insbesondere das Betriebssystem der UICC, eine Information zu dem Suspendier-Kommando nicht senden.
  • Das Abschalten der Betriebsspannung der UICC (Suspendieren oder Deaktivieren) kann ein Abschalten der Betriebsspannung an Kontakten einer kontaktbehafteten Schnittstelle umfassen. Das Abschalten der Kontakte der UICC erfolgt beispielsweise gemäß der technischen Spezifikation ISO 7816-3.
  • Das Abschalten der Betriebsspannung der UICC (Suspendieren oder Deaktivieren) kann ein Abschalten der Betriebsspannung an einer kontaktlosen Schnittstelle umfassen. Dadurch kann ein Energiefeld zum Wandeln in eine Betriebsspannung durch die UICC getrennt werden. Ein bereitgestelltes elektromagnetisches Feld, aus dem die UICC eine Betriebsspannung generieren kann, kann unterbrochen oder getrennt werden.
  • Das Verfahren kann durch eine Betriebssystem-Routine der UICC ausgeführt werden. Damit ist das Verfahren als Programmcode für eine native UICC vorgesehen und kann auf einer großen Anzahl unterschiedlicher UICC Ausführungsformen ausgeführt werden. Insbesondere muss für das Verfahren keine Laufzeitumgebung, beispielsweise eine Javacard Laufzeitumgebung, bereitgestellt werden, um die Verfahrensschritte auszuführen.
  • Eine UICC kann in einem Verfahren betrieben werden. In dem Verfahren wird überprüft, nach Empfangen eines Suspendier-Kommandos, ob durch ein Betriebssystem Daten eines Applets, wobei die Daten in einem flüchtigen Speicher gespeichert sind, in einen nicht-flüchtigen Speicher zu speichern sind. Falls die Daten des Applets in dem flüchtigen Speicher durch das Betriebssystem in den nicht-flüchtigen Speicher zu speichern sind, werden die Daten durch das Betriebssystem in den nicht-flüchtigen Speicher gespeichert. Zusätzlich oder alternativ, falls die Daten des Applets in dem flüchtigen Speicher durch das Betriebssystem nicht in den nicht-flüchtigen Speicher zu speichern sind, werden die Daten nicht durch das Betriebssystem in den nicht-flüchtigen Speicher gespeichert.
  • Falls die Daten des Applets in dem flüchtigen Speicher durch das Betriebssystem nicht in den nicht-flüchtigen Speicher zu speichern sind, kann das Applet überprüfen, ob Daten des Applets in dem flüchtigen Speicher durch das Applet in den nicht-flüchtigen Speicher zu speichern sind.
  • Falls Daten des Applets in dem flüchtigen Speicher durch das Applet in den nicht-flüchtigen Speicher zu speichern sind, kann das Applet dem Applet zugehörige Daten in dem flüchtigen Speicher in den nicht-flüchtigen Speicher speichern.
  • Das Applet kann die gesamten dem Applet zugehörigen Daten in dem flüchtigen Speicher, (lediglich) einen Teil der dem Applet zugehörigen Daten in dem flüchtigen Speicher oder keine dem Applet zugehörigen Daten in dem flüchtigen Speicher in den nichtflüchtigen Speicher speichern.
  • Das Überprüfen, nach Empfangen des Suspendier-Kommandos, ob Daten eines Applets in einem flüchtigen Speicher in einen nicht-flüchtigen Speicher, insbesondere durch das Betriebssystem der UICC, zu speichern sind, kann auf Grundlage eines Parameters des Applets oder eines Parameters für das Applet durchgeführt werden. Der Parameter kann beispielsweise ein Installationsparameter des Applets sein. Das Überprüfen kann insbesondere durch das Betriebssystem der UICC erfolgen. In der UICC, insbesondere in dem Betriebssystem der UICC, kann ein Parameter hinterlegt sein oder hinterlegt werden, der einen Installationsparameter bildet. Der InstallationsParameter kann ein Parameter des Applets oder für das Applet sein. Der Parameter kann eine Information darüber enthalten, ob dem Applet zugehörige Daten in einem flüchtigen Speicher in einen nicht-flüchtigen Speicher zu speichern sind, insbesondere durch das Betriebssystem zu speichern sind, nach Empfangen eines Suspendier-Kommandos durch die UICC.
  • Der Installationsparameter kann ein Parameter sein, der während einer Installation oder durch eine Installation eines Applets auf einer UICC festgelegt wird.
  • Beispielsweise kann der Programmcode des Applets eine Information zur Festlegung des Installationsparameters oder eine Information über den Installationsparameter umfassen, die der UICC signalisiert, dass dem Applet zugehörige Daten in dem flüchtigen Speicher in den nicht-flüchtigen Speicher, insbesondere durch das Betriebssystem, zu speichern sind oder nicht zu speichern sind. Speziell kann der Programmcode des Applets eine Information umfassen, die der UICC signalisiert, dass dem Applet zugehörige Daten in dem flüchtigen Speicher in den nicht-flüchtigen Speicher, insbesondere durch das Betriebssystem, zu speichern sind oder nicht zu speichern sind, nachdem die UICC ein Suspendier-Kommando empfangen hat.
  • Der Installationsparameter kann durch eine Eingabe festgelegt werden. Die Eingabe kann als eine Systemkonfiguration der UICC mit Erst-Inbetriebnahme erfolgen oder ebenso während der Installation des Applets.
  • Allgemein kann durch den Installationsparameter bestimmt werden oder festgelegt sein, dass durch das Betriebssystem der UICC, nach Empfangen eines Suspendier-Kommandos, dem Applet zugehörige Daten im flüchtigen Speicher komplett oder teilweise in den nicht-flüchtigen Speicher zu speichern sind und/oder nicht zu speichern sind. Dabei kann durch den Installationsparameter bestimmt werden oder festgelegt sein, welche der dem Applet zugehörigen Daten in dem flüchtigen Speicher -nach Empfang des Suspendier-Kommandos in der UICC- in den nicht-flüchtigen Speicher zu speichern sind.
  • Auch wenn der Installationsparameter festlegt, dass dem Applet zugehörige Daten in dem flüchtigen Speicher durch das Betriebssystem der UICC in den nicht-flüchtigen Speicher nicht zu speichern sind, kann das Applet eine Information über das Empfangen des Suspendier-Kommandos in der UICC erhalten. Das Applet kann Daten imflüchtigen Speicher in den nicht-flüchtigen Speicher speichern oder ein Speichern kann durch das Applet veranlasst werden.
  • Der Installationsparameter kann ebenso einem auf der UICC gespeicherten Applet zugewiesen werden.
  • Ein Verfahren zum Installieren eines Applets auf einer UICC ist offenbart. Die UICC kann einen Prozessor, einen flüchtigen Speicher und einen nicht-flüchtigen Speicher umfassen, wobei ein Programmcode eines Betriebssystems in dem nicht-flüchtigen Speicher gespeichert sein kann. Das Verfahren kann umfassen: Hinterlegen eines Parameters für das Applet in der UICC, wobei der Parameter eine Information darüber enthält, ob nach einem in der UICC empfangenen Suspendier-Kommando dem Applet zugehörige Daten in einem flüchtigen Speicher durch das Betriebssystem in einen nicht-flüchtigen Speicher zu speichern sind oder nicht zu speichern sind.
  • Das Hinterlegen des Parameters für das Applet erfolgt in der UICC, bevorzugt im Applet selbst oder in den Interpretations-Routinen der virtuellen Maschine oder im Betriebssystem der UICC oder einer Look-Up-Table (LUT) im nichtflüchtigen Speicher, die beim Erhalt eines Suspendier-Kommandos abgefragt wird.
  • Der Parameter kann während der Installation oder durch die Installation des Applets auf der UICC festgelegt werden.
  • Das Hinterlegen des Parameters kann auf Grundlage des Programmcodes des Applets erfolgen. Dazu kann der Programmcode des Applets eine Information zur Hinterlegung des Parameters umfassen. Durch die Information kann (der UICC) signalisiert werden, ob dem Applet zugehörige Daten in dem flüchtigen Speicher durch das Betriebssystem in den nicht-flüchtigen Speicher zu speichern sind oder nicht zu speichern sind nachdem die UICC ein Suspendier-Kommando empfangen hat.
  • Das Hinterlegen kann ebenso eine Festlegung, z.B. durch eine Eingabe, umfassen.
  • Der Parameter kann ein hierin offenbarter Installationsparameter sein. Der Parameter kann eine Information darüber enthalten, ob bei einem Suspendier-Kommando dem Applet zugehörige Daten in dem flüchtigen Speicher durch das Betriebssystem der UICC in den nichtflüchtigen Speicher zu speichern sind. Der Parameter kann in der UICC oder dem Betriebssystem oder dem Applet hinterlegt werden oder hinterlegt sein.
  • Durch den (Installations-)Parameter kann bestimmt werden oder festgelegt sein, dass durch das Betriebssystem der UICC, nach Empfangen eines Suspendier-Kommandos, dem Applet zugehörige Daten in dem flüchtigen Speicher komplett oder teilweise in den nicht-flüchtigen Speicher zu speichern sind, und/oder nicht zu speichern sind. Dabei kann durch den (Installations-)Parameter bestimmt werden oder festgelegt sein, welche der dem Applet zugehörigen Daten in dem flüchtigen Speicher, nach Empfang des Suspendier-Kommandos in der UICC in den nicht-flüchtigen Speicher zu speichern sind.
  • Ein Computerprogramprodukt kann Befehle umfassen, die bei der Ausführung des Computerprogramms durch eine UICC diese veranlassen, eines der hierin offenbarten Verfahren auszuführen.
  • Eine UICC umfasst einen Prozessor, einen flüchtigen Speicher und einen nicht-flüchtigen Speicher, wobei ein Programmcode eines Betriebssystems und gegebenenfalls ein Programmcode eines Applets in dem nicht-flüchtigen Speicher gespeichert sind. Die UICC kann eingerichtet sein jedes hierin offenbarte Verfahren auszuführen.
  • Der Prozessor ist eingerichtet den Programmcode des Betriebssystems und den Programmcode des Applets auszuführen, wobei bei dem Ausführen des Programmcodes des Applets dem Applet zugehörige Daten in dem flüchtigen Speicher speicherbar sind. Die UICC ist eingerichtet ein Suspendier-Kommando zu empfangen. Das Applet ist eingerichtet zu überprüfen, ob dem Applet zugehörige Daten, die in dem flüchtigen Speicher speicherbar sind oder gespeichert sind, in den nicht-flüchtigen Speicher zu speichern sind. Das Applet ist eingerichtet, falls dem Applet zugehörige Daten, die in dem flüchtigen Speicher speicherbar sind oder gespeichert sind, in den nicht-flüchtigen Speicher zu speichern sind, die Daten in den nicht-flüchtigen Speicher zu speichern.
  • Die UICC kann eine Schnittstelle zur Datenkommunikation mit einem Gerät umfassen. Das Gerät kann ein Mobilfunktelefon, ein Maschine-zu-Maschine-Gerät oder ein Gerät zur Nutzung von Technologien des Internets-der-Dinge sein. Die UICC kann in das Gerät integriert sein.
  • Die Schnittstelle oder eine andere Schnittstelle kann eingerichtet sein eine Betriebsspannung zum Betreiben der UICC zu empfangen. Die Schnittstelle oder eine andere Schnittstelle kann eingerichtet sein die Betriebsspannung zu trennen zum Abschalten der UICC (Suspendieren oder Deaktivieren).
  • Die UICC kann eingerichtet sein eine logische Datenverbindung zu einem Server über ein Kommunikationsnetz aufzubauen, um Dienste eines Servers zu nutzen und mit diesem Server Daten auszutauschen. Beim Aufbau einer derartigen Datenverbindung von einer UICC zu einem Server werden Verbindungsparameter, beispielsweise eine eindeutige Server-Adresse und das zu verwendende Datenverbindungs-Protokoll benötigt. Zum Aufbau, Abbau und Betrieb einer Datenverbindung wird beispielsweise ein Karten-Applikations-Werkzeugkasten, englisch Card Applikation Toolkit, kurz CAT, des Teilnehmeridentitätsmoduls gemäß dem ETSI Standard TS 102 223 verwendet.
  • Ein Kommunikationsnetz ist eine technische Einrichtung, auf der die Übertragung von Signalen unter Identifizierung und/oder Authentisierung des Teilnehmers stattfindet. Das Kommunikationsnetz bietet eigene Dienste an (eigene Sprach- und Datendienste) und/oder ermöglicht das Nutzen von Diensten von externen Instanzen. Das Kommunikationsnetz ist bevorzugt ein Mobilfunknetz. Eine Gerät-zu-Gerät Kommunikation unter Aufsicht des Kommunikationsnetzes ist dabei möglich. Insbesondere wird hier ein Mobilfunknetz beispielsweise das „Global System for Mobile Communications“, kurz GSM als Vertreter der zweiten Generation oder das „General Packet Radio Service“, kurz GPRS bzw. „Universal Mobile Telecommunications System“, kurz UMTS als Vertreter der dritten Generation, das „Long Term Evolution“, kurz LTE, als Vertreter der vierten Generation als Mobilfunknetz verstanden oder ein Mobilfunknetz der 5. Generation mit dem derzeitigen Arbeitstitel „5G“ als ein Kommunikationsnetz verstanden. Die Kommunikation im Kommunikationsnetz kann über einen sicheren Kanal erfolgen, beispielsweise so, wie es in den technischen Standards ETSI TS 102 225 und/oder ETSI TS 102 226 definiert ist, beispielsweise SCP80, SCP81 oder eine Transport-Layer-Security, TLS.
  • Im Rahmen der Offenbarung ist ein Server eine räumlich von dem Gerät entfernte Instanz. Der Server kann ein Teil des Kommunikationsnetzes sein. Alternativ oder zusätzlich ist der Server eine externe Instanz (also keine Instanz des Kommunikationsnetzes). Der Server ist bevorzugt ein Server des Geräte-Herstellers, um Steuereinheiten, z.B. ECUs (ECU = Electronic Control Unit), für Funktionalitäten des Geräts anzusprechen. Alternativ oder zusätzlich ist der Server ein Server zur Fernverwaltung der eUICC, beispielsweise ein sogenannter Provisionierungs-Server, um Aktualisierungen für Software, Firmware oder/und Betriebssystem des eUICC in das eUICC zu laden.
  • Teilnehmeridentitätsdaten, so wie sie beispielsweise im nicht-flüchtigen Speicher der UICC abgelegt sind, sind beispielsweise Daten, die einen Teilnehmer (eine Person oder ein Gerät) eindeutig im Kommunikationsnetz identifizieren. Dazu zählt beispielsweise eine Teilnehmerkennung, auch International Mobile Subscriber Identity, kurz IMSI und/oder teilnehmerspezifische Daten. Die IMSI ist das in einem Mobilfunkkommunikationsnetzwerk eindeutige Teilnehmeridentitätsdatei. Sie setzt sich zusammen aus dem Landescode MCC (Mobile Country Code), dem Netzwerkcode MNC (Mobile Network Code) und einer laufenden Nummer, die vom Netzbetreiber vergeben wird. Zudem sind Teilnehmeridentitätsdaten beispielsweise Daten, die einen Teilnehmer eindeutig am Kommunikationsnetz authentisieren, beispielsweise ein Authentisierungsalgorithmus, spezifische Algorithmus-Parameter, ein kryptografischer Authentisierungsschlüssel Ki und/oder ein kryptografischer Over-The-Air, kurz OTA, Schlüssel. Zudem sind Teilnehmeridentitätsdaten beispielsweise Daten, die einen Teilnehmer eindeutig an einem Dienst (=Service) authentisieren, beispielsweise eine eindeutige Kennung oder Signatur. Ein Dienst ist insbesondere ein Sprachdienst oder ein Datendienst eines Servers, mit dem Informationen und/oder Daten über das Kommunikationsnetzwerk übertragen werden.
  • Die UICC kann betriebsbereit in ein Gerät eingebracht sein. Die Kommunikation zwischen UICC und Gerät basiert auf einem Verbindungsprotokoll. Das Gerät kann zusätzlich zudem auch dazu eingerichtet sein, eigenständig eine Datenverbindung zu dem räumlich entfernten Server aufzubauen, um ebenfalls dessen Dienste zu nutzen und mit diesem Server Daten auszutauschen.
  • Figurenliste
  • Nachfolgend wird anhand von Figuren die Erfindung bzw. weitere Ausführungsformen und Vorteile der Erfindung näher erläutert, wobei die Figuren lediglich Ausführungsbeispiele der Erfindung beschreiben. Gleiche Bestandteile in den Figuren werden mit gleichen Bezugszeichen versehen. Die Figuren sind nicht als maßstabsgetreu anzusehen, es können einzelne Elemente der Figuren übertrieben groß bzw. übertrieben vereinfacht dargestellt sein.
    • 1 zeigt ein Ausführungsbeispiel eines Ablaufdiagrams eines konventionellen Suspendieren-Ablaufs in einer UICC;
    • 2 zeigt ein Ausführungsbeispiel eines Ablaufdiagrams eines erfindungsgemäßen Verfahrens in einer UICC;
    • 3 zeigt ein Ausführungsbeispiel eines Systems aus Gerät und erfindungsgemäßer UICC; und
    • 4 zeigt ein Ausführungsbeispiel einer erfindungsgemäßen UICC.
  • DETAILLIERTE BESCHREIBUNG VON AUSFÜHRUNGSBEISPIELEN
  • Das konventionelle Verfahren 100 des Ablaufdiagrams von 1 umfasst als ersten Schritt 101 ein Anschalten der Betriebsspannung der UICC. Das Anschalten der Betriebsspannung führt in der UICC zu einer Rücksetzprozedur („Reset“). Im Ergebnis der Rücksetzprozedur wird ein ATR (answer-to-reset) gesendet. Dann erfolgt im direkten Anschluss an das ATR ein Empfangen von weiteren Informationen von einem Gerät, um die UICC weiter zu parametrisieren, wobei insbesondere Verbindungsparameter ausgehandelt und initialisiert werden, um einen ordnungsgemäßen Empfang von Kommandos sicherzustellen. Im Rahmen dieser normalen Startprozedur, wird die UICC parametrisiert und ist eingerichtet, jegliche Kommandos gemäß Spezifikation ETSI TS 102 221, die von dem Gerät gesendet werden, auch auszuführen.
  • In Schritt 102 wird die UICC betrieben und in Schritt 103 wird ein Suspendieren-Kommando in der UICC empfangen. Dieses Suspendieren-Kommando ist ein APDU Kommando. Dieses Kommando veranlasst die UICC, einen internen Zustand einer UICC-Sitzung abzulegen. Dieser interne Zustand wird in einen nicht-flüchtigen Speicherbereich abgelegt. Dabei wird pauschal der komplette interne Zustand, u.a. umfassend den „status of toolkit applications“, sh. ETSI TS 102 221 Version 16.2.0 (2020-05), Abschnitt 11.1.22.2.2, in den nicht-flüchtigen Speicher oder Speicherbereich gespeichert (Schritt 104). Durch das pauschale Speichern aller Daten, die den Anwendungen zugehörig sind, wird eine relativ große Datenmenge in den nicht-flüchtigen Speicher geschrieben, was die Haltbarkeit des nicht-flüchtigen Speichers reduziert und zeit- und energieintensiv ist.
  • Anschließend, in Schritt 105, wird die Betriebsspannung der UICC abgeschaltet, die UICC also suspendiert oder deaktiviert.
  • 2 zeigt ein Ausführungsbeispiel eines Ablaufdiagrams eines erfindungsgemäßen Verfahrens 200. In den Schritten 201 wird die Betriebsspannung der UICC angeschaltet, dies erfolgt analog dem konventionellen Anschalten der Betriebsspannung einer UICC.
  • In Schritt 202 wird die UICC 1 betrieben. Dabei wird ein Betriebssystem 15 der UICC 1 und jedenfalls ein Applet 13a, 13b ausgeführt durch einen Prozessor oder eine CPU 19. Während des Betriebs werden Daten, die dem Applet 13a, 13b zugehörig sind, erzeugt und in einen flüchtigen Speicher 18 gespeichert. Die Daten, die dem Applet 13a, 13b zugehörig sind können den Status oder den Zustand des Applets 13a, 13b widerspiegeln.
  • In Schritt 203 empfängt die UICC 1 ein Suspendier-Kommando, beispielsweise von einem Gerät 2.
  • Die UICC 1 überprüft in Schritt 204, ob die dem Applet 13a, 13b zugehörigen Daten in dem flüchtigen Speicher 18 (Zustand des Applets 13a, 13b) in den nicht-flüchtigen Speicher 17 gespeichert werden sollen. Dabei können die gesamten dem Applet 13a, 13b zugehörigen Daten in dem flüchtigen Speicher 18, (lediglich) ein Teil der dem Applet 13a, 13b zugehörigen Daten in dem flüchtigen Speicher 18 oder keine dem Applet 13a, 13b zugehörigen Daten in dem flüchtigen Speicher 18 in den nicht-flüchtigen Speicher 17 zu speichern sein.
  • Falls alle Daten des Applets 13a, 13b oder (lediglich) ein Teil der Daten des 13a, 13b in dem flüchtigen Speicher 18 in den nicht-flüchtigen Speicher 17 gespeichert werden sollen, werden diese Daten in Schritt 205 in den nicht-flüchtigen Speicher 17 gespeichert.
  • Im Anschluss wird in Schritt 206 die Betriebsspannung der UICC 1 abgeschaltet. Bei einer (Re-)Aktivierung der UICC 1 stehen diese Daten zur Verfügung und das Applet 13a, 13b (und somit die UICC 1) kann in einem passenden Zustand geladen werden.
  • Falls keine Daten des Applets 13a, 13b in dem flüchtigen Speicher 18 in den nichtflüchtigen Speicher 17 zu speichern sind, wird die Betriebsspannung der UICC 1 abgeschaltet ohne dass die Daten des Applets 13a, 13b in dem flüchtigen Speicher 18 in den nicht-flüchtigen Speicher 17 gespeichert werden (Schritt 207). Diese Daten sind nach dem Abschalten der Betriebsspannung nicht mehr gespeichert. Bei einem erneuten Anschalten der Betriebsspannung (Aktivieren der UICC), kann auf diese Daten entsprechend nicht mehr zugegriffen werden, was jedoch erwünscht sein kann, wenn die Daten ohnehin nicht gebraucht werden, um die UICC 1 nach einer (Re-)Aktivierung in einen passenden Zustand zu versetzen.
  • Die Überprüfung, ob dem Applet 13a, 13b zugehörige Daten in dem flüchtigen Speicher 18 in den nicht-flüchtigen Speicher 17 gespeichert werden sollen kann durch das Applet 13a, 13b vorgenommen werden. Dazu kann beispielsweise ein Unterprogramm in dem Programmcode des Applets 13a, 13b implementiert sein. Durch ein Ausführen des Programmcodes durch den Prozessor 19 kann das Überprüfen durch das Applet 13a, 13b durchgeführt werden.
  • Das Applet 13a, 13b kann bestimmen oder ermitteln (z.B. durch ein Unterprogramm des Applets 13a, 13b) welche der Daten in dem flüchtigen Speicher 18 in den nicht-flüchtigen Speicher 17 zu speichern sind und insbesondere welche Daten nicht in den nichtflüchtigen Speicher gespeichert werden sollen.
  • Die UICC 1 kann eine Information, z.B. erzeugt durch das Applet 13a, 13b bzw. durch den Programmcode des Applets 13a, 13b, der von dem Prozessor ausgeführt wird, empfangen, wobei die Information signalisiert, dass ein Abschalten der Betriebsspannung möglich ist. Eine solche Information kann empfangen werden, wenn das Überprüfen in Schritt 204 und gegebenenfalls das Speichern in Schritt 205 abgeschlossen ist. Alternativ kann eine solche Information empfangen werden, wenn abschätzbar ist, wann das Überprüfen in Schritt 204 und gegebenenfalls das Speichern in Schritt 205 abgeschlossen sein wird.
  • In der UICC 1 kann eine Information hinterlegt sein, ob das Überprüfen in Schritt 204 und das Speichern in Schritt 205 durchgeführt werden soll. Beispielsweise können zwei Programmcodes für zwei Applets 13a, 13b in dem nicht-flüchtigen Speicher 17 der UICC 1 gespeichert sein. Eines der Applets 13a unterstützt das Überprüfen nach Schritt 204 und das andere Applet 13b unterstützt das Überprüfen nach Schritt 204 nicht. Das Überprüfen nach Schritt 204 kann in dem Programmcode des jeweiligen Applets 13a, 13b implementiert sein oder nicht. Das Applet 13a, das das Überprüfen nach Schritt 204 unterstützt (im Programmcode implementiert), kann von der UICC 1 im Falle eines Suspendier-Kommandos angesprochen werden und das Applet 13a kann das Überprüfen nach Schritt 204 ausführen. Das Applet 13b, das das Überprüfen nach Schritt 204 nicht unterstützt (nicht im Programmcode implementiert), kann nicht von der UICC 1 im Falle eines Suspendier-Kommandos angesprochen werden. Die UICC 1 kann die (gesamten) dem Applet 13b zugehörigen Daten in dem flüchtigen Speicher 18 in den nicht-flüchtigen Speicher 17 speichern.
  • In Schritt 204 kann durch die UICC 1 überprüft werden, ob im Falle eines Suspendier-Kommandos durch das Betriebssystem 15 der UICC 1 dem Applet 13a, 13b zugehörige Daten in dem flüchtigen Speicher 18 in den nicht-flüchtigen Speicher 17 gespeichert werden sollen.
  • Falls das Betriebssystem 15 die Daten des Applets 13a, 13b in dem flüchtigen Speicher in den nicht-flüchtigen Speicher 17 speichern soll, kann das Betriebssystem 15 die Daten in den nicht-flüchtigen Speicher 17 speichern.
  • Falls das Betriebssystem 15 die Daten des Applets 13a, 13b in dem flüchtigen Speicher nicht in den nicht-flüchtigen Speicher 17 speichern soll, kann das Betriebssystem 15 die Daten in den nicht-flüchtigen Speicher 17 nicht speichern. In diesem Fall kann von dem (Programmcode, der von dem Prozessor 19 ausgeführt wird) Applet 13a, 13b überprüft werden, ob die Daten in den nicht-flüchtigen Speicher 17 gespeichert werden sollen oder nicht. Falls die Daten in den nicht-flüchtigen Speicher 17 gespeichert werden sollen, kann die UICC 1 oder das Applet 13a, 13b die Daten in dem nicht-flüchtigen Speicher 17 speichern. Falls die Daten nicht in den nicht-flüchtigen Speicher 17 gespeichert werden sollen, kann die UICC 1 oder das Applet 13a, 13b die Daten nicht in dem nichtflüchtigen Speicher 17 speichern. In letzterem Fall kann die Betriebsspannung der UICC 1 abgeschaltet werden ohne dass dem Applet 13a, 13b zugehörige Daten in den flüchtigen Speicher 18 in den nicht-flüchtigen Speicher 17 gespeichert werden. In jedem Fall kann die UICC 1, insbesondere das Betriebssystem 15 der UICC 1 eine Information über das Speichern oder Nicht-Speichern der Daten des Applets 13a, 13b empfangen.
  • 3 zeigt ein Ausführungsbeispiel eines Systems aus Gerät 2 und erfindungsgemäßer UICC 1, in der das Verfahren der 2 abläuft. Das Gerät 2 ist beispielsweise ein M2M-Gerät in einer IoT Umgebung. Das Gerät 2 kann eine Mehrzahl von ECUs 21 aufweisen, hier stellvertretend sind zwei ECUs 21a und 21b dargestellt. Durch diese ECUs 21 wird die Funktionalitäten des Geräts 2 gesteuert. Wenn das Gerät ein Kfz ist, könnten die ECUs Motorsteuerung, Getriebesteuerung, Klimasteuerung, und dergleichen sein.
  • Die UICC 1 ist betriebsbereit in das Gerät 2 eingebracht und wird vom Gerät 2 mit einer Versorgungsspannung Vcc und einem Takt CLK versorgt. Die UICC 1 ist in 4 detaillierter dargestellt. In 3 ist angedeutet, dass die UICC 1 Applets 13 aufweist. Diese Applets 13 können über eine Card Application Toolkit, CAT, 12, unterschiedliche APDU-Kommandos 11 an das Gerät 2 senden.
  • Das Gerät 2 umfasst auch ein Modem 22. Das Modem 22 kann beispielsweise als eine logische Einheit zum Umsetzen von Daten zwischen der UICC 1 und einem Server (nicht dargestellt) angesehen werden. Das Gerät 2 kann durch das Modem 22 eine Kommunikationsverbindung 3 zur UICC 1 aufbauen. Die Kommunikation 3 zwischen dem Gerät 2 und der UICC 1 erfolgt gemäß den in der internationalen Normen ISO/IEC 7816-3 und ISO/IEC 7816-4 definierten Protokollen, auf die hiermit ausdrücklich Bezug genommen wird.
  • Der gesamte Datenaustausch zwischen der UICC 1 und dem Gerät 2 findet bevorzugt unter Verwendung der sogenannten APDUs (application protocol data units) gemäß der Norm ISO/IEC 7816-4 statt. Eine APDU stellt eine Dateneinheit der Anwendungsschicht dar, also eine Art Container, mit dem Kommandos und/ oder Daten an die UICC 1 übertragen werden. Man unterscheidet zwischen Kommando-APDUs, die von einem Gerät 2 an die UICC 1 gesendet werden, und Antwort-APDUs, die von der UICC 1 in Reaktion auf eine Kommando-APDU an das Gerät 2 gesendet werden.
  • Das Modem 22 ist dabei eine Kommunikationseinheit des Geräts 2, um auch Daten des Geräts 2 oder der UICC 1 über ein Kommunikationsnetz (nicht dargestellt) auszutauschen. Die ausgetauschten Daten zwischen UICC 1 und Modem 22 können im Modem 22 in ein IP-basiertes Verbindungsprotokoll umgesetzt werden.
  • 4 zeigt ein Blockschaltbild einer erfindungsgemäßen UICC 1, vorzugsweise eine fest verdrahtete eUICC 1. Alternativ ist die eUICC 1 ein portabler Datenträger mit einer anderen Bauform. Die UICC 1 hat ein Betriebssystem 15, in dem das Verfahren 200 gemäß 2 abläuft. Das Betriebssystem 15 ist beispielsweise ein natives Betriebssystem. Es ist zudem denkbar, dass das Betriebssystem 15 eingerichtet ist, eine Javacard Laufzeitumgebung, JCRE, 16 zu betreiben.
  • Die UICC 1 ist dazu ausgestaltet mit dem Gerät 2 gemäß 3 Daten auszutauschen. Zur Datenübertragung bzw. Kommunikation zwischen der UICC 1 und dem Gerät 2 weisen sowohl die UICC 1 als auch das Gerät 2 jeweils geeignete Kommunikationsschnittstellen 31 auf. Die Schnittstellen können beispielsweise so ausgestaltet sein, dass die Kommunikation zwischen diesen bzw. zwischen der UICC 1 und dem Gerät 2 galvanisch, d.h. kontaktbehaftet, verbunden werden. Die Kontaktbelegung ist in der ISO/IEC 7816 definiert. In einer nicht dargestellten Ausführungsform ist die Kommunikationsschnittstelle kontaktlos, beispielsweise gemäß einem RFID oder NFC oder WLAN Standard.
  • Die UICC 1 hat zudem eine zentrale Prozessor- bzw. Steuereinheit, CPU oder Prozessor 19, die in Kommunikationsverbindung mit der Schnittstelle 31 steht. Zu den primären Aufgaben des Prozessors 19 gehören das Ausführen von arithmetischen und logischen Funktionen und das Lesen und Schreiben von Datenelementen, wie dies durch von dem Prozessor 19 ausgeführten Programmcode definiert wird. Der Prozessor 19 steht ferner mit einem flüchtigen Arbeitsspeicher, RAM 18 und einem nichtflüchtigen wieder beschreibbaren Speicher 17 in Verbindung. Vorzugsweise handelt es sich bei dem nichtflüchtigen Speicher 17 um einen Flash-Speicher (Flash-EEPROM). Dabei kann es sich beispielsweise um einen Flash-Speicher mit einer NAND- oder einer NOR- Architektur handeln.
  • Bei der in 4 dargestellten bevorzugten Ausführungsform ist in dem nichtflüchtigen Speicher 17 der Programmcode gespeichert, der von der CPU 19 ausgeführt werden kann. Insbesondere kann in dem nichtflüchtigen Speicher 17 der Programmcode des Chipkarten-Betriebssystems, OS, 15, der Java Card Laufzeitumgebung, JCRE, 16 (bestehend aus Java Card Virtual Machine, JCVM und Java Card Application Programming Interfaces, JCAPI), einem ersten und zweiten Applet (Applikation) 13a, 13b hinterlegt sein. Dabei liegen die Applets 13a, 13b vorzugsweise in Form von Java Card™ Applets vor. Zudem ist der in 3 gezeigte CAT 12 gemäß ETSI TS 102 223 eingebracht. Zudem kann im Rahmen des Suspendier-Kommandos (Suspend UICC) gemäß ETSI TS 102 221 ein interner Zustand 20 einer UICC Sitzung in den nichtflüchtigen Speicher 17 eingebracht werden.
  • Im Rahmen der Erfindung können alle beschriebenen und/oder gezeichneten und/oder beanspruchten Elemente beliebig miteinander kombiniert werden.
  • Bezugszeichenliste
  • 1
    UICC, Teilnehmeridentitätsmodul, SIM, eUICC
    11
    Übertragungskommando, APDU
    12
    Card Application Toolkit, CAT
    13
    Applet
    15
    Betriebssystem, OS
    16
    Java Laufzeitumgebung, JCRE
    17
    Nichtflüchtiger Speicher
    18
    Speicherbereich
    19
    Steuereinheit, CPU
    20
    UICC-Zustand
    2
    Gerät
    21a,b
    Steuereinheit, ECU
    22
    Modem
    23
    Übertragungskommando, APDU
    3
    Kommunikationsverbindung zwischen Gerät und UICC
    31
    Schnittstelle der UICC
    101-107
    Verfahrensschritte gemäß Stand der Technik
    201-207
    Verfahrensschritte gemäß der Erfindung
  • 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
    • DE 10201800604 A1 [0007]

Claims (14)

  1. Verfahren (200) zum Betreiben einer Universal Integrated Circuit Card, UICC (1), wobei die UICC (1) einen Prozessor (19), einen flüchtigen Speicher (18) und einen nicht-flüchtigen Speicher (17) umfasst, wobei ein Programmcode eines Betriebssystems (15) und ein Programmcode eines Applets (13a, 13b) in dem nicht-flüchtigen Speicher (17) gespeichert sind, das Verfahren mit den Schritten: (a) Ausführen (202) des Programmcodes des Betriebssystems (15) durch den Prozessor (19) und Ausführen des Programmcodes des Applets (13a, 13b) durch den Prozessor (19), wobei während des Ausführens des Programmcodes des Applets (13a, 13b) dem Applet (13a, 13b) zugehörige Daten in den flüchtigen Speicher (18) gespeichert werden; (b) Empfangen (203), in der UICC (1), eines Suspendier-Kommandos; (c) Überprüfen, durch die UICC (1), insbesondere das Betriebssystem (15), ob in der UICC (1), insbesondere in dem Betriebssystem (15), eine Information hinterlegt ist, dass Schritte (d) und (e) durchzuführen sind. (d) Überprüfen (204), durch das Applet (13a, 13b), ob dem Applet (13a, 13b) zugehörige Daten, die in dem flüchtigen Speicher (18) gespeichert sind, in den nichtflüchtigen Speicher (17) zu speichern sind; und (e) Falls dem Applet (13a, 13b) zugehörige Daten, die in dem flüchtigen Speicher (18) gespeichert sind, in den nicht-flüchtigen Speicher (17) zu speichern sind, Speichern (205) der dem Applet (13a, 13b) zugehörigen Daten in den nicht-flüchtigen Speicher (17) wobei die UICC (1), insbesondere das Betriebssystem (15), nach dem Empfangen (203) des Suspendier-Kommandos überprüft.
  2. Verfahren nach Anspruch 1, wobei, falls dem Applet (13a, 13b) zugehörige Daten, die in dem flüchtigen Speicher (18) gespeichert sind, nicht in den nicht-flüchtigen Speicher (17) zu speichern sind, Abschalten der Betriebsspannung (207) der UICC (1), ohne dass die dem Applet (13a, 13b) zugehörigen Daten in den nicht-flüchtigen Speicher (17) gespeichert werden.
  3. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Applet (13a, 13b) bestimmt, welche der dem Applet (13a, 13b) zugehörigen Daten, die in dem flüchtigen Speicher (18) gespeichert sind, in den nicht-flüchtigen Speicher (17) zu speichern sind, und die bestimmten Daten in den nicht-flüchtigen Speicher (17) gespeichert werden.
  4. Verfahren nach einem der vorhergehenden Ansprüche, mit dem Schritt: Senden, durch das Applet (13a, 13b), einer Information an die UICC (1), insbesondere an das Betriebssystem (15), wobei die Information signalisiert, dass die Betriebsspannung der UICC (1) abgeschaltet werden kann.
  5. Verfahren nach Anspruch 1, wobei, falls in der UICC (1) eine Information hinterlegt ist, dass die Schritte (d) und (d) durchzuführen sind, Durchführen der Schritte (d) und (e), und falls in der UICC (1) keine Information hinterlegt ist, dass die Schritte (d) und (e) durchzuführen sind, Speichern (205), durch das Betriebssystem (15), der dem Applet (13a, 13b) zugehörigen Daten, die in dem flüchtigen Speicher (18) gespeichert sind, in den nicht-flüchtigen Speicher (17).
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Abschalten der Betriebsspannung (206, 207) der UICC (1) ein Abschalten der Betriebsspannung an Kontakten einer kontaktbehafteten Schnittstelle (31) umfasst.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei das Abschalten der Betriebsspannung (206, 207) der UICC (1) ein Abschalten der Betriebsspannung an einer kontaktlosen Schnittstelle umfasst.
  8. UICC (1) umfassend einen Prozessor (19), einen flüchtigen Speicher (18) und einen nicht-flüchtigen Speicher (17), wobei ein Programmcode eines Betriebssystems (15) und ein Programmcode eines Applets (13a, 13b) in dem nicht-flüchtigen Speicher (17) gespeichert sind, (a) wobei der Prozessor (19) eingerichtet ist den Programmcode des Betriebssystems (15) und den Programmcode des Applets (13a, 13b) auszuführen, wobei bei dem Ausführen des Programmcodes des Applets (13a, 13b) dem Applet (13a, 13b) zugehörige Daten in dem flüchtigen Speicher (18) speicherbar sind; (b) wobei die UICC (1) eingerichtet ist ein Suspendier-Kommando zu empfangen; (c) wobei die UICC (1) eingerichtet ist zu prüfen, ob in der UICC (1), insbesondere in dem Betriebssystem (15), eine Information hinterlegt ist, dass Schritte (d) und (e) durchzuführen sind; (d) wobei das Applet (13a, 13b) eingerichtet ist zu überprüfen, ob dem Applet (13a, 13b) zugehörige Daten, die in dem flüchtigen Speicher (18) speicherbar sind, in den nicht-flüchtigen Speicher (17) zu speichern sind; und (e) das Applet (13a, 13b) eingerichtet ist, falls dem Applet (13a, 13b) zugehörige Daten, die in dem flüchtigen Speicher (18) speicherbar sind, in den nicht-flüchtigen Speicher (17) zu speichern sind, die Daten in den nicht-flüchtigen Speicher (17) zu speichern.
  9. UICC (1) nach Anspruch 9, umfassend eine Schnittstelle (31) zur Datenkommunikation mit einem Gerät (2).
  10. Verfahren zum Betreiben einer Universal Integrated Circuit Card, UICC (1), mit den folgenden Verfahrensschritten: (a) Überprüfen, nach Empfangen eines Suspendier-Kommandos, ob durch ein Betriebssystem (15) Daten eines Applets (13a, 13b) in einem flüchtigen Speicher (18) in einen nicht-flüchtigen Speicher (17) zu speichern sind; (b) Falls die Daten des Applets (13a, 13b) in dem flüchtigen Speicher (18) durch das Betriebssystem (15) in den nicht-flüchtigen Speicher (17) zu speichern sind, Speichem der Daten durch das Betriebssystem (15) in den nicht-flüchtigen Speicher (17); und/oder (c) Falls die Daten des Applets (13a, 13b) in dem flüchtigen Speicher (18) durch das Betriebssystem (15) nicht in den nicht-flüchtigen Speicher (17) zu speichern sind, Nicht-Speichern der Daten durch das Betriebssystem (15) in den nicht-flüchtigen Speicher (17).
  11. Verfahren nach Anspruch 10, mit dem Schritt: Falls die Daten des Applets (13a, 13b) in dem flüchtigen Speicher (18) durch das Betriebssystem (15) nicht in den nicht-flüchtigen Speicher (17) zu speichern sind, Überprüfen, durch das Applet (13a, 13b), ob Daten des Applets (13a, 13b) in dem flüchtigen Speicher (18) durch das Applet (13a, 13b) in den nichtflüchtigen Speicher (17) zu speichern sind.
  12. Verfahren nach Anspruch 10, mit dem Schritt: Falls Daten des Applets (13a, 13b) in dem flüchtigen Speicher (18) durch das Applet (13a, 13b) in den nicht-flüchtigen Speicher (17) zu speichern sind, Speichern, durch das Applet (13a, 13b), der Daten des Applets (13a, 13b) in dem flüchtigen Speicher (18) in den nicht-flüchtigen Speicher (17).
  13. Verfahren nach einem der Ansprüche 10 bis 12, wobei das Überprüfen, nach Empfangen des Suspendier-Kommandos, ob durch das Betriebssystem (15) Daten des Applets (13a, 13b) in dem flüchtigen Speicher (18) in den nicht-flüchtigen Speicher (17) zu speichern sind auf Grundlage eines Parameters des Applets, insbesondere auf Grundlage eines Installationsparameters des Applets, durchgeführt wird.
  14. Computerprogrammprodukt, umfassend Befehle, die bei der Ausführung des Programms durch eine UICC (1) diese veranlassen, das Verfahren nach einem der Ansprüche 1 bis 7 oder 10 bis 13 auszuführen.
DE102021004158.5A 2020-11-03 2021-08-12 Verfahren zum Betreiben einer universal integrated Circuit Card, UICC, und UICC Pending DE102021004158A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102020006748.4 2020-11-03
DE102020006748 2020-11-03

Publications (1)

Publication Number Publication Date
DE102021004158A1 true DE102021004158A1 (de) 2022-05-05

Family

ID=81184103

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021004158.5A Pending DE102021004158A1 (de) 2020-11-03 2021-08-12 Verfahren zum Betreiben einer universal integrated Circuit Card, UICC, und UICC

Country Status (1)

Country Link
DE (1) DE102021004158A1 (de)

Similar Documents

Publication Publication Date Title
EP2910039B1 (de) Verfahren zum einbringen von teilnehmeridentitätsdaten in ein teilnehmeridentitätsmodul
EP2898714B1 (de) Identitätsmodul zum authentisieren eines teilnehmers in einem kommunikationsnetzwerk
EP2987350B1 (de) Mobilstation umfassend sicherheitsressourcen mit unterschiedlichen sicherheitsniveaus
DE102017214757A1 (de) Techniken zum Bereitstellen von elektronischen Bootstrap-Teilnehmeridentitätsmodulen (eSIMs) an mobile Vorrichtungen
WO2014023394A1 (de) Verfahren zum aktivieren eines betriebssystems in einem sicherheitsmodul
CN108255735A (zh) 关联环境测试方法、电子装置及计算机可读存储介质
EP3713268B1 (de) Verfahren zum aufbau einer datenverbindung, verfahren zum bereitstellen von verbindungsparametern, sowie teilnehmeridentitätsmodul
DE102021004158A1 (de) Verfahren zum Betreiben einer universal integrated Circuit Card, UICC, und UICC
US9930069B2 (en) Operation of a security element with the set of operating parameters matched to the selected use profile
DE102021005869A1 (de) Verfahren zum Ändern eines Zugriffsrechts in einer UICC
DE102020002658A1 (de) Verfahren zum Betreiben einer Universal Integrated Chip Card, UICC, sowie UICC
EP3664490A1 (de) Imei speicherung
EP2478435A1 (de) Verfahren zum installieren und konfigurieren von applikationen auf einem portablen datenträger
DE102021004912A1 (de) Universal integrated chip card, uicc, zum verwalten von profilen, sowie verfahren
DE102008056710A1 (de) Verfahren zum Betrieb eines tragbaren Datenträgers, insbesondere einer Chipkarte, in einem Endgerät
EP3051771B1 (de) Verfahren zum entsperren eines mobilen endgerätes
EP4320900A1 (de) Verfahren zum personalisieren eines sicheren elementes
DE102022001094A1 (de) Verfahren zur Verwaltung einer Anwendung zur elektronischen Identifizierung eines Nutzers
DE102022002276A1 (de) Verfahren in einem secure element
DE102023110415A1 (de) Ein Verfahren zum Bereitstellen von Daten für ein Abonnementenprofil für ein Secure Element
DE102021000077A1 (de) Integriertes Teilnehmeridentitätsmodul mit Anti-Rollback-Mechanismus
WO2023025411A1 (de) Verfahren in einem secure element
DE102018006208A1 (de) Chipset, für Endgerät, mit aktualisierbarem Programm
WO2020035170A1 (de) Selektives betriebssystem-laden in ein teilnehmeridentitätsmodul
DE102018001671A1 (de) Verfahren zur Optimierung und Steuerung der Verwendung einer Batterie eines Terminals

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: GIESECKE+DEVRIENT EPAYMENTS GMBH, DE

Free format text: FORMER OWNER: GIESECKE+DEVRIENT MOBILE SECURITY GMBH, 81677 MUENCHEN, DE

Owner name: GIESECKE+DEVRIENT MOBILE SECURITY GERMANY GMBH, DE

Free format text: FORMER OWNER: GIESECKE+DEVRIENT MOBILE SECURITY GMBH, 81677 MUENCHEN, DE

R081 Change of applicant/patentee

Owner name: GIESECKE+DEVRIENT MOBILE SECURITY GERMANY GMBH, DE

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