Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR OPERATING A COMPUTER UNIT, AND SUCH A COMPUTER UNIT
Document Type and Number:
WIPO Patent Application WO/2016/096118
Kind Code:
A1
Abstract:
The invention relates to a method for operating a computer unit (20). The computer unit (20) can be used to run an application (70) which can access CryptoAPI (72) functions, and the CryptoAPI (72) functions can be provided by at least one crypto implementation (76, 78) on the computer unit (20). The method has the following steps: running the application (70) on the computer unit (20); checking which crypto implementations (76, 78) are available on the computer unit (20); and selecting one of the available crypto implementations (76, 78) as the crypto implementation which provides the functions of the CryptoAPI (72).

Inventors:
MARTON LASZLO (DE)
MIHATSCH OLIVER (DE)
Application Number:
PCT/EP2015/002514
Publication Date:
June 23, 2016
Filing Date:
December 14, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
GIESECKE & DEVRIENT GMBH (DE)
International Classes:
G06F21/71; G06F21/53
Foreign References:
DE102013006470A12014-10-16
DE102013006621A12014-10-23
Other References:
None
Download PDF:
Claims:
P a t e n t a n s p r ü c h e

1. Verfahren zum Betreiben einer Computereinheit (20), wobei auf der Computereinheit (20) eine Applikation (70) ausgeführt werden kann, die auf die Funktionen einer Kryto-API (72) zugreifen kann, wobei die Funktionen der Krypto-API (72) durch wenigstens eine Krypto-Implementierung (76, 78) auf der Computereinheit (20) bereitgestellt werden können, wobei das Verfahren die folgenden Schritte umf asst:

das Ausführen der Applikation (70) auf der Computereinheit (20); das Überprüfen, welche Krypto-Implementierungen (76, 78) auf der Computereinheit (20) zur Verfügung stehen, wobei wenigstens eine der Krypto-Implementierungen (76, 78) in einer gesicherten Laufzeitumgebung (40) der Computereinheit (20) implementiert ist; und

das Auswählen einer der zur Verfügung stehenden Krypto- Implementierungen (76, 78) als die Krypto-Implementierung, die die Funktionen der Krypto-API (72) bereitstellt. 2. Verfahren nach Anspruch 1, wobei beim Schritt des Auswählens einer der zur Verfügung stehenden Krypto-Implementierungen (76, 78) als die Krypto-Implementierung, die die Funktionen der Krypto-API (72) bereitstellt, die sicherste zur Verfügung stehende Krypto-Implementierung (78) ausgewählt wird.

3. Verfahren nach Anspruch 1, wobei das Verfahren vor dem Schritt des Ausführens der Applikation (70) auf der Computereinheit (20) den weiteren Schritt des Herunterladens der Applikation (70) von einer Online- Softwareplattform umfasst.

4. Verfahren nach einem der vorhergehenden Ansprüche, wobei es sich bei der Applikation um eine Java- Applikation (70), bei der Krypto-API um eine JCE (72) und bei der wenigstens einen Krypto-Implementierung um wenigstens einen Kryptoprovider (76, 78) handelt.

5. Verfahren nach einem der vorhergehenden Ansprüche, wobei es sich bei der Applikation um eine .Net- Applikation (70), bei der Krypto-API um eine Microsoft Crypto-API (72) und bei der wenigstens einen Krypto- Implementierung um wenigstens einen Kryptoprovider (76, 78) handelt.

6. Computereinheit (20), auf der eine Applikation (70) ausgeführt werden kann, die auf die Funktionen einer Kryto-API (72) zugreifen kann, wobei die Funktionen der Krypto-API (72) durch wenigstens eine Krypto- Implementierung (76, 78) auf der Computereinheit (20) bereitgestellt werden können, wobei die Computereinheit dazu ausgestaltet ist:

beim Ausführen der Applikation (70) auf der Computereinheit (20) zu überprüfen, welche Krypto-Implementierungen (76, 78) auf der Computereinheit (20) zur Verfügung stehen, wobei wenigstens eine der Krypto- Implementierungen (76, 78) in einer gesicherten Laufzeitumgebung (40) der Computereinheit (20) implementiert ist; und

