Managing the life-cycle of Java Card applets in other Java virtual machines
M. Roland, J. Langer, R. Mayrhofer - Managing the life-cycle of Java Card applets in other Java virtual machines - International Journal of Pervasive Computing and Communications (IJPCC), Vol. 10, No. 3, 2014, pp. 291-312
Purpose: Today, for developers, it is difficult to get access to an NFC secure element in current smart phones. Moreover, the security constraints of smartcards make in-circuit debugging of applications impractical. Therefore, it would be useful to have an environment that emulates a secure element for rapid prototyping and debugging. This paper addresses the design, implementation, performance and limitations of such an environment.
Design/methodology/approach: Our approach to such an environment is the emulation of Java Card applets on top of non-Java Card virtual machines (e.g. Android Dalvik VM) as this would facilitate the use of existing debugging tools. As the operation principle of the Java Card VM is based on persistent memory technology, the VM and applications running on top of it have a significantly different life-cycle compared to other Java VMs. We evaluate these differences and their impact on Java VM-based Java Card emulation. We compare possible strategies to overcome the problems caused by these differences, propose a possible solution and create a prototypical implementation in order to verify the practical feasibility of such an emulation environment.
Findings: While we found that the Java Card inbuilt persistent memory management is not available on other Java VMs, we present a strategy to model this persistence mechanism on other VMs in order to build a complete Java Card run-time environment on top of a non-Java Card VM. Our analysis of the performance degradation in a prototypical implementation caused by additional effort put into maintaining persistent application state revealed that the implementation of such an emulation environment is practically feasible.
Originality/value: This paper addresses the problem of emulating a complete Java Card run-time environment on top of non-Java Card virtual machines which could open and significantly ease the development of NFC secure element applications.