(Ab)using foreign VMs: Running Java Card Applets in non-Java Card Virtual Machines


M. Roland, J. Langer, R. Mayrhofer - (Ab)using foreign VMs: Running Java Card Applets in non-Java Card Virtual Machines - Proceedings of the 11th International Conference on Advances in Mobile Computing and Multimedia (MoMM2013), Vienna, Österreich, 2013, pp. 286-292


Creating Java Card applications for Near Field Communication's card emulation mode requires access to a secure smartcard chip (the secure element). Today, even for development purposes, it is difficult to get access to the secure element in most current smart phones. Therefore, it would be useful to have an environment that emulates a secure element for rapid prototyping and debugging. Our approach to such an environment is emulation of Java Card applets on top of non-Java Card virtual machines (e.g. Android's Dalvik VM). However, providing a Java Card run-time environment on top of another Java virtual machine faces one big problem: The Java Card virtual machine's operation principle is based on persistent memory technology. As a result, the VM and the applications that run on top of it have a significantly different life-cycle compared to other Java VMs. Based on specific scenarios for secure element emulators for the Android platform, we evaluate these differences and their impact on Java VM-based Java Card emulation. Further, we propose possible solutions to the problems that arise from these differences in the life-cycles.