eine der zur Verfügung stehenden Krypto-Implementierungen (76, 78) als die Krypto-Implementierung auszuwählen, die die Funktionen der Krypto-API (72) bereitstellt. 7. Computereinheit (20) nach Anspruch 6, wobei die Computereinheit (20) dazu ausgestaltet ist, die sicherste Krypto-Implementierung (78) als die Krypto-Implementierung auszuwählen, die die Funktionen der Krypto-API (72) bereitstellt.

8. Computereinheit (20) nach Anspruch 6, wobei die Computereinheit (20) dazu ausgestaltet ist, die Applikation (70) von einer Online- Softwareplattform herunterzuladen.

9. Computereinheit (20) nach Anspruch 6, wobei wenigstens eine der Krypto-Implementierungen (76, 78) in einer gesicherten Laufzeitumgebung (40) der Computereinheit (20) implementiert ist.

10. Computereinheit (20) nach einem der Ansprüche 6 bis 9, wobei es sich bei der Applikation um eine Java- Applikation (70), bei der Krypto-API um eine JCE (72) und bei der wenigstens einen Krypto-Implementierung um wenigstens einen Kryptoprovider (76, 78) handelt.

11. Computereinheit (20) nach einem der Ansprüche 6 bis 9, wobei es sich bei der Applikation um eine .Net- Applikation (70), bei der Krypto-API um eine Microsoft Crypto-API (72) und bei der wenigstens einen Krypto- Implementierung um wenigstens einen Kryptoprovider (76, 78) handelt.

Description:
Verfahren zum Betreiben einer Computereinheit

sowie eine solche Computereinheit Gebiet der Erfindung

Die Erfindung betrifft ein Verfahren zum sicheren Betreiben einer Computereinheit sowie eine solche Computereinheit.

Hintergrund der Erfindung

Mehr und mehr werden Computereinheiten, beispielsweise in Form eines Tablet-Computers oder eines Smartphones dazu verwendet, digitale Transaktionen durchzuführen, beispielsweise der Kauf einer Ware oder einer Dienstleistung bei einem Online- Versandhändler oder das bargeldlose Bezahlen an einem NFC-Terminal. Bei der Durchführung einer solchen digita- len Transaktion interagiert in der Regel eine auf der Computereinheit implementierte Softwareapplikation (kurz " App" genannt) mit einem Terminal bzw. Server. Dabei ist häufig ein kryptographischer Algorithmus, z.B. ein Verschlüsselungsalgorithmus, Teil der auf der Computereinheit implementierten Softwareapplikation, die auf sicherheitskritische Daten, z.B. PINs, Passwörter, Schlüssel etc., zugreift.

Ein relativ junger Ansatz zum Schutz von sicherheitskritischen Daten auf einer Computereinheit basiert auf der Idee neben einem herkömmlichen Betriebssystem der Computereinheit eine gesicherte Laufzeitumgebung in Form eines sicheren bzw. gehärteten Betriebssystems auf der Computereinheit bereitzustellen. Eine solche gesicherte Laufzeitumgebung ist dem Fachmann auch unter dem Begriff "firmware-based Trusted Execution Environment" oder kurz "TEE" bekannt. Eine firware-based Trusted Execution Environment unterscheidet sich von einer gewöhnlichen TEE dadurch, dass die NEE und die TEE auf derselben CPU aufgeführt werden. Es ist Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren zum Betreiben einer Computereinheit mit einer gesicherten Laufzeitumgebung sowie eine solche Computereinheit bereitzustellen. Zusammenfassung der Erfindung

Die vorstehende Aufgabe wird gemäß der vorliegenden Erfindung durch den jeweiligen Gegenstand der unabhängigen Ansprüche gelöst. Bevorzugte Ausgestaltungen der Erfindung werden in den abhängigen Ansprüchen definiert.

