The invention relates to a method for the secure operation of a computer unit as well as such a computer unit.
Increasingly, computer units, for example in the form of a tablet computer or a smart phone, are employed for carrying out digital transactions, such as for example the purchase of a good or a service from an online mail order company or the cashless payment at an NFC terminal. When such a digital transaction is carried out, usually a software application (briefly referred to as “app”) implemented on the computer unit interacts with a terminal or server. Frequently, it is a cryptographic algorithm, for example an encryption algorithm, part of the software application implemented on the computer unit, that accesses security-critical data, for example PINs, passwords, keys, etc.
A relatively new approach for protecting security-critical data on a computer unit is based on the idea of supplying a secure runtime environment in the form of a secure and/or hardened operating system on the computer unit in addition to a conventional operating system of the computer unit. Such a secure runtime environment is known to the person skilled in the art also under the term “firmware-based trusted execution environment” or briefly “TEE”. A firmware-based trusted execution environment differs from an ordinary TEE in that the NEE and TEE are run on the same CPU.
The object of the present invention is to supply an improved method for operating a computer unit with a secure runtime environment, as well as such a computer unit.
The above object is achieved in accordance with the present invention by the respective subject matter of the independent claims. Preferred embodiments of the invention are defined in the dependent claims.
According to a first aspect of the invention a method for operating a computer unit is supplied, wherein on the computer unit an application can be executed which can access the functions of a crypto API, wherein the functions of the crypto API can be supplied by at least one crypto implementation on the computer unit. Therein the method includes the following steps of: executing the application on the computer unit; checking what crypto implementations are available on the computer unit; and selecting one of the available crypto implementations, preferably by means of a provider selection mechanism, as that crypto implementation which supplies the functions of the crypto API.
Preferably in the step of selecting one of the available crypto implementations as that crypto implementation which supplies the functions of the crypto API, the most secure one of the available crypto implementations is selected.
According to preferred embodiments of the invention, the method includes, before the step of executing the application on the computer unit, the further step of downloading the application from an online software platform.
Preferably at least one of the crypto implementations is implemented in a secure runtime environment of the computer unit.
According to preferred embodiments of the invention the application is a Java application, the crypto API is a JCE and the at least one crypto implementation is at least one crypto provider.
According to a second aspect of the invention, a computer unit is supplied on which an application can be executed which can access the functions of a crypto API, wherein the functions of the crypto API can be supplied by at least one crypto implementation on the computer unit. Therein the computer unit is configured to: check, upon execution of the application on the computer unit, what crypto implementations are available on the computer unit; and select one of the available crypto implementations, preferably by means of a provider selection mechanism, as that crypto implementation which supplies the functions of the crypto API.
Preferably, the computer unit is configured to select the most secure crypto implementation as that crypto implementation which supplies the functions of the crypto API.
According to preferred embodiments of the invention, the computer unit is configured to download the application from an online software platform.
Preferably at least one of the crypto implementations is implemented in a secure runtime environment of the computer unit.
According to preferred embodiments of the invention, the application is a Java application, the crypto API is a JCE and the at least one crypto implementation is at least one crypto provider.
Further features, advantages and objects of the invention are indicated in the following detailed description of several exemplary embodiments and alternative embodiments. Reference is made to the figures, wherein there is shown:
The computer unit 20 has a chip 22 with a central processing unit (CPU), for example in the form of a microprocessor 24. It is known that among the primary tasks of the processor 24 there are the execution of arithmetic and logic functions and the reading and writing of data elements, as defined in the form of machine commands by a software application running on the processor 24. For the sake of clarity, a preferred architecture of the processor 24 in
The processor 24 is in a communication connection with a memory unit 26, which preferably includes a volatile working memory (RAM) 28, for example for accommodating the machine commands of a software application to be executed by the processor 24. As will be described in detail below in connection with the
Preferably, the memory unit 26 further includes a non-volatile, preferably rewritable memory, for example to accommodate in the unpowered state of the computer unit 20 the machine commands of a software application to be executed by the processor 24. Preferably the non-volatile, rewritable memory is a flash memory (flash EEPROM). It can be a flash memory with a NAND or a NOR architecture for example. Of course, the memory unit 26 can also include a read only memory (ROM).
As represented schematically in
In the preferred embodiment described here, a secure operating system (secure OS) runs on the TEE 40. In contrast, the normal runtime environment NEE 30 contains a conventional operating system 32.
In the preferred case that the computer unit 20 is a tablet computer, the operating system 32 implemented in the normal runtime environment NEE 30 is a so-called “rich OS” with a wide range of functions. Such an operating system of the computer unit 20 can be, for example, Android, Apple iOS, Windows or the like.
The TEE 40 serves to execute security-critical applications with the aid of the computer unit 20. Therein the secure runtime environment TEE 40 is isolated from the normal runtime environment NEE 30 and encapsulates security-critical applications, whereby an efficient protection is achieved against unauthorized third-party attacks. Exemplarily, the security-critical application 44 runs in the TEE 40 in the preferred embodiment in
According to the invention, in the JCE 72 a provider selection mechanism (“provider selector”) 74 is provided which allows selecting a crypto provider among several available crypto providers for carrying out a function of the JCE 72 requested by the application. Preferably, the provider selection mechanism 74 of the JCE is 72 therein is configured such that, if a TEE crypto provider is available, such as for example the TEE provider 78 in
A major difference between a TEE crypto provider, such as the TEE provider 78 in
On the left side of
In contrast hereto, on the right side of
According to preferred embodiments of the invention it is provided that the provider selection mechanism 74 is supplied together with the JCE 72 as part of an application that accesses functions of the JCE. When a developer supplies such an application expanded according to the invention on an online software platform, for example in the Google PlayStore, for download to computer units unknown to him, such as diverse smart phones, tablet computers and the like, the provider selection mechanism 74 according to the invention permits selecting that crypto provider available on a given computer unit 20 which offers the best possible security.
Although the foregoing preferred embodiments have been described in the context of the “Java Cryptographic Extension”, the person skilled in the art will appreciate that the provider selection mechanism according to the invention can be employed advantageously also in connection with different crypto APIs, such as for example the “Microsoft Cryptography API: Next Generation (CNG)”.
Number | Date | Country | Kind |
---|---|---|---|
102014018892.2 | Dec 2014 | DE | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2015/002514 | 12/14/2015 | WO | 00 |