Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR PROVIDING A SECURE COUNTER ON A TERMINAL
Document Type and Number:
WIPO Patent Application WO/2011/085960
Kind Code:
A1
Abstract:
The invention relates to a method on a terminal (T) comprising at least one security element (SE) and a first secure execution environment for executing security relevant applications (SApp1, SApp2), and a second non-secure execution environment. An application (SApp1, SApp2) relevant to security is executed in the secure execution environment, wherein the application (SApp1, SApp2) uses a variable (C1, C2) and stores the same in a non-volatile manner. A dedicated interface of the secure execution environment is used, provided for security relevant applications, for swapping out variables on the security element, in order to store the variables via the security relevant application (SApp1, SApp2) in the at least one security element (SE).

Inventors:
SPITZ STEPHAN (DE)
STERZINGER HERMANN (DE)
Application Number:
PCT/EP2011/000078
Publication Date:
July 21, 2011
Filing Date:
January 11, 2011
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
GIESECKE & DEVRIENT GMBH (DE)
SPITZ STEPHAN (DE)
STERZINGER HERMANN (DE)
International Classes:
G06F21/53; G06F21/54; G06F21/57
Domestic Patent References:
WO2009027743A22009-03-05
WO2001075595A22001-10-11
WO1998019237A11998-05-07
WO2004046934A22004-06-03
WO2004046934A22004-06-03
WO2009027743A22009-03-05
WO2007085987A12007-08-02
Foreign References:
US20060256106A12006-11-16
EP1282028A22003-02-05
Attorney, Agent or Firm:
GIESECKE & DEVRIENT GMBH (DE)
Download PDF:
Claims:
P a t e n t a n s p r ü c h e

Verfahren auf einem Endgerät (T), das zumindest ein Sicherheitselement (SE) und eine erste sichere Ausführungsumgebung für die Ausführung sicherheitsrelevanter Applikationen (SAppl, SApp2) und eine zweite unsichere Ausführungsumgebung umf asst, mit den Schritten:

Ausfuhren einer sicherheitsrelevanten Applikation (SAppl, SApp2) in der sicheren Ausführungsumgebung, wobei die Applikation (SAppl, SApp2) eine Variable (C1,C2) verwendet und nicht-flüchtig speichert, gekennzeichnet durch

Verwenden einer dedizierten Schnittstelle der sicheren Ausführungsumgebung, welche für sicherheitsrelevante Applikationen zum Auslagern von Variablen auf das Sicherheitselement vorgesehen ist, um die Variable durch die sicherheitsrelevante Applikation (SAppl, SApp2) in dem zumindest einen Sicherheitselement (SE) zu speichern.

Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Variable (Cl, C2) eine Variable zur Absicherung der sicherheitsrelevanten Applikation (SAppl, SApp2) ist.

Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass anhand der Variablen (Cl, C2) das Einspielen eines alten Speicherabbildes mit einem veralteten Variableninhalt verhindert wird.

Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Variable (Cl, C2) in einen dedizierten Auslagerungsspeicherbereich des Sicherheitselements gespeichert wird. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die durch die sicherheitsrelevanten Applikationen (SAppl, SApp2) verarbeitete Variable (Cl, C2) in dem zumindest einen Sicherheitselement (SE) vorgehalten wird, wobei für einen Zugriff auf die Variable (Cl, C2) eine sichere Verbindung zwischen der die Variable (Cl, C2) anfordernden Applikation (SAppl, SApp2) und dem Sicherheitselement (SE) aufgebaut wird.

Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass für unterschiedliche sicherheitsrelevante Applikationen (SAppl, SApp2) unterschiedliche Variablen (Cl, C2) in dem Sicherheitselement (SE) bereitgestellt werden.

Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass für eine jeweilige sicherheitsrelevante Applikationen (SAppl, SApp2) eine eigene Variable (Cl, C2) in dem Sicherheitselement (SE) bereitgestellt wird.

Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Variable (Cl, C2) durch eine weitere Applikation (CA) des Sicherheitselements (SE) verwaltet wird, wobei die weitere Applikation (CA) und die eine oder die mehreren Applikationen (SAppl, SApp2) in einer kryptographischen Beziehung zueinander stehen.

Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die sichere Verbindung zu dem Sicherheitselement (SE) durch eine Programmierschnittstelle (T-API) hergestellt wird, die der oder den sicherheitsrelevanten Applikationen (SAppl, SApp2) zwecks Anforderung eines Zugriffs auf die Variable (Cl, C2) zugeordnet ist.