Gemäß einem ersten Aspekt der Erfindung wird ein Verfahren zum Betreiben einer Computereinheit bereitgestellt, wobei auf der Computereinheit eine Applikation ausgeführt werden kann, die auf die Funktionen einer Kry- to-API zugreifen kann, wobei die Funktionen der Krypto-API durch wenigs- tens eine Krypto-Implementierung auf der Computereinheit bereitgestellt werden können. Dabei umfasst das Verfahren die folgenden Schritte: das Ausführen der Applikation auf der Computereinheit; das Überprüfen, welche Krypto-Implementierungen auf der Computereinheit zur Verfügung stehen; und das Auswählen einer der zur Verfügung stehenden Krypto- Implementierungen, vorzugsweise mittels eines Provider- Selektionsmechanismus, als die Krypto-Implementierung, die die Funktionen der Krypto-API bereitstellt.

Vorzugsweise wird beim Schritt des Auswählens einer der zur Verfügung stehenden Krypto-Implementierungen als die Krypto-Implementierung, die die Funktionen der Krypto-API bereitstellt, die sicherste zur Verfügung stehende Krypto-Implementierung ausgewählt. Gemäß bevorzugter Ausführungsformen der Erfindung umfasst das Verfahren vor dem Schritt des Ausführens der Applikation auf der Computereinheit den weiteren Schritt des Herunterladens der Applikation von einer Online-Softwareplattform.

Vorzugsweise ist wenigstens eine der Krypto-Implementierungen in einer gesicherten Laufzeitumgebung der Computereinheit implementiert.

Gemäß bevorzugter Ausführungsformen der Erfindung handelt es sich bei der Applikation um eine Java- Applikation, bei der Krypto-API um eine JCE und bei der wenigstens einen Krypto-Implementierung um wenigstens einen Kryptoprovider.

Gemäß einem zweiten Aspekt der Erfindung wird eine Computereinheit be- reitgestellt, auf der eine Applikation ausgeführt werden kann, die auf die Funktionen einer Kryto-API zugreifen kann, wobei die Funktionen der Krypto-API durch wenigstens eine Krypto-Implementierung auf der Computereinheit bereitgestellt werden können. Dabei ist die Computereinheit dazu ausgestaltet: beim Ausführen der Applikation auf der Computereinheit zu überprüfen, welche Krypto-Implementierungen auf der Computereinheit zur Verfügung stehen; und eine der zur Verfügung stehenden Krypto- Implementierungen, vorzugsweise mittels eines Provider- Selektionsmechanismus, als die Krypto-Implementierung auszuwählen, die die Funktionen der Krypto-API bereitstellt.

Vorzugsweise ist die Computereinheit dazu ausgestaltet, die sicherste Krypto-Implementierung als die Krypto-Implementierung auszuwählen, die die Funktionen der Krypto-API bereitstellt. Gemäß bevorzugter Ausführungsformen der Erfindung ist die Computereinheit dazu ausgestaltet, die Applikation von einer Online- Softwareplattform herunterzuladen.

Vorzugsweise ist wenigstens eine der Krypto-Implementierungen in einer gesicherten Laufzeitumgebung der Computereinheit implementiert.

Gemäß bevorzugter Ausführungsformen der Erfindung handelt es sich bei der Applikation um eine Java- Applikation, bei der Krypto-API um eine JCE und bei der wenigstens einen Krypto-Implementierung um wenigstens einen Kryptoprovider.

Weitere Merkmale, Vorteile und Aufgaben der Erfindung gehen aus der folgenden detaillierten Beschreibung mehrerer Ausführungsbeispiele und Ausführungsalternativen hervor. Es wird auf die Zeichnungen verwiesen, in denen zeigen:

Fig. 1 eine schematische Darstellung ein Computereinheit mit einer gesicherten Laufzeitumgebung in Kommunikation mit einem Server, die unterschiedliche Aspekte der vorliegenden Erfindung illustriert,

Fig. 2 eine schematische Darstellung einer bevorzugten Softwarearchitektur mit zwei unterschiedlichen Kryptoprovidern, die auf der Computereinheit von Figur 1 implementiert ist, und

