Malicious Code on Java Card Smartcards: Attacks and Countermeasures

  • Wojciech Mostowski
  • Erik Poll
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5189)


When it comes to security, an interesting difference between Java Card and regular Java is the absence of an on-card bytecode verifier on most Java Cards. In principle this opens up the possibility of malicious, ill-typed code as an avenue of attack, though the Java Card platform offers some protection against this, notably by code signing.

This paper gives an extensive overview of vulnerabilities and possible runtime countermeasures against ill-typed code, and describes results of experiments with attacking actual Java Cards currently on the market with malicious code.


Fault Injection Malicious Code Runtime Check Transaction Mechanism Array Bound 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Beckert, B., Mostowski, W.: A program logic for handling Java Card’s transaction mechanism. In: Pezzé, M. (ed.) FASE 2003. LNCS, vol. 2621, pp. 246–260. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  2. 2.
    Dietl, W., Müller, P., Poetzsch-Heffter, A.: A Type System for Checking Applet Isolation in Java Card. In: Barthe, G., Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (eds.) CASSIS 2004. LNCS, vol. 3362, pp. 129–150. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  3. 3.
    Govindavajhala, S., Appel, A.W.: Using memory errors to attack a virtual machine. In: IEEE Symposium on Security and Privacy, pp. 154–165 (2003)Google Scholar
  4. 4.
    Hubbers, E., Mostowski, W., Poll, E.: Tearing Java Cards. In: Proceedings, e-Smart 2006, Sophia-Antipolis, France, September 20–22 (2006)Google Scholar
  5. 5.
    Marché, C., Rousset, N.: Verification of Java Card applets behavior with respect to transactions and card tears. In: Proc. Software Engineering and Formal Methods (SEFM), Pune, India. IEEE Computer Society Press, Los Alamitos (2006)Google Scholar
  6. 6.
    McGraw, G., Felten, E.W.: Securing Java. Wiley, Chichester (1999), Google Scholar
  7. 7.
    Montgomery, M., Krishna, K.: Secure object sharing in Java Card. In: Proceedings of the USENIX Workshop on Smartcard Technology (Smartcard 1999), Chicago, Illinois, USA, May 10–11 (1999)Google Scholar
  8. 8.
    Mostowski, W., Poll, E.: Testing the Java Card Applet Firewall. Technical Report ICIS–R07029, Radboud University Nijmegen (December 2007),
  9. 9.
    Sun Microsystems, Inc. Java Card 2.2.2 Runtime Environment Specification (March 2006),
  10. 10.
    Vermoen, D.: Reverse engineering of Java Card applets using power analysis. Technical report, TU Delft1 (2006),
  11. 11.
    Witteman, M.: Java Card security. Information Security Bulletin 8, 291–298 (2003)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2008

Authors and Affiliations

  • Wojciech Mostowski
    • 1
  • Erik Poll
    • 1
  1. 1.Digital Security (DS) group, Department of Computing ScienceRadboud University NijmegenThe Netherlands

Personalised recommendations