1 / 14

JAVACARD

JAVACARD. Dan Bismuth Tutrices : Marie-Lise Flottes - Joanne Acland. 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)

jude
Télécharger la présentation

JAVACARD

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  9. API JAVACARD Card Exécutive Applet 1 Applet 2 Standard class libraries (API) Virtual machine (Interpréteur) Native méthode 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 CLA INS P1 P2 Lc Data Le Data Sw1 Sw2 JCRE Applet 1 AID1 Applet 2 AID2 Réponse Commande CADLecteur de carte JavaCard java.framework.APDU

  11. Exemple APDU CLA INS P1 P2 Lc Data Le Data Sw1 Sw2 Création d’un compte avec l’applet Wallet ? 0x800xB80x00 0x00 0x11 0x0a 0xa0 0x00 0x00 0x00 0x62 0x00 0x01 0x0d 0x06 0x01 0x05 0x01 0x02 0x03 0x04 0x050x7F; • 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. 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; Procédure installationExemple : Wallet Cahier des charges • 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 .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.

More Related