Formal specification of the JavaCard API in JML: the APDU class

This paper reports on an eort to increase the reliability of JavaCard-based smart cards by means of formal specication and verication of JavaCard source code. As a rst step, formal interface specications, written in the specication language JML, have been developed for all the classes that make up the JavaCard API. These specications are \lightweight" in the sense that they are incomplete and specify only some aspects of the API, but they already provide a useful addition to the existing informal API specications. Moreover, the fact that these specication are written in a formal language makes them amenable to tool support, for verication purposes. As an illustration, the JML specications of the APDU (Application Protocol Data Unit) class in the JavaCard API are discussed in detail.

[1]  Gary T. Leavens,et al.  JML: notations and tools supporting detailed design in Java , 2000 .

[2]  Bart Jacobs,et al.  A case study in class library verification: Java’s vector class , 1999, International Journal on Software Tools for Technology Transfer.

[3]  Bart Jacobs,et al.  Specification of the JavaCard API in JML , 2000, CARDIS.

[4]  Natarajan Shankar,et al.  PVS: Combining Specification, Proof Checking, and Model Checking , 1996, FMCAD.

[5]  Bart Jacobs,et al.  Java Program Verification via a Hoare Logic with Abrupt Termination , 2000, FASE.

[6]  Bart Jacobs,et al.  A Type-Theoretic Memory Model for Verification of Sequential Java Programs , 1999, WADT.

[7]  Z. Chen Java Card Technology for Smart Cards: Architecture and Programmer''s Guide. The Java Series. Addis , 2000 .

[8]  Bart Jacobs,et al.  Formal Specification and Verification of JavaCard's Application Identifier Class , 2000, Java Card Workshop.

[9]  K. Rustan M. Leino,et al.  Checking Java Programs via Guarded Commands , 1999, ECOOP Workshops.

[10]  Krzysztof R. Apt,et al.  Ten Years of Hoare's Logic: A Survey—Part I , 1981, TOPL.

[11]  Bart Jacobs,et al.  JML (poster session): notations and tools supporting detailed design in Java , 2000, OOPSLA '00.

[12]  Lawrence Charles Paulson,et al.  Isabelle: A Generic Theorem Prover , 1994 .

[13]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[14]  Albert L. Baker,et al.  JML: A Notation for Detailed Design , 1999, Behavioral Specifications of Businesses and Systems.