Static Program Analysis for Java Card Applets

  • Authors:
  • Vasilios Almaliotis;Alexandros Loizidis;Panagiotis Katsaros;Panagiotis Louridas;Diomidis Spinellis

  • Affiliations:
  • Department of Informatics, Aristotle University of Thessaloniki, Thessaloniki, Greece 54124;Department of Informatics, Aristotle University of Thessaloniki, Thessaloniki, Greece 54124;Department of Informatics, Aristotle University of Thessaloniki, Thessaloniki, Greece 54124;Department of Management Science and Technology, Athens University of Economics and Business, Athens, Greece 104 34;Department of Management Science and Technology, Athens University of Economics and Business, Athens, Greece 104 34

  • Venue:
  • CARDIS '08 Proceedings of the 8th IFIP WG 8.8/11.2 international conference on Smart Card Research and Advanced Applications
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Java Card API provides a framework of classes and interfaces that hides the details of the underlying smart card interface, thus relieving developers from going through the swamps of microcontroller programming. This allows application developers to concentrate most of their effort on the details of application, assuming proper use of the Java Card API calls regarding (i) the correctness of the methods' invocation targets and their argumentsand (ii) temporal safety, i.e. the requirement that certain method calls have to be used in certain orders. Several characteristics of the Java Card applets and their multiple-entry-point program structure make it possible for a potentially unhandled exception to reach the invoked entry point. This contingency opens a possibility to leave the applet in an unpredictable state that is potentially dangerous for the application's security. Our work introduces automatic static program analysis as a means for the early detection of misused and therefore dangerous API calls. The shown analyses have been implemented within the FindBugs bug detector, an open source framework that applies static analysis functions on the applet bytecode.