Simulation d - PowerPoint PPT Presentation

About This Presentation
Title:

Simulation d

Description:

Simulation d Applications Java Card Carine Courbis INRIA Sophia-Antipolis, Dyade/Bull, ENS de Lyon et INSA de Lyon Carte puce multi-applications + Java Card ... – PowerPoint PPT presentation

Number of Views:51
Avg rating:3.0/5.0
Slides: 15
Provided by: Mart2275
Category:

less

Transcript and Presenter's Notes

Title: Simulation d


1
Simulation dApplications Java CardCarine
Courbis INRIA Sophia-Antipolis, Dyade/Bull, ENS
de Lyon et INSA de Lyon
Carte Ă  puce multi-applications Java Card
Nveaux DĂ©veloppeurs ? besoin de nouveaux outils
pour mettre au point le comportement des Applets
  • Quelques dĂ©finitions
  • Etat de lart
  • Construction de notre environnement de simulation
  • Discussion/Travaux futurs
  • Conclusion

2
Quelques DĂ©finitions
  • APDU (Application Protocole Data Unit) ISO 7816-3
  • Format standardisĂ© des donnĂ©es Ă©changĂ©es entre le
    lecteur de carte et la carte
  • CAD (Card Acceptance Device lecteur de carte)
  • RĂ´le Traduire choix de lutilisateur en APDU de
    commande pour la carte et attendre l APDU de
    réponse pour lafficher décodée
  • JCRE (Java Card Runtime Environment) machine
    virtuelle classes
  • AID (Application Identifier)
  • Applet ? Application
  • (UnitĂ© de sĂ©lection, contexte, fonctionnalitĂ© et
    de sécurité sur une carte Java Card)

APDU de Commande
APDU de RĂ©ponse
Obligatoire
cla
ins
p1
p2
lc
data
le
data
sw1
sw2
Falcultatif
3
Etat de lart Travaux formels
  • Preuve de la sĂ»retĂ© des types en Java
  • 2 approches
  • source
  • ? sous-ens. Java sĂ©quentiels ? prouver
    préservation des types Drossopoulou, Eisenbach,
    Syme
  • Empilement de ? sous-ens Java pour sĂ©m. dynamique
    Börger, Schultze
  • byte code
  • Transitions dĂ©tats dun sous-ens. des
    instructions de la JVM Qian dans la mémoire qd.
    exécution ? prouver bon fonctionnement
  • Systèmes Ă  Ă©tats finis pour vĂ©rif. de byte code
    Java Card Posegga, Vogt
  • ProcĂ©dure de vĂ©rif. de la sĂ»retĂ© du byte-code sur
    un sous-ens. Rose

4
Etat de lart Outils adaptés à Java Card
  • Le checker Java Card de Sun
  • Outils commerciaux
  • GemXpresso Rapid Applet Development de Gemplus
  • Cyberflex 2.0 Multi8K de Schlumberger
  • Odyssey Lab de Bull/CP8
  • SpĂ©cifiques Java Card uniquement sur le byte code
  • notre environnement basĂ© sur une sĂ©mantique
    formelle du langage source

5
La SĂ©mantique Naturelle de Java
  • Large sous-ensemble, spĂ©cifiĂ© par M. Russo
  • HĂ©ritage, caractĂ©ristiques objets ? sĂ©m. Big-Step
  • Multithreading ? sĂ©m. Small-Step
  • 400 règles Typol exĂ©cutables dans système
    Centaur
  • Centaur outil de gĂ©nĂ©ration d environnement de
    langage
  • syntaxe en Metal
  • règles d affichage en Ppml
  • règles sĂ©mantiques en Typol

6
DĂ©finition Syntaxique de Java Card
  • Suppressions
  • char, long, double, float, synchronized,
    volatile, transient
  • Ajout
  • structure de rĂ©sultats liste des APDUs transmis
  • Modification
  • Tableaux Ă  1 seule dimension
  • Possible d avoir int i ou int i
  • mais aussi int i
  • un vĂ©rificateur statique

7
Exemple de vérification statique Tableau
unidimensionnel
  • set checkParam is
  • judgement - javacard -gt Bool
  • ArrayArrayParamRule //erreur 2 dim
  • - parameter(_,arrayof(T),array(P))-gt false()
  • do message("javacard", "checker",
    "errorDimArray", "Error", subject, "")
  • ArrayParamRule // 1 dim
  • - parameter(_,arrayof(T),Param) -gt false()
  • provided diff(Param, array(_))
  • SimpleParamRule
  • - parameter(_, TypParam, _) -gt true()
  • provided diff(TypParam, arrayof(_))
  • end checkParam

