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:52
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