Verfahren nach einem der Ansprüche 7 und 9, dadurch gekennzeichnet, dass die Programmierschnittstelle (T-API) für eine jeweilige sicherheitsrelevante Applikation (SAppl, SApp2) eine jeweilige sichere Verbindung zu dem Sicherheitselement (SE) herstellt.

Verfahren nach Anspruch 9 oder 10, dadurch gekennzeichnet, dass die Prograrrimierschnittstelle (T-API1, T-API2) über die in dem Sicherheitselement (SE) vorhandene Variable (Cl, C2) durch das Sicherheitselement (SE) benachrichtigt wird.

Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass die Variable (Cl, C2) aus dem Sicherheitselement (SE) gelesen und durch eine der Applikationen (SAppl, SApp2) verarbeitet wird.

Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass die, insbesondere für eine Absicherung einer Transaktion verwendete, Variable (Cl, C2) beim Auslesen aus dem Sicherheitselement (SE) durch das Sicherheitselement (SE) verändert, insbesondere inkrementiert oder dekrementiert, wird. 14. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Variable (Cl, C2) zusätzlich verschlüsselt in der gesicherten Ausführungsumgebung (SEE) gespeichert wird. Endgerät (T), das zumindest ein Sicherheitselement (SE) und eine erste sichere Ausführungsumgebung für die Ausführung sicherheitsrelevanter Applikationen (SAppl, SApp2) und eine zweite unsichere Ausführungsumgebung umf asst, wobei das Endgerät (T) dazu ausgebildet ist, eine sicherheitsrelevante Applikation (SAppl, SApp2) in der sicheren Ausführungsumgebung auszuführen, wobei durch die Applikation (SAppl, SApp2) eine Variable verwendbar und nicht- flüchtig speicherbar ist,

dadurch gekennzeichnet, dass

das Endgerät (T) weiter dazu ausgebildet ist, eine dedizierte Schnittstelle der sicheren Ausführungsumgebung zu verwenden, welche für sicherheitsrelevante Applikationen zum Auslagern von Variablen auf das Sicherheitselement vorgesehen ist, um die Variable durch die sicherheitsrelevante Applikation (SAppl, SApp2) in dem zurnindest einen Sicherheitselement (SE) zu speichern.

Endgerät nach Anspruch 15, dadurch gekennzeichnet, dass die durch die sicherheitsrelevanten Applikationen (SAppl, SApp2) verarbeitete Variable (Cl, C2) in dem zumindest einen Sicherheitselement (SE) vorgehalten ist, wobei die Ausführungsumgebung (SEE) dazu ausgebildet ist, für einen Zugriff auf die Variable (Cl, C2) eine sichere Verbindung zwischen der den Zähler anfordernden Applikation (SAppl, SApp2) und dem Sicherheitselement (SE) aufzubauen.

Endgerät nach Anspruch 15 oder 16, dadurch gekennzeichnet, dass die eine oder die mehreren sicherheitsrelevanten Applikationen (SAppl, SApp2) in einer gesicherten Ausfuhrungsumgebung (SEE) des Endgeräts (T) ausführbar sind und dass dieses eine normale Aus- führungsumgebung (NEE) für die Ausführung nicht- sicherheitsrelevanter Applikationen (Appl, App2, App3) umfasst.

Endgerät nach einem der Ansprüche 15 bis 17, dadurch gekennzeichnet, dass das Sicherheitselement (SE) zur Verwaltung der Variablen (Cl, C2) eine weitere Applikation (CA) umfasst, wobei die weitere Applikation (CA) und die eine oder die mehreren Applikationen (SAppl, SApp2) in einer kryptographischen Beziehung zueinander stehen.