Programme incorrect Règles Typol du checker
testant les paramètres
8
Notre simulateur dapplications Java Card
Présentation
Notre Modèle
  • Acteurs (User, CAD, Carte)
  • Architecture
  • Acteurs Threads
  • Comme dans rĂ©alitĂ©
  • Gestion evts asynchrones
  • Applets Threads
  • Futur multithreading
  • SĂ©paration contextes ? meilleure visualisation

User
CAD
APDU
APDU
PurseFr
JCRE
Applets
Smart Card
APDU de Commande
APDU de RĂ©ponse
Obligatoire
Non implémenté dans notre modèle
cla
ins
p1
p2
lc
data
le
data
sw1
sw2
Falcultatif
9
Notre simulateur dapplications Java Card
Fonctionnement
PurseFr JCRE CAD User
Hypothèse aucune applet navait été
sélectionnée auparavant.
Maître/esclave Déroulement séquentiel ? un seul
Thread actif à la fois Modèle implémenté en Java
(?500 lignes)
?
?
accepte
?
?
?
?
?
?
?
t
? sendAction(PurseFr.AID, PurseFr.WITHDRAW,
100) ? sendActionToCard() APDU1 (Cla Ins
SELECT, P1 PurseFr.AID) ? select() ? APDU2
(Sw1 OK) ? sendActionToCard() APDU3 (Cla
PROCESS, Ins PurseFr.WITHDRAW, Data100) ?
process(APDU3) ? APDU4 (Data 900, Sw1 OK) ?
Affichage du compte-rendu de l action
10
Modifications sémantiques
  • Modification de lentrelacement des threads
  • sĂ©m small-step ? avance jusquĂ  mort ou
    suspension du thread
  • Not_suspended_thread
  • send_current(ObjL1, OThId1)
  • exec_activity(ObjL1, ClVarL1, OThId1, ObjId1 -
    Clr gt ObjL1_1, ClVarL1_1, ThStatus1_1)
  • ----------------
  • ObjL1, ClVarL1, OThId1, ObjId1 - ThStatus1, Clr
    -gt ObjL1_1, ClVarL1_1, ThStatus1_1
  • provided not_eq(ThStatus1,
    suspended(_))
  • Construction de la structure contenant les APDUs
  • DisplayCADApdu
  • find_Apdu_attribute(identifier "commandApdu" -
    ObjL1, AttrL1 -gt AttrL2)
  • ----------------
  • (ObjL1, OThId1, object(_, identifier "CAD",
    AttrL1, _, _, _, _), clr(_, _, _, _,
    inst_lInst1.InstL1))
  • provided not_eq(Inst1,
    i_block(inst_l, _))
  • do
  • update_apduL(apdu(OThId1,
    AttrL2) -gt ApduL)
  • emit_tree("apdu", ApduL)

11
RĂ©sultats
12
Discussion/Travaux Futurs (1/2)
  • Le modèle
  • Gestion des APIs dauthentification du PIN
    (Personal Identifier Number)
  • A complĂ©ter (tableaux de bytes, nb hexa, APIs)
  • Gestion des evts. asynchrones (coupure courant,
    retrait de carte)
  • La sĂ©mantique
  • De Java
  • exceptions, tableau, nb hexa,
  • op (dĂ©calages droite ou gauche, and, or, xor bit
    Ă  bit), packages

13
Discussion/Travaux Futurs (2/2)
  • La semantique (suite)
  • De Java Card
  • SpĂ©cifier comportement JCRE, CAD, Classe Applet
    en Typol ?
  • ?taille prog ?performances gestion
    transparente des threads
  • SpĂ©cifier les classes et APIs de Java Card (51
    classes dont 18 dexception)
  • Liste dobjets transients (moment de maj),
    transactions atomiques, partage des objets
  • Performances
  • Prog assez gros (?500 lignes) exĂ©cutĂ© en 7 mn sur
    un DEC PWS 500
  • Interface
  • Interface interactive - Pb avoir un CAD
    générique
  • FĂŞ pour visualiser comportement JCRE et Obj File

14
Conclusion
  • Durant ce stage
  • Etude langage, standards liĂ©s aux cartes Ă  puce
  • ModĂ©lisation de tous les acteurs
  • Modification sĂ©m. formelle de Java
  • Objectifs
  • ComplĂ©ter description formelle du langage
  • Proposer de nouveaux outils
  • Etude et Formalisation de propriĂ©tĂ©s liĂ©es Ă  la
    sécurité
  • Disposer dun env. complet de dĂ©v. et
    vérification
Write a Comment
User Comments (0)
About PowerShow.com