Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code...
-
Upload
sophia-swim -
Category
Documents
-
view
218 -
download
0
Transcript of Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code...
![Page 1: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/1.jpg)
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Automata-Based Programming Technology Extension for
Generation of JML Annotated Java Card Code
Andrey Klebanov, CTD, SPb SU ITMO
supervised by Anatoly Shalyto, Ph. D, prof. CTD, SPb SU ITMO
![Page 2: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/2.jpg)
2
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Outline
Smart CardsAutomata-based programming technologyJava modelling language (JML)Approach descriptionCase studyOpen questions
![Page 3: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/3.jpg)
3
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Outline
Smart CardsAutomata-based programming technologyJava modelling language (JML)Approach descriptionCase studyOpen questions
![Page 4: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/4.jpg)
4
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Smart Cards
«Stupid» cards – cards with just magnetic stripe;
Smarts cards – chip and memory are embedded: Mobile and secure credit card size computers; Very limited recourses – 1-4Kb RAM, 48-64Kb
NVM (ROM) + 8-32Kb EEPROM; Main domains of use are secure storage of data,
business transactions, authentication, ... Vendor specific, difficult to develop applications.
![Page 5: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/5.jpg)
5
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Java Card
Java platform for smart cards; Provides all the benefits of Java and also
Allows to abstract away from low-level features of different cards;
Applet isolation mechanism; Post-issuance applet downloading, ...
Java Card API 2.2.2 is a superset of Java API subset;
Java Card 3.0 will be discussed in «Open questions» section.
![Page 6: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/6.jpg)
6
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Formal methods for JC
Several reasons to attract formal methods researchers:
Java Card domain of use, industry support;Complexity of updating;Relatively small, but real-world applications.
![Page 7: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/7.jpg)
7
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Outline
Smart CardsAutomata-based programming technologyJava modelling language (JML)Approach descriptionCase studyOpen questions
![Page 8: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/8.jpg)
8
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Automata-based programming overview
Introduced by A. Shalyto in 1991;
Sort of synchronous programming;
Programs are treated as systems of automated controlled objects;
Each system consists of control system and controlled objects;
Control system - system of co-operating automata.
Xi – input action;
Zi – output action;
E – event;
Controlsystem
ControlledobjectE Z X
![Page 9: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/9.jpg)
9
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Automata-based programming benefits
Formally describes application logic and behaviour; Perfect solution for reliable application development
for reactive and embedded systems; Defines two types of diagrams for application
description – connectivity schema and transition graphs;
Fully supported by the UniMod tool Closes the gap between model and implementation via
Java code generation; Finite state machine validation.
![Page 10: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/10.jpg)
10
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Automata-based programming for Java Card
Half-duplex communication channel, master-slave model;
Event driven interaction Host application – event
provider; Smart card – controlled
object. Standard structure of
applet, logic is incapsulated in one method.
«Java Card applet is a state machine.»
Wikipedia
Host application Java CardRuntime
Environment
(JCRE)
Applet
Command APDU
Command APDU
Responce APDU
Responce APDU
Smart cardCAD
Passivestate
Activestate
install Commsndhandling(process)
select
deselect
![Page 11: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/11.jpg)
11
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Outline
Smart CardsAutomata-based programming technologyJava modelling language (JML)Approach descriptionCase studyOpen questions
![Page 12: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/12.jpg)
12
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
JML
JML is a behavioural interface specification language;
JML is based on design by contract, but extends it greatly;
Designed to be used by Java programmers;Tailored to Java;Doesn’t require programs to be OO;A lot of tools are developed to support JML.
![Page 13: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/13.jpg)
13
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
JML (cont.)
Preconditions (requires), postconditions (ensures) and invariants (invariant);
\old(var) – variable var value before method execution;
Logical constructions (ex. implication) and constaraint consruction – constraints variable's value change in time;
pure and assignable keywords.
![Page 14: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/14.jpg)
14
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
JML (cont.)
private fields could be declared as spec_public;
Quantifiers – \forall, \exists;\min, \sum expressions;Allows to describe behaviour in exceptional
situations; And much more!
![Page 15: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/15.jpg)
15
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Outline
Smart CardsAutomata-based programming technologyJava modelling language (JML)Approach descriptionCase studyOpen questions
![Page 16: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/16.jpg)
16
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Approach description
Problem: Java Card code should be trustworthy and bug-free.
Solution: automata-based programming + JML!
Sub-problems to be solved: Extend automata-based programming code
generation technologies; Convert state machine model to JML annotations; Explore different verification tools designed to
work with JML.
![Page 17: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/17.jpg)
17
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Approach overview
![Page 18: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/18.jpg)
18
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Annotated code generation stage
Model's XML description
Templates
Convertor application +Apache Velocity
Java Card code + JML
Java Card code + JML
![Page 19: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/19.jpg)
19
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Verification stage
jmlc Fully automatic; Full language coverage; Doesn’t prove errors
absence. ESC/Java2
Fully automatic; Not sound, not complete; Good for common errors.
KeY, Loop, Jack, ... Powerful; Interactive.
Model checking (SPIN, Bogor)
Source code verification (JML tools)
Byte codeverification (BML tools)
Tasks
Type checking
Static checking
Verification
Decidability level
Source code verification on
conformance to the model(JML tools)
![Page 20: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/20.jpg)
20
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Outline
Smart CardsAutomata-based programming technologyJava modelling language (JML)Approach descriptionCase studyOpen questions
![Page 21: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/21.jpg)
21
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Case study – description
![Page 22: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/22.jpg)
22
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Case study – several results
Convinient notation for commands vs. byte arrays; /*@ invariant
(state == APPLET_INITIALIZATION) ||(state == VERIFY_PIN) ||(state == DO_SOMETHING) || (state == SIM_CARD_IS_LOCKED);
@*/ Precondition for the on enter to state SIM card is
locked – //@ requires x1 > 3; (if x1 has no side effects).
![Page 23: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/23.jpg)
23
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Case study – several results (cont.)
Transitions between states:/*@ constraint
((state == APPLET_INITIALIZATION) ==> (\old(state) == APPLET_INITIALIZATION)) &&((state == VERIFY_PIN) ==> ((\old(state) == VERIFY_PIN) || (\old(state) == APPLET_INITIALIZATION))) &&((state == DO_SOMETHING) ==> ((\old(state) == VERIFY_PIN) || (\old(state) == DO_SOMETHING))) && ((state == SIM_CARDS_IS_LOCKED) ==> ((\old(state) == VERIFY_PIN) || (\old(state) == SIM_CARDS_IS_LOCKED))) && ((\old(state) == APPLET_INITIALIZATION) ==> ((state == VERIFY_PIN) || (state == APPLET_INITIALIZATION))) && ((\old(state) == VERIFY_PIN) ==> ((state == VERIFY_PIN) || (state == DO_SOMETHING) ||(state == SIM_CARDS_IS_LOCKED))) &&((\old(state) == DO_SOMETHING) ==> (state == DO_SOMETHING)) && ((\old(state) == SIM_CARDS_IS_LOCKED) ==> (state == SIM_CARDS_IS_LOCKED));
@*/
![Page 24: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/24.jpg)
24
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Outline
Smart CardsAutomata-based programming technologyJava modelling language (JML)Approach descriptionCase studyOpen questions
![Page 25: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/25.jpg)
25
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Open questions
Java Card 3.0 Great new opportunities
close to «big» Java!.. But possible problems for
formal methods.
Java ME Midlets are running on
constraint devices... But much more powerful
then smart cards.
APDUApplet Container
Applets
Classic API
HTTPWeb Container
Servlets
Connected API
JavaCard APIs
![Page 26: Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.](https://reader035.fdocuments.net/reader035/viewer/2022062619/551755f15503460e6e8b45b4/html5/thumbnails/26.jpg)
26
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Thank you!
Thank you!