The Mondex Case Study
Verifying a Java Implementation Peter H. Schmitt, Isabel Tonin
Institute for Theoretical Computer Science Department of Computer Science Universit¨ at Karlsruhe (TH) KeY Symposium, June, 2007
The Mondex Case Study
The Mondex Case Study Verifying a Java Implementation Peter H. - - PowerPoint PPT Presentation
The Mondex Case Study Verifying a Java Implementation Peter H. Schmitt, Isabel Tonin Institute for Theoretical Computer Science Department of Computer Science Universit at Karlsruhe (TH) KeY Symposium, June, 2007 The Mondex Case Study
Institute for Theoretical Computer Science Department of Computer Science Universit¨ at Karlsruhe (TH) KeY Symposium, June, 2007
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
◮ Smart card for electronic financial transactions
The Mondex Case Study
◮ Smart card for electronic financial transactions ◮ Issued by Natwest in 1996
The Mondex Case Study
◮ Smart card for electronic financial transactions ◮ Issued by Natwest in 1996 ◮ First product certified to ITSEC Level E6
The Mondex Case Study
◮ Smart card for electronic financial transactions ◮ Issued by Natwest in 1996 ◮ First product certified to ITSEC Level E6 ◮ Sanitised documentation publicly available
The Mondex Case Study
The Mondex Case Study
◮ Reference Implementation in Java Card
The Mondex Case Study
◮ Reference Implementation in Java Card ◮ Specification using Design by Contract paradigm
The Mondex Case Study
◮ Reference Implementation in Java Card ◮ Specification using Design by Contract paradigm ◮ Annotation using Java Modeling Language (JML)
The Mondex Case Study
◮ Reference Implementation in Java Card ◮ Specification using Design by Contract paradigm ◮ Annotation using Java Modeling Language (JML) ◮ Full verification using the KeY prover
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
req val ack StartFrom StartTo Req Val balance = balance −value balance = balance +value Ack
Endf Endt Epa Epr Idle Epv Idle
The Mondex Case Study
Response APDUs Command Vendor or Extensions Industry specific
Java Card Framework and APIs Card OS Java Card VM Runtime Environment Java Card Application Host APDUs
Command Response
Card Device Acceptance APDUs
Command Response
System(s) Back−End Application and Applet Applet Applet
Reader Side Card Side
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
The Mondex Case Study
◮ 63 pages of relevant Z specification
The Mondex Case Study
◮ 63 pages of relevant Z specification ◮ 327 lines of Java Card code
The Mondex Case Study
◮ 63 pages of relevant Z specification ◮ 327 lines of Java Card code
◮ 2 classes The Mondex Case Study
◮ 63 pages of relevant Z specification ◮ 327 lines of Java Card code
◮ 2 classes ◮ 19 methods The Mondex Case Study
◮ 63 pages of relevant Z specification ◮ 327 lines of Java Card code
◮ 2 classes ◮ 19 methods ◮ not counting API classes and methods The Mondex Case Study
◮ 63 pages of relevant Z specification ◮ 327 lines of Java Card code
◮ 2 classes ◮ 19 methods ◮ not counting API classes and methods
◮ 185 lines of JML specification
The Mondex Case Study
The Mondex Case Study
◮ one operation on the model level (e.g., exeception logging)
The Mondex Case Study
◮ one operation on the model level (e.g., exeception logging)
◮ deployment of the implemented system on different platforms
The Mondex Case Study
◮ one operation on the model level (e.g., exeception logging)
◮ deployment of the implemented system on different platforms
◮ replacing abstract data structures by programing language
The Mondex Case Study
◮ one operation on the model level (e.g., exeception logging)
◮ deployment of the implemented system on different platforms
◮ replacing abstract data structures by programing language
◮ issues that require a lot of verification effort at the model level
The Mondex Case Study
◮ one operation on the model level (e.g., exeception logging)
◮ deployment of the implemented system on different platforms
◮ replacing abstract data structures by programing language
◮ issues that require a lot of verification effort at the model level
◮ JML ( and other OO specification languages) lack support for
The Mondex Case Study
The Mondex Case Study
◮ Specification using Z,
The Mondex Case Study
◮ Specification using Z,
◮ Specification using ASM (Abstract State Machines),
The Mondex Case Study
◮ Specification using Z,
◮ Specification using ASM (Abstract State Machines),
◮ Specification using Alloy, verification with Alloy model finder
The Mondex Case Study
◮ Specification using Z,
◮ Specification using ASM (Abstract State Machines),
◮ Specification using Alloy, verification with Alloy model finder
◮ Specification using RSL (Raise Specification Language),
The Mondex Case Study