Fig. 3 eine schematische Darstellung der Durchführung einer kryptographi- schen Operation mit den zwei unterschiedlichen Kryptoprovidern von Figur 2. Figur 1 zeigt eine schematische Darstellung einer Computereinheit 20, vorzugsweise in Form eines Tablet-Computers, eines Smartphones oder dergleichen, die Teil eines Kommunikationssystems 10 ist. Die Computereinheit 20 ist dazu ausgestaltet, über einen Kommunikationskanal 50 mit einem Server bzw. einem Terminal 60 zu kommunizieren. Bei dem Kommunikationskanal 50 kann es sich beispielsweise um das Internet, ein Mobilfunknetzwerk, einen NFC-Kanal oder dergleichen handeln. Der Server 60 könnte ein NFC- Terminal eines Service- Anbieters sein, mit dem eine Softwareapplikation, beispielsweise die Softwareapplikationen 34 oder 44, auf der Computerein- heit 20 Transaktionen durchführen kann, z.B. eine Payment-Transaktion, bei dem die Softwareapplikation auf der Computereinheit 20 einen Bezahlvorgang abwickelt.

Die Computereinheit 20 verfügt über einen Chip 22 mit einer zentralen Ver- arbeitungseinheit ("central processing unit"; CPU) beispielsweise in Form eines Mikroprozessors 24. Bekanntermaßen gehören zu den primären Aufgaben des Prozessors 24 das Ausführen von arithmetischen und logischen Funktionen und das Lesen und Schreiben von Datenelementen, wie dies durch eine auf dem Prozessor 24 ablaufende Softwareapplikation in Form von Maschinenbefehlen definiert wird. Der Übersichtlichkeit halber ist eine bevorzugte Architektur des Prozessors 24 in Figur 1 außerhalb des mobilen Endgeräts 20 noch einmal schematisch im Detail dargestellt.

Der Prozessor 24 steht in Kommunikationsverbindung mit einer Speicher- einheit 26, die vorzugsweise einen flüchtigen Arbeitsspeicher (RAM) 28 beispielsweise zur Aufnahme der Maschinenbefehle einer von dem Prozessor 24 auszuführenden Softwareapplikation umfasst. Wie dies nachstehend im Zusammenhang mit den Figuren 2 und 3 im Detail beschrieben wird, weist der RAM 28 vorzugsweise ein speziell gesicherten Bereich 28a auf, so dass sich der RAM aus einem normalen RAM 28 und einem sicheren RAM 28a zusammensetzt.

Vorzugsweise umfasst die Speichereinheit 26 ferner einen nichtflüchtigen, vorzugsweise wieder beschreibbaren Speicher, um beispielsweise im un- bestromten Zustand der Computereinheit 20 die Maschinenbefehle einer von dem Prozessor 24 auszuführenden Softwareapplikation aufzunehmen. Vorzugsweise handelt es sich bei dem nichtflüchtigen, wieder beschreibbaren Speicher um einen Flash-Speicher (Flash-EEPROM). Dabei kann es sich bei- spielsweise um einen Flash-Speicher mit einer NAND- oder einer NOR- Architektur handeln. Selbstverständlich kann die Speichereinheit 26 auch einen Festwertspeicher ("read only memory"; ROM) umfassen.

Wie in Figur 1 schematisch dargestellt ist, sind in dem Prozessor 24 zur Laufzeit eine normale, ungesicherte Laufzeitumgebung 30 (auch "Normal Execution Environment" oder kurz "NEE" genannt) sowie eine gesicherte Laufzeitumgebung 40 (auch "Trusted Execution Environment" oder kurz TEE genannt) implementiert, d.h. der Prozessor 24 stellt einen "normalen", in der Regel nichtvertrauenswürdigen Bereich und einen "sicheren", vertrau- enswürdigen Bereich bereit. Dabei wird überwacht, ob der Prozessor 24 in dem vertrauenswürdigen Bereich (TEE) oder in dem nichtvertrauenswürdigen Bereich (NEE) betrieben wird. Ferner wird ein Umschalten zwischen dem vertrauenswürdigen und dem nicht-vertrauenswürdigen Bereich überwacht. Eine gesicherte Laufzeitumgebung bzw. TEE im Sinne der Erfindung wird beispielsweise von der Firma "Trustonic" angeboten.