Endgerät nach einem der Ansprüche 15 bis 18, dadurch gekennzeichnet, dass der oder den sicherheitsrelevanten Applikationen (SAppl, SApp2) zwecks Anforderung eines Zugriffs auf die Variable (Cl, C2) eine Programmierschnittstelle (T-API) zugeordnet ist, die die sichere Verbindung zu dem Sicherheitselement (SE) herstellen kann.

Description:
Verf ahren zum Bereitstellen eines sicheren Zählers auf einem Endgerät

Die Erfindung betrifft ein Verfahren zum Bereitstellen eines sicheren Zählers auf einem Endgerät, das zumindest ein Sicherheitselement und eine Ausführungsumgebung für die Ausführung einer oder mehrerer sicherheitsrelevanter Applikationen umfasst, wobei der durch die eine oder die mehreren sicherheitsrelevanten Applikationen verarbeitete Zähler in dem zumindest einen Sicherheitselement vorgehalten wird. Die Erfindung betrifft ferner ein Endgerät, das zumindest ein Sicherheitselement und eine Ausführungsumgebung für die Ausführung einer oder mehrerer sicherheitsrelevanter Applikationen umfasst, wobei der durch die eine oder die mehreren sicherheitsrelevanten Applikationen verarbeitete Zähler in dem zumindest einen Sicher- heitselement vorgehalten ist.

Sichere Zähler werden in einer Vielzahl von Anwendungen benötigt. Beispielsweise werden sichere Zähler bei der Ausführung von Transaktionen verwendet, um Fehlversuche bei der Eingabe eines Identifikationsdatums, wie z.B. einer persönlichen Identifikationsnummer, festzustellen. Der Zähler stellt hier einen sog. Fehlbedienungszähler dar. Insbesondere bei sicherheitskritischen Daten und Prozessen muss in jedem Falle sichergestellt werden können, dass der Zähler nicht manipuliert werden kann. Zur Erhöhung der Sicherheit von Applikationen in einem Endgerät sind Endgeräte bekannt, welche eine normale Ausführungsumgebung und eine gesicherte Ausführungsumgebung aufweisen. Ein solches Endgerät ist beispielsweise in der WO 2004/046934 A2 beschrieben. Das in WO 2009/027743 A2 offenbarte Endgerät umfasst weiterhin einen Schnittstellencontroller, welcher den Zugang zu den von einem Sicherheitselement (SIM- arte) angebotenen Diensten absichern soll. Die Realisierung eines sicheren Zählers in dem gesicherten Bereich des Endgeräts ist jedoch problematisch. Ein Zähler kann immer wieder durch das Einspielen eines früheren bzw. älteren Speicherabbilds des gesicherten Be- reichs mit einem alten Wert überschrieben werden. Zwar kann die Integrität eines jeden Speicherabbilds in einer solchen Sicherheitsumgebung gewährleistet werden, allerdings unabhängig von einem bestimmten Zeitpunkt. Hierdurch ergibt sich folgender möglicher Angriff: In einem ersten Schritt wird ein gültiges Speicherabbild mit einem Fehlbedienungszähler aus dem nicht-flüchtigen Speicher des Endgeräts kopiert. Anschließend wird versucht, über eine Eingabevorrichrung eine Transaktion (z.B. eine Bezahlung) zu autorisieren. Dies kann beispielsweise durch die Eingabe einer persönlichen Identifikationsnummer oder einen Fingerabdruck erfolgen. Konnte die Transaktion nicht legitimiert werden, so kann in einem letzten Schritt der aktuelle Inhalt des nicht-flüchtigen Speichers mit dem„alten" Speicherabbild überspielt werden, wodurch ein neuer Versuch zur Autorisierung der Transaktion ermöglicht wird.

