The invention relates to a method for providing a security-critical software application on a computer unit. In particular the invention relates to a method for providing of a security-critical Java application on a mobile end device.
Mobile end devices, for example in the form of smartphones or tablet computers, are increasingly being used to carry out digital transactions, for example the cashless payment at an NFC terminal or the purchase of goods or a service from an online mail order company. When carrying out of such a digital transaction, as a rule a software application implemented on the mobile end device (briefly called “app”) interacts with a terminal or server. Here, frequently a cryptographic algorithm, e.g. an encryption algorithm, is part of the software application implemented on the mobile end device, said application accessing security-critical data, e.g. PINs, passwords, keys etc. In the past, security-critical data have been deposited as a rule on a stand-alone security element of the mobile end device, frequently in the form of a SIM card removable from the mobile end device, to protect these from an attack by unauthorized person.
An approach, which can be used advantageously in particular when carrying out digital transactions with a mobile end device which has no stand-alone security element for securely storing security-critical data, is based on the idea of protecting security-critical software applications and data contained therein from an attacker by means of software measures. One of these software measures consists of making a software application more resistant against attacks by obfuscating or concealing the program code of the software application so that an attacker who has access to this program code can do practically nothing with it. As an example, the Java Code Obfuscator “ProGuard” shall be mentioned here, which is obtainable in the WWW at the address HTTP://developer.android.com/tools/help/proguard.html.
It is the object of the present invention to provide a method for providing a security-critical software application for a computer unit, preferably a mobile end device.
The hereinabove object is achieved according to 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 providing a software application on a computer unit is made available. The method comprises the following steps: carrying out an AOT compilation of the software application being present in the form of byte code to generate assembler code from the byte code of the software application; obfuscating the assembler code of the software application; posting the obfuscated assembler code of the software application to a software distribution platform; and downloading the obfuscated assembler code to the computer unit.
Preferably the software application is a Java application or a form of an interpreted language executed or interpreted in a virtual machine.
According to preferred embodiments of the invention the software distribution platform is the Google Play Store.
Preferably the computer unit is operated with the operating system Android (version 4.4 or higher).
According to preferred embodiments of the invention, different assembler codes are posted to the software distribution platform for different processor architectures.
According to a second aspect of the invention, a computer unit is provided on which a software application has been provided by a method according to the first aspect of the invention.
According to preferred embodiments of the invention the computer unit is a mobile end device.
As the skilled person will recognize, the hereinabove described preferred embodiments can be advantageously implemented both within the context of the first aspect of the invention, i.e. within the context of the method for providing a software application on a computer unit, and within the context of the second aspect of the invention, i.e. within the context of a such a computer unit.
Further features, advantages and objects of the invention will emerge from the following detailed description of several embodiment examples and embodiment alternatives. Reference is made to the drawings, in which there are shown:
The mobile end device 20 has a chip 22 with a central processing unit (CPU), for example in the form of a microprocessor 24. As is known, the primary functions of the processor 24 are executing arithmetic and logic functions and reading and writing data elements, as is being defined by a software application running on the processor 24. For clarity's sake, a preferred hardware and software architecture of the processor 24 is shown once again schematically in detail in
The processor 24 is in communication connection with a memory unit 26 which preferably comprises a volatile working memory (RAM), for example for receiving the program code of a software application to be executed by the processor 24. Preferably the memory unit 26 further comprises a non-volatile, preferably re-writable memory, for example to receive in the unenergized state of the mobile end device the program code of a software applications to be executed by the processor 24. Preferably the non-volatile, rewritable memory is a flash memory (flash EEPROM). This may be, for example, a flash memory with a NAND or a NOR architecture. The memory unit 26 can of course also comprise a read only memory (ROM).
As is shown schematically in
After the program code of the Java application 34 has been obfuscated as good as possible in step SDT2, the obfuscated program code of the Java application 34 is posted in step SDT3 of
In step SDT4 of
According to the invention, the Java application 34 now present in assembler code is obfuscated in step S3 of
As is indicated in
After the assembler code of the Java application 34 has been obfuscated in step S3 of
In step S5 of
As already described hereinabove, the skilled person will recognize that due to the differences between Java byte code and assembler code, advantageously considerably more effective obfuscating measures can be used with the inventive method according to
Number | Date | Country | Kind |
---|---|---|---|
102014019090.0 | Dec 2014 | DE | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2015/002551 | 12/17/2015 | WO | 00 |