In der hier beschriebenen bevorzugten Ausführungsform läuft auf der TEE 40 ein sicheres Betriebssystem 42 (Secure OS). Demgegenüber enthält die normale Laufzeitumgebung NEE 30 ein herkömmliches Betriebssystem 32. Für den bevorzugten Fall, dass es sich bei der Computereinheit 20 um einen Tablet-Computer handelt, ist das in der normalen Laufzeitumgebung NEE 30 implementierte Betriebssystem 32 ein sogenanntes "Rieh OS" mit einem weitreichenden Funktionsumfang. Bei einem solchen Betriebssystem der Computereinheit 20 kann es sich z.B. um Android, Apple iOS, Windows o- der dergleichen handeln.

Die TEE 40 dient zur Ausführung von sicherheitskritischen Applikationen mit Hilfe der Computereinheit 20. Die gesicherte Laufzeitumgebung TEE 40 ist dabei isoliert von der normalen Laufzeitumgebung NEE 30 und verkapselt sicherheitskritische Applikationen, wodurch ein effizienter Schutz gegenüber Angriffen unbefugter Dritter erreicht wird. Beispielhaft läuft in der bevorzugten Ausführungsform in Figur 1 die sicherheitskritische Applikation 44 in der TEE 40. Im Unterschied hierzu laufen in der normalen Laufzeit- Umgebung NEE 30 herkömmliche Applikationen, wobei in Figur 1 beispielhaft eine Applikation 34 bezeichnet ist. Die Applikationen aus dem nicht- Vertrauens würdigen Bereich NEE 30, z.B. die Applikation 34, haben in der Regel keinen direkten Zugriff auf die Applikationen im vertrauenswürdigen Bereich TEE 40, z.B. die Applikation 44.

Figur 2 zeigt eine bevorzugte Software- Architektur, auf die eine auf dem Prozessor 24 laufende Applikation, beispielsweise die in Figur 2 gezeigte Applikation 70, aufbauen kann. Gemäß bevorzugter Ausführungsformen der Erfindung handelt es sich bei der Applikation 70 um eine Java- Applikation, die in einer auf der Computereinheit 20 implementierten Java- Laufzeitumgebung ("Java Runtime Environment") ausgeführt werden kann. Wie dies dem Fachmann bekannt ist, stellt die Java-Laufzeitumgebung eine Vielzahl von Java- APIs zur Verfügung, beispielsweise in Form der "Java Platform, Standard Edition", auf die die Applikation 70 zugreifen kann. Teil der "Java Platform, Standard Edition" ist die in Figur 2 dargestellte JCE 72 ("Java Cryptography Extension"), die der Applikation 70 die Durchführung kryptographischer Operationen, wie z.B. das Verschlüsseln oder Entschlüsseln von Daten mit einem kryptographischen Schlüssel, ermöglicht. Zur Durchführung der von der JCE 72 bereitgestellten Funktionen greift diese auf einen Kryptoprovider (auch als "Cryptographic Service Provider" bekannt) zurück. Im Wesentlichen besteht ein Kryptoprovider aus einer Vielzahl von Softwarepaketen, die konkrete Implementierungen der kryptographischen Funktionen und Algorithmen enthalten, die von der JCE 72 der Applikation 70 zur Verfügung gestellt werden. Ein standardmäßiger Kryptoprovider wird beispielsweise von der Firma "Oracle" zur Verfügung gestellt.