Aus der WO 2007/085987 AI ist ein Verfahren bekannt, um Aktualisierun- gen einer Firmware eines elektronischen Geräts nachverfolgen zu können. Nach einer Aktualisierungsoperation wird ein manipulationssicherer Indikator für die Erfassung von die Aktualisierung betreffenden Parametern gesetzt. Hierzu werden Schmelzsicherungen (sog. Fuses) eingesetzt. Es ist Aufgabe der vorliegenden Erfindung, ein Verfahren anzugeben, mit dem ein sicherer Zähler auf einem Endgerät manipulationsgeschützt bereitgestellt werden kann. Eine weitere Aufgabe besteht darin, ein Endgerät anzugeben, welches einen gegen Manipulation geschützten, sicheren Zähler aufweist. Diese Aufgaben werden gelöst durch ein Verfahren gemäß den Merkmalen des Patentanspruchs 1 und ein Endgerät gemäß den Merkmalen des Patentanspruchs 15. Vorteilhafte Ausgestaltungen ergeben sich aus den abhängigen Patentansprüchen.

Die Erfindung schafft ein Verfahren auf einem Endgerät, das zumindest ein Sicherheitselement und eine erste sichere Ausführungsumgebung für die Ausführung sicherheitsrelevanter Applikationen und eine zweite unsichere Ausführungsumgebung umfasst. Das Verfahren umfasst den Schritt des

Ausführens einer sicherheitsrelevanten Applikation in der sicheren Ausführungsumgebung, wobei die Applikation eine Variable verwendet und nichtflüchtig speichert. Als weiterer Schritt ist das Verwenden einer dedizierten Schnittstelle der sicheren Ausführungsumgebung vorgesehen, welche für sicherheitsrelevante Applikationen zum Auslagern von Variablen auf das Sicherheitselement vorgesehen ist, um die Variable durch die sicherheitsrelevante Applikation in dem zumindest einen Sicherheitselement zu speichern. Zweckmäßigerweise ist die eine Variable eine Variable zur Absicherung der sicherheitsrelevanten Applikation. Insbesondere wird anhand der Variablen das Einspielen eines alten Speicher- Abbilds mit veraltetem Variablerunhalt verhindert. Hierdurch kann die Sicherheit gegenüber Manipulation erhöht werden. In einer besonders zweckmäßigen Ausgestaltung ist die Variable ein Zähler.

Die Variable wird vorzugsweise in einem der sicheren Ausführungsumgebung zugeordneten Speicherbereich des Sicherheitselements gespeichert, welcher im Folgenden teilweise auch als Auslagerungsspeicherbereich be- zeichnet wird. Dieser Bereich ist für die Auslagerung von Variablen unterschiedlicher Applikationen vorgesehen. Der Auslagerungsspeicherbereich ist so ausgelegt, dass ein Zugriff nur durch die sichere Ausführungsumgebung möglich ist. Applikationen aus dem sicheren Bereich haben keine eigenen Zugriffsrechte auf den Auslagerungsspeicherbereich. Eine Applikation benötigt für die Auslagerung somit keinen eigenen Speicherbereich auf dem Sicherheitselement. Sollte eine Applikation bereits einen eigenen Speicherbereich auf dem Sicherheitselement haben, erfolgt die Auslagerung der Variable dennoch in den für mehrere Applikationen vorgesehenen Auslagerungs- Speicherbereich. Die gesicherte Umgebung ordnet einer Applikation, die eine Variable auslagern möchte, einen Speicherplatz für die Variable innerhalb des Auslagerungsspeicherbereichs zu und speichert die Variable dort für die Applikation. Der Auslagerungsspeicherbereich kann auf dem Sicherheitselement unterschiedlich implementiert werden, er kann beispielsweise ein Teil eines JAVA Card Applets sein. Er kann aber beispielsweise auch auf dem Sicherheitselement in einem separaten Verzeichnis Auslagerungs-DF (Dedicated File) mit entsprechenden Dateien (z.B. Auslagerungs-EF (Elemen- tary File) und EF_Key mit den für die Auslagerung verwendeten Schlüsseln des gesicherten Bereiches) angeordnet sein. Die zumeist standardisierte Ar- chitektur von Applikationsdiensten auf dem Sicherheitselement muss für die Auslagerung somit nicht angepasst werden.

