Homepage>Forschung? > Tool-assisted Specification and Verification of Java Card Programs

Tool-assisted Specification and Verification of Java Card Programs

This page contains information about the project "Tool-assisted Specification and Verification of Java Card Programs", VerifiCard for short.

Project Website

The official project website is http://www.verificard.org.

Members

Abstract

General Aims

The next generation of smart cards will be used for services where security is a key issue: authenticated access to computer networks, e-commerce, high value wire-less services etc. Reliability and trust are necessary for large scale adoption and success of smart cards. The application programs (applets) for these cards will be written in , a simplified version of Java, the popular programming language. Correct functioning of these applets must be guaranteed, and potentially malicious applets must be identified. Therefore, new validation techniques are needed, based on well-defined models for Java Card, using special tools (theorem proving and model checking) for mathematically proving correctness, going well beyond testing. Correctness will be established for crucial components of the Java Card platform (bytecode verifier, virtual machine, API) based on the open Java Card standard, and for individual applets (provided by the industrial partners in case studies).

Aims of AG Softech

Development of the Java Card Interface Specification Language JCISL

JCISL will be a declarative interface specification language based on pre- and postconditions (capturing also exceptions), invariants, and constructs for frame properties and encapsulation aspects. The semantics of the specification language will be given in terms of an axiomatic semantics of Java Card, which is also developed in this project. JCISL will be developed in cooperation with the University of Nijmegen and the Institut Nationale de Recherche en Informatique et en Automatique. In our group, we will start by investigating specification primitives for frame properties and invariants. Moreover, we plan to develop a specification technique for alias properties based on our Universe Type System.

Development of an Interface Specification of the Java Card API

The interface specification of the Java Card API from Sun will be based on the existing informal specification and the reference implementation. It will be given in the form of annotated Java Card files using the interface specification language JCISL. The API specification will be used to prove properties of Java Card applets and to verify the reference implementation. Furthermore, it serves as a case study for JCISL. The development of the API specification is joint work with the University of Nijmegen. In the first project phase, our group's particular focus is on providing abstract models for the API classes and on specifying alias properties of the API.

Development of an Interactive Tool for Applet Verification

We will extend our Jive system, which has been developed in the Lopex project, to Java Card. Jive supports program-centered verification and provides a graphical user interface tailored to the specific needs and intuition of software developers. To integrate the tool with other techniques and proof tools used in VerifiCard, an interface to semantics-based program proofs in PVS and Isabelle/HOL will be implemented with the help of the Technical University of Munich.

Researchers in AG Softech

Funding

The project is funded by the Information Society Technologies (IST) Programme of the European Union under contract number ST-2000-26328-VERIFICARD.

Completion Status

The project is completed.