JAVACARD

  • Upload
    jude

  • View
    24

  • Download
    1

Embed Size (px)

DESCRIPTION

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) - PowerPoint PPT Presentation

Citation preview

  • JAVACARDDan BismuthTutrices : Marie-Lise Flottes - Joanne Acland

  • Sujettude du cas concret de lapplet Porte monnaie lectronique. (Implmentation et Analyse)

    Principe dinstallation et dexcution dune applet.

    Mcanismes dinteractions logiciel matriel.

    Allocations des ressources mmoires.Dveloppement des connaissances systmes sur le langage JavaCard pour une application carte puce.

  • SOMMAIREArchitecture et langage JavaCardJCREJCVMAPILe protocole de communicationInteractions avec le HardwareProcdure dinstallationConclusion

  • Java/JavaCardLangage de haut niveau orient objet

    Write Once, Run Anywhere

    Plate-forme multi applicatives

    Partage de donnes entre applications

    Scurit des donnesPourquoi le JavaCard dans les cartes puces ?

  • JAVACARDNative mthodeVirtual machine (Interprteur)CardExcutiveStandard class libraries(API)Applet 1Applet 2JCREJava/JavaCardArchitecture dune JavaCard ?

  • Regroupe la JVM, API et les mthodes natives

    Firewall protection: autorisation et isolation des applets

    Gestion des objets persistants et temporaires

    criture atomique

    Dcrit les mthodes indispensables: Install, Register, Le JCRE peut tre vu comme OS de la carte.JCRE

  • JCREInstall(): crer 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(): Dsactivation de lapplet

    Process(): Traite les commandes APDUsListes des mthodes indispensables

  • JCVMLa virtual machine est totalement dpendante de la plateforme puisquelle permet linterprtation par le processeur des bytecodes.Architecture dune JCVM ?CompilateurCAPInterprteurOff-CardOn-Card

  • APIJava.lang : contient la classe fondamentale la cration dapplet Object et les classes dexceptions.

    Javacard.framework : contient les classes ncessaires au dveloppement dapplets (ex: Pin, Aid, APDU )

    Javacard.security : contient toutes les classes de scurit.

    Javacardx.crypto: contient les classes de cryptographie.Dtails des diffrents packages imports.

  • Protocole de CommunicationCommandeRponseCADLecteur de carteJavaCardjava.framework.APDU

  • Exemple APDU0x80 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 Wallet0xa0 0x00 0x00 0x00 0x62 0x00 0x01 0x0d 0x06 0x01: AID Wallet0x05 : Taille en byte du code PIN0x01 0x02 0x03 0x04 0x05 : code PINCration dun compte avec lapplet Wallet ?

  • Interaction avec le hardwareTous les packages API (classes), la virtual machine et les applets sont en ROM

    Toutes les donnes de personnalisations sont en EEPROM (solde, PIN ).

    Toutes les donnes temporaires (variables de calculs, dexcutions, ) sont en RAM.

    Chargement dapplets et de donnes possible en EEPROM (trs rare car le temps daccs lEEPROM est trs long)

    Stockage des informationsCes informations sont dordre gnral, car le lien avec le hardware est dpendant de la JCVM.

  • Procdure installation Exemple : WalletConfiguration WalletSOLDE_MAX = 0x01F4TRANSACTION_MAX = 0x64NB_ESSAIS = 0x05TAILLE_MAX_PIN = 0x08Status WordSW_CODE_ERRONE=0x9110SW_VERIFICATION_PIN_REQUISE=0x9120SW_MONTANT_TRANSACTION_INVALIDE=0x9130SW_MONTANT_TRANSACTION_DEPASSE=0x9140SW_SOLDE_NEGATIF=0x9150;Cahier des chargesFonction : VERIFIE_PIN = 0x20 CREDIT = 0x30DEBIT = 0x40SOLDE = 0x50Configuration appletAID package : 0xa0 0x00 0x00 0x00 0x62 0x00 0x01 0x0d 0x06AID applet : 0xa0 0x00 0x00 0x00 0x62 0x00 0x01 0x0d 0x06 0x01 Classe de lapplet : CLA = 0xB0.jca.java

  • ConclusionMise jour des packages possibles (Ajout de nouvelles fonctionnalits aprs fabrication de la carte) ?

    Implmentation des bytecodes au niveau architecture (chemin de donne du bytecode invokevirtual).

    Fonctionnement de la lecture et criture des instructions et des donnes pour pouvoir dvelopper une plateforme optimale.Bilan - Quelques domaines approfondirPour une probabilit de continuation, toutes les informations concernant le projet sont accessibles sur le CD.