Gemäß einer weiteren Ausgestaltung wird die durch zumindest eine der mehreren sicherheitsrelevanten Applikationen verarbeitete Variable in dem zumindest einen Sicherheitselement vorgehalten, wobei für einen Zugriff auf die Variable eine sichere Verbindung zwischen der die Variable anfordernden Applikation und dem Sicherheitselement aufgebaut wird. Bei dem erfindungsgemäßen Verfahren wird die Variable einerseits dadurch geschützt, dass diese auf ein externes, gekapseltes Sicherheitselement, wie z.B. eine Secure Mikro-SD-Karte, eine SIM (Subscriber Identity Module)- Karte, eine UICC (Universal Integrated Chip Card) oder einen sog. Hard- ware-Chip ausgelagert wird. Andererseits erfolgt ein Zugriff auf die Variable ausschließlich über eine sichere Verbindung zwischen der die Variable anfordernden Applikation und dem Sicherheitselement. Hierdurch wird ein Schutz vor Manipulation der Variablen erreicht, da durch ein Speicherabbild der Ausführungsumgebung, welche die die Variable verwendende sicher- heitsrelevante Applikation umfasst, nicht der aktuell gültige Variablenwert erfassbar ist, da dieser in dem Sicherheitselement geführt wird. Dadurch läuft der eingangs beschriebene Angriff, z.B. einen Fehlbedienungszähler durch ein Speicherabbild wiederholt zurückzusetzen, ins Leere, da ein Rücksetzen der Variablen über das Speicherabbild nicht möglich ist.

Zweckmäßigerweise werden die eine oder die mehreren Applikationen in einer gesicherten Ausführungsumgebung des Endgeräts ausgeführt, so dass auch die sicherheitsrelevanten Applikationen vor Manipulation geschützt sind.

Es ist insbesondere zweckmäßig, wenn für unterschiedliche sicherheitsrelevante Applikationen unterschiedliche Variablen in dem Sicherheitselement bereitgestellt werden. Hierdurch kann eine Variable mehreren Applikationen auf dem Endgerät zur Verfügung gestellt werden. In diesem Zusammenhang ist es vorteilhaft, wenn für eine jeweilige sicherheitsrelevante Applikation eine eigene Variable in dem Sicherheitselement bereitgestellt wird. Dies hat zur Folge, dass eine Variable einer ersten Applikation nicht von einer zweiten Applikation, und umgekehrt, benutzt werden kann. Gemäß einer weiteren zweckmäßigen Ausgestaltung wird die Variable durch eine weitere Applikation des Sicherheitselements verwaltet, wobei die weitere Applikation und die eine oder die mehreren Applikationen in einer kryptographischen Beziehung zueinander stehen. Zum Beispiel kann im Rahmen einer Challenge-Response-Authentisierung ein symmetrischer Schlüssel zwischen der weiteren Applikation und der oder den Applikationen ausgetauscht werden.

Gemäß einer weiteren zweckmäßigen Ausgestaltung wird die sichere Ver- bindung zu dem Sicherheitselement durch eine Programmierschnittstelle hergestellt, die der oder den sicherheitsrelevanten Applikationen zwecks Anforderung eines Zugriffs auf die Variable zugeordnet ist. Eine solche Pro- grammierschnittstelle wird als Application Programmable Interface (API) bezeichnet, welche im vorliegenden Fall dem einzigen Zweck dient, einer Applikation den Zugriff auf die in dem Sicherheitselement angeordnete Variable zu ermöglichen. Insbesondere kann die Programmierschnittstelle für eine jeweilige sicherheitsrelevante Applikation eine jeweilige sichere Verbindung zu dem Sicherheitselement und damit zu einer nur durch die jeweilige Applikation genutzten Variablen herstellen. Hierdurch wird eine Isolierung ermöglicht, mit der jeweilige Variablen einzelnen Applikationen auf dem Endgerät zur Verfügung gestellt werden können. Zweckmäßigerweise verwaltet die Programmierschnittstelle hierbei einen jeweiligen Kontext.