Erfindungsgemäß ist in der JCE 72 ein Provider-Selektionsmechanismus ("Provider-Selektor") 74 vorgesehen, der es erlaubt aus mehreren zur Verfügung stehenden Kryptoprovidern einen Kryptoprovider zur Durchführung einer von der Applikation angefragten Funktion der JCE 72 auszuwählen. Vorzugsweise ist der Provider-Selektionsmechanismus 74 der JCE 72 dabei derart ausgestaltet, dass, sofern ein TEE-Kryptoprovider, wie beispielsweise der TEE-Provider 78 in Figur 2, der auf Funktionalitäten in der TEE 40 und der NEE 30 zugreifen kann, zur Verfügung steht, dieser einem herkömmlichen Kryptoprovider, wie beispielsweise dem NEE-Provider in Figur 2, der lediglich auf Funktionalitäten in der NEE 30 zugreifen kann, bevorzugt wird Gemäß bevorzugter Ausführungsformen der Erfindung ist der Provider- Selektionsmechanismus 74 der JCE 72 somit derart ausgestaltet, dass jeweils der Kryptoprovider ausgewählt wird, der die höchste Sicherheitsstufe aufweist. Ein wesentlicher Unterschied zwischen einem TEE-Kryptoprovider, wie dem TEE-Provider 78 in Figur 2, und einem herkömmliche Kryptoprovider, wie dem NEE-Provider in Figur 2, im Sinne der vorliegenden Erfindung wird nachstehend anhand von Figur 3 am Beispiel einer kryptographischen Ope- ration mittels eines geheimzuhaltenden Schlüssels veranschaulicht, die von der JCE 72 der Applikation 70 zur Verfügung gestellt wird und in dem TEE- Provider 78 und dem NEE-Provider 76 unterschiedlich implementiert ist.

Auf der linken Seite von Figur 3 ist schematisch der Ablauf einer kryptographischen Operation mittels eines geheimzuhaltenden Schlüssels im RAM der Computereinheit 20 dargestellt, wie diese im NEE-Provider 76 implementiert ist. In diesem Fall liegen sowohl die in die Operation einfließenden Daten als auch der hierzu zu verwendende Schlüssel im RAM 26 der Computereinheit 20 vor. Ebenso sind jedwede Zwischenergebnisse der kryptographischen Operation sowie das Endergebnis der Operation im RAM 26 zumindest zeitweise vorhanden. Da der NEE-Provider 76 in der NEE 30 betrieben wird und der Schlüssel der kryptographischen Operation zumindest zeitweise im normalen, d.h. nicht extra gesicherten RAM 26 vorliegen, lässt sich der Schlüssel ohne großen Aufwand durch einen Angreifer abgreifen, beispielsweise indem der Zustand der Computereinheit 20 eingefroren wird und das normale RAM 26 ausgelesen wird.

Im Unterschied hierzu ist auf der rechten Seite von Figur 3 schematisch der Ablauf der kryptographischen Operation mittels eines geheimzuhaltenden Schlüssels im RAM der Computereinheit 20 dargestellt, wie diese im TEE- Provider 78 implementiert ist. In diesem Fall liegen lediglich die in die kryp- tographische Operation einfließenden Daten sowie das Ergebnis der kryptographischen Operation im normalen RAM 26 der Computereinheit 20 vor. Der geheimzuhaltende Schlüssel hingegen sowie Zwischenergebnisse der kryptographischen Operation, die möglicherweise auf den geheimzuhaltenden Schlüssel zurückschließen lassen, werden lediglich im sicheren RAM 28a der Computereinheit 20 verarbeitet, das von der TEE 40 verwaltet wird und auf das somit nicht aus der NEE 30 zugegriffen werden kann.

Gemäß bevorzugter Ausführungsformen der Erfindung ist vorgesehen, dass der Provider-Selektionsmechanismus 74 zusammen mit der JCE 72 als Teil einer Applikation bereitgestellt wird, die auf Funktionen der JCE zugreift. Stellt ein Entwickler eine solche erfindungsgemäß erweiterte Applikation in einer Online-Softwareplattform, z.B. im Google PlayStore, zum Download auf ihn nicht bekannte Computereinheiten bereit, wie verschiedenste Smart- phones, Tablet-Computer und dergleichen, so kann mittels des erfindungsgemäßen Provider-Selektionsmechanismus 74 jeweils der auf einer gegebenen Computereinheit 20 zur Verfügung stehende Kryptoprovider ausge- wählt werden, der die bestmögliche Sicherheit bietet.

Obgleich vorstehend bevorzugte Ausführungsformen im Rahmen der "Java Cryptographic Extension" beschrieben worden sind, wird der Fachmann erkennen, dass sich der erfindungsgemäße Providerselektionsmechanismus auch bei anderen Crypto-APIs vorteilhaft einsetzten lässt, wie beispielsweise der "Microsoft Cryptography API: Next Generation (CNG)".