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

  • Authors:
  • Michael Roland;Josef Langer;René Mayrhofer

  • Affiliations:
  • NFC Research Lab Hagenberg University of Applied Sciences Upper Austria Softwarepark 11, 4232 Hagenberg, Austria;NFC Research Lab Hagenberg, University of Applied Sciences Upper Austria, Softwarepark 11, 4232 Hagenberg, Austria;Josef Ressel Center u'smile, University of Applied Sciences Upper Austria, Softwarepark 11, 4232 Hagenberg, Austria

  • Venue:
  • Proceedings of International Conference on Advances in Mobile Computing & Multimedia
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.