Es ist weiterhin vorgesehen, dass die Prograrruiüerschnittstelle über die in dem Sicherheitselement vorhandene Variable durch das Sicherheitselement benachrichtigt wird.

Eine weitere Ausgestaltung sieht vor, dass die Variable aus dem Sicherheitselement gelesen und durch eine der Applikationen verarbeitet wird. Alterna- tiv wird die, insbesondere für eine Absicherung einer Transaktion verwendete, Variable beim Auslesen aus dem Sicherheitselement durch das Sicherheitselement verändert, insbesondere inkrementiert oder dekrementiert. Hierdurch kann die Sicherheit gegenüber Manipulation der Variablen weiter verbessert werden, da unmittelbar mit dem Auslesen der Variablen deren Veränderung in dem Sicherheitselement durch das Sicherheitselement vorgenommen wird. Die Verwendung eines Speicherabbilds zu einem beliebigen Zeitpunkt weist daher zu späteren Zeitpunkten niemals den aktuell gültigen Variablenwert auf.

Es ist weiterhin vorteilhaft, wenn die Variable zusätzlich verschlüsselt in der gesicherten Ausführungsumgebung gespeichert wird. Hierdurch wird eine Backup-Funktionalität bereitgestellt. Der Schlüssel zum Entschlüsseln der Variablen ist dabei lediglich dem Sicherheitselement bekannt. Wird der Schlüssel einer Mehrzahl an Sicherheitselementen bekannt gemacht, so kann bei einem Austausch des Sicherheitselements die Variable dennoch weiter verwendet werden.

Die Erfindung schafft weiter ein Endgerät, das zumindest ein Sicherheitselement und eine erste sichere Ausführungsumgebung für die Ausführung sicherheitsrelevanter Applikationen und eine zweite unsichere Ausführungsumgebung umfasst. Das Endgerät ist dazu ausgebildet, eine sicherheitsrelevante Applikation in der sicheren Ausführungsumgebung auszuführen, wobei durch die Applikation eine Variable verwendbar und nicht- flüchtig speicherbar ist. Das Endgerät ist weiter dazu ausgebildet, eine dedi- zierte Schnittstelle der sicheren Ausführungsumgebung zu verwenden, welche für sicherheitsrelevante Applikationen zum Auslagern von Variablen auf das Sicherheitselement vorgesehen ist, um die Variable durch die sicherheits- relevante Applikation in dem zumindest einen Sicherheitselement zu speichern.

Das erfindungsgemäße Endgerät weist die gleichen Vorteile auf, die vorste- hend in Verbindung mit dem erfindungsgemäßen Verfahren erläutert wurden.

In einer zweckmäßigen Ausgestaltung ist die durch die sicherheitsrelevanten Applikationen verarbeitete Variable in dem zumindest einen Sicherheits- element vorgehalten. Die Ausführungsumgebung ist dazu ausgebildet, für einen Zugriff auf den Zähler eine sichere Verbindung zwischen der den Zähler anfordernden Applikation und dem Sicherheitselement aufzubauen.

In einer weiteren zweckmäßigen Ausgestaltung sind die eine oder die meh- reren sicherheitsrelevanten Applikationen in einer gesicherten Ausführungsumgebung des Endgeräts ausführbar. Ferner umfasst dieses eine normale Ausführungsumgebung für die Ausführung nicht-sicherheitsrelevanter Applikationen. Gemäß einer weiteren Ausgestaltung umfasst das Sicherheitselement zur Verwaltung der Variablen eine weitere Applikation, wobei die weitere Applikation und die eine oder die mehreren Applikationen in einer kryp- tographischen Beziehung zueinander stehen. Hierdurch kann die sichere Übertragung des Zählers an die diesen verwendende Applikation sicherge- stellt werden. Die Gefahr einer Manipulation ist weiter verringert.

