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

Dan Bismuth Tutrices : Marie-Lise Flottes - Joanne Acland

Présentations similaires


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

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

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

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

4 Java/JavaCard Pourquoi le JavaCard dans les cartes à puces ?
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  

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

6 Virtual machine (Interpréteur)
JCRE JAVACARD Native méthode Virtual machine (Interpréteur) Card Exécutive Standard class libraries (API) Applet 1 Applet 2 Le JCRE peut être vu comme OS de la carte. 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, …

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

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

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

10 Protocole de Communication
Réponse Commande CLA INS P1 P2 Lc Data Le Data Sw1 Sw2 Applet 2 AID2 JCRE Applet 1 AID1 CAD Lecteur de carte JavaCard java.framework.APDU

11 Exemple APDU Création d’un compte avec l’applet Wallet ? CLA INS P1 P2 Lc Data Le Data Sw1 Sw2 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 l’AID de l’applet 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 Interaction avec le hardware
Stockage des informations 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, d’exécutions, …) sont en RAM. Chargement d’applets et de données possible en EEPROM (très rare car le temps d’accès à l’EEPROM est très long) Ces informations sont d’ordre général, car le lien avec le hardware est dépendant de la JCVM.

13 Procédure installation Exemple : Wallet
Cahier des charges Configuration Wallet SOLDE_MAX = 0x01F4 TRANSACTION_MAX = 0x64 NB_ESSAIS = 0x05 TAILLE_MAX_PIN = 0x08 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 l’applet : CLA = 0xB0 Fonction : VERIFIE_PIN = 0x20 CREDIT = 0x30 DEBIT = 0x40 SOLDE = 0x50 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; .jca .java

14 Conclusion Bilan - Quelques domaines à approfondir
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. Pour une probabilité de continuation, toutes les informations concernant le projet sont accessibles sur le CD.


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

Présentations similaires


Annonces Google