La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 JAVACARD Dan Bismuth Tutrices : Marie-Lise Flottes - Joanne Acland.

Présentations similaires


Présentation au sujet: "1 JAVACARD Dan Bismuth Tutrices : Marie-Lise Flottes - Joanne Acland."— Transcription de la présentation:

1 1 JAVACARD Dan Bismuth Tutrices : Marie-Lise Flottes - Joanne Acland

2 2 Sujet Étude du cas concret de lapplet « Porte monnaie électronique ». (Implémentation et Analyse) Principe dinstallation et dexécution dune applet. Mécanismes dinteractions logiciel – matériel. Allocations des ressources mémoires. Développement des connaissances systèmes sur le langage JavaCard pour une application carte à puce.

3 3 SOMMAIRE Architecture et langage JavaCard JCRE JCVM API Le protocole de communication Interactions avec le Hardware Procédure dinstallation Conclusion

4 4 Langage de haut niveau orienté objet Write Once, Run Anywhere Plate-forme multi applicatives Partage de données entre applications Sécurité des données Pourquoi le JavaCard dans les cartes à puces ? Java/JavaCard

5 5 JAVACARD Native méthode Virtual machine (Interpréteur) Card Exécutive Standard class libraries (API) Applet 1Applet 2 JCRE Java/JavaCard Architecture dune JavaCard ?

6 6 Regroupe la JVM, API et les méthodes natives Firewall protection: autorisation et isolation des applets Gestion des objets persistants et temporaires Écriture atomique Décrit les méthodes indispensables: Install, Register, … JAVACARD Native méthode Virtual machine (Interpréteur ) Card Exécutive Standard class libraries (API ) Applet 1Applet 2 Le JCRE peut être vu comme OS de la carte. JCRE

7 7 Install(): créer une instance de la sous classe Applet Register(): Enregistre linstance de lapplet avec le JCRE et assigne un AID Select(): Activation de lapplet par le JCRE Deselect(): Désactivation de lapplet Process(): Traite les commandes APDUs Listes des méthodes indispensables JAVACARD Native méthode Virtual machine (Interpréteur ) Card Exécutive Standard class libraries (API ) Applet 1Applet 2

8 8 JCVM La virtual machine est totalement dépendante de la plateforme puisquelle permet linterprétation par le processeur des bytecodes. JAVACARD Native méthode Virtual machine (Interpréteur ) Card Exécutive Standard class libraries (API ) Applet 1Applet 2 Architecture dune JCVM ? Compilateur CAP Interpréteur.class JCVM Off-CardOn-Card

9 9 API Java.lang : contient la classe fondamentale à la création dapplet Object et les classes dexceptions. Javacard.framework : contient les classes nécessaires au développement dapplets (ex: Pin, Aid, APDU …) Javacard.security : contient toutes les classes de sécurité. Javacardx.crypto: contient les classes de cryptographie. JAVACARD Native méthode Virtual machine (Interpréteur ) Card Exécutive Standard class libraries (API ) Applet 1Applet 2 Détails des différents packages importés.

10 10 Protocole de Communication Applet 2 AID2 JCRE Applet 1 AID1 CLAINSP1P2LcDataLeDataSw1Sw2 Commande Réponse CAD Lecteur de carte JavaCard java.framework.APDU

11 11 Exemple APDU CLAINSP1P2LcDataLeDataSw1Sw2 Création dun compte avec lapplet Wallet ? 0x80 0xB8 0x00 0x00 0x11 0x0a 0xa0 0x00 0x00 0x00 0x62 0x00 0x01 0x0d 0x06 0x01 0x05 0x01 0x02 0x03 0x04 0x05 0x7F; 0x0a : Taille en byte de lAID de lapplet Wallet 0xa0 0x00 0x00 0x00 0x62 0x00 0x01 0x0d 0x06 0x01: AID Wallet 0x05 : Taille en byte du code PIN 0x01 0x02 0x03 0x04 0x05 : code PIN

12 12 Interaction avec le hardware Tous les packages API (classes), la virtual machine et les applets sont en ROM Toutes les données de « personnalisations » sont en EEPROM (solde, PIN …). Toutes les données temporaires (variables de calculs, dexécutions, …) sont en RAM. Chargement dapplets et de données possible en EEPROM (très rare car le temps daccès à lEEPROM est très long) Stockage des informations Ces informations sont dordre général, car le lien avec le hardware est dépendant de la JCVM.

13 13 Configuration Wallet – SOLDE_MAX = 0x01F4 – TRANSACTION_MAX = 0x64 – NB_ESSAIS = 0x05 – TAILLE_MAX_PIN = 0x08 Status Word – SW_CODE_ERRONE=0x9110 – SW_VERIFICATION_PIN_REQUISE=0x9120 – SW_MONTANT_TRANSACTION_INVALIDE=0x9130 – SW_MONTANT_TRANSACTION_DEPASSE=0x9140 – SW_SOLDE_NEGATIF=0x9150; Cahier des charges Fonction : – VERIFIE_PIN = 0x20 – CREDIT = 0x30 – DEBIT = 0x40 – SOLDE = 0x50 Configuration applet – AID package : 0xa0 0x00 0x00 0x00 0x62 0x00 0x01 0x0d 0x06 – AID applet : 0xa0 0x00 0x00 0x00 0x62 0x00 0x01 0x0d 0x06 0x01 – Classe de lapplet : CLA = 0xB0.jca.java Procédure installation Exemple : Wallet

14 14 Conclusion Mise à jour des packages possibles (Ajout de nouvelles fonctionnalités après fabrication de la carte) ? Implémentation des bytecodes au niveau architecture (chemin de donnée du bytecode «invokevirtual»). Fonctionnement de la lecture et écriture des instructions et des données pour pouvoir développer une plateforme optimale. Bilan - Quelques domaines à approfondir Pour une probabilité de continuation, toutes les informations concernant le projet sont accessibles sur le CD.


Télécharger ppt "1 JAVACARD Dan Bismuth Tutrices : Marie-Lise Flottes - Joanne Acland."

Présentations similaires


Annonces Google