Es ist weiterhin vorgesehen, dass der oder den sicherheitsrelevanten Applikationen zwecks Anforderung eines Zugriffs auf die Variable eine Program- mierschnittstelle zugeordnet ist, die die sichere Verbindung zu dem Sicherheitselement herstellen kann.

Die Erfindung wird nachfolgend näher anhand eines Ausführungsbeispiels in der Zeichnung erläutert.

Die einzige Figur zeigt in einer schematischen Darstellung ein beispielhaftes erfindungsgemäßes Endgerät. Das Endgerät T umfasst eine normale oder Haupt- Ausführungsumgebung NEE mit einem Haupt-Betriebssystem NOS und einer Anzahl an nicht- sicherheitsrelevanten Applikationen Appl, App2, App3. Die Haupt- Ausführungsumgebung NEE entspricht der Ausführungsumgebung eines herkömmlichen Mobilfunkendgeräts. Das Endgerät T umfasst weiterhin ei- nen gesicherten Bereich mit einer gesicherten Ausführungsumgebung SEE (sog. Trusted Area), in welcher ein sicheres Betriebssystem SOS implementiert ist. In der gesicherten Ausführungsumgebung SEE laufen sicherheitsrelevante Applikationen SAppl, SApp2 ab. Als sicheres Betriebssystem wird beispielweise MobiCore4 verwendet. Die sicherheitsrelevanten Applikatio- nen werden auch als sog. Trustlets bezeichnet. Darüber hinaus umfasst das Endgerät T ein Sicherheitselement SE, z.B. in Gestalt einer Secure Mikro-SD- Karte, einer SIM-Karte, einer UICC oder einem Hardware-Chip.

Um die Sicherheit eines durch eine der sicherheitsrelevanten Applikationen SAppl, SApp2 benutzten Zählers vor Manipulation zu erhöhen, umfasst das Sicherheitselement SE neben einer Laufzeitumgebung RTE (z.B. der Java Runtime-Laufzeitumgebung) eine Zählerapplikation CA, welche zumindest einen Zähler Cl, C2 verwaltet. Benötigt eine der sicherheitsrelevanten Appli- kationen SAppl, SApp2 einen sicheren Zähler, so wird dieser durch das Sicherheitselement SE bereitgestellt.

Um eine Manipulation des sicheren Zählers durch ein Ersetzen des Sicher- heitselements SE zu verhindern, ist eine kryptographische Beziehung zwischen dem Sicherheitselement SE und den sicherheitsrelevanten Applikationen SAppl, SApp2 vorgesehen. Hierbei können sog. Secure Channel- Protokolle zum Einsatz kommen. Die Kommunikation zwischen einer jeweiligen sicherheitsrelevanten Applikation und dem Sicherheitselement erfolgt über eine sichere Verbindung SC (sog. Secure Channel). Die Kommunikation zwischen einer der sicherheitsrelevanten Applikationen SAppl, SApp2 und dem Sicherheitselement SE findet hierbei nach Art einer TrustZone-Kommunikation unter optionaler Zwi- schenschaltung der Haupt- Ausführungsumgebung NEE statt, wie dies in der Figur dargestellt ist.

Die Funktionsweise des erfindungsgemäßen Endgeräts ist wie folgt: Zur Initialisierung erfolgt in einem ersten Schritt die Herstellung der kryp- tographischen Verbindung zwischen dem Sicherheitselement SE und der einen Zähler benötigenden sicherheitsrelevanten Applikationen SAppl, SApp2. Die kryptographische Beziehung kann beispielsweise durch den Austausch eines symmetrischen Schlüssels im Rahmen einer Challenge- Response- Authentisierung erfolgen. In einem nächsten Schritt erfolgt das Anlegen von sicheren Zählern Cl, C2 in der Zählerapplikation CA (z.B. einem Java Card Applet). Nach dem Anlegen wird eine für die zählerspezifische Programmierschnittstelle T-API (z.B. Secure Counter API einer Applikationsprogrammierschnittstelle API (Trustlet API)) informiert, dass ein ge- meinsamer oder ein jeweiliger Zähler für die sicherheitsrelevanten Applikationen bereitstehen.

Benötigt eine der sicherheitsrelevanten Applikationen SAppl, SApp2 einen sicheren Zähler Cl, C2, so fordert die Applikation diesen über die Program- mierschnittstelle T-API an. Hierzu kann beispielsweise das Kommando INIT(Zähler x) verwendet werden. Die Prograrrimierschnittstelle T-API baut - gegebenenfalls über die Haupt- Ausführungsumgebung NEE - eine sichere Verbindung CA zu dem Sicherheitselement SE, d.h. der Zählerapplikation CA, auf und informiert hierüber die den Zähler anfordernde Applikation SAppl, SApp2. Dies kann beispielsweise mit dem Kommando INIT() = OK erfolgen. Nun steht der Zähler Cl, C2 für die diesen anfordernde sicherheitsrelevante Applikation SAppl, SApp2 zur Verfügung. Der Zähler Cl, C2 kann nun gelesen und in der Applikation weiter verwendet werden. Das Auslesen kann beispielsweise durch das Kommando READ(Zähler x) erfolgen. Ebenso kann der Zähler aus Sicherheitsgründen gleich beim Zugriff auf das Sicherheitselement SE erhöht werden, z.B. über das Kommando INC(Zähler x), mit dem der Zähler um einen Wert erhöht wird. Diese Vorgehensweise bietet sich insbesondere für die Absicherung einer Transaktion an.

Prinzipiell kann ein gemeinsamer Zähler für sämtliche sicherheitsrelevante Applikationen bereitgestellt werden. Ebenso ist es möglich, einen jeweiligen Zähler Cl, C2 einzelnen sicherheitsrelevanten Applikationen SAppl, SApp2 ausschließlich zur Verfügung zu stellen. Beispielsweise wird der Zähler Cl der sicherheitsrelevanten Applikation SAppl und der Zähler C2 der sicherheitsrelevanten Applikation SApp2 zur Verfügung gestellt. Die Zähler können jeweils nur durch die ihr zugeordnete Applikation ausgelesen werden. Im Falle einer derartigen Isolierung ist vorgesehen, dass die Programmier- schnittstelle T- API einen Kontext verwaltet und gegebenenfalls eine eigene sichere Verbindung für jede der Applikation verwendet.

Prinzipiell erlaubt es die Erfindung, beliebig viele Zähler in das Sicherheits- element auszulagern, wobei insbesondere ein jeweiliger Zähler einer jeweiligen Applikation zugeordnet sein kann.

Die sicherheitsrelevanten Applikationen sind in einem Speicher der gesicherten Ausführungsumgebung (sog. MobiCore-Image) integritätsgesichert ge- speichert und werden bei einem Start des Endgeräts T geladen. Applikationen, die einen sicheren Zähler verwenden, weisen dabei eine Verbindung über die Programmierschnittstelle T-API zu dem Sicherheitselement SE auf.

Um den Austausch eines Sicherheitselements zu ermöglichen, ohne die gesi- cherte Ausführungsumgebung zu blockieren, ist aus Backup-Gründen vorgesehen, den Zähler Cl, C2 verschlüsselt zusätzlich in dem Speicher der gesicherten Laufzeitumgebung abzulegen. Diese sind in der Figur mit Cl' und C2' gekennzeichnet. Der Schlüssel hierzu kann einem oder mehreren Sicherheitselementen SE bekannt sein. Sicherheitselemente, die den entsprechen- den Schlüssel aufweisen, können dann den verschlüsselten Zähler aus dem Speicher der gesicherten Ausführungsumgebung laden und in der beschriebenen Weise bereithalten.

Weiterhin können sog. Fuses verwendet werden, die mit einem Zähler auf dem Sicherheitselement SE kombiniert werden, um die Möglichkeit zu schaffen, ältere Versionen der gesicherten Ausführungsumgebung in das Endgerät einzuspielen.