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

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

Embed Size (px)

Citation preview

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

1

JAVACARD

Dan Bismuth

Tutrices : Marie-Lise Flottes - Joanne Acland

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

2 Sujet

É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.

Développement des connaissances systèmes sur le langage JavaCard pour une application carte à puce.

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

3SOMMAIRE

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

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

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

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

5

JAV

AC

AR

D Native méthode

Virtual machine (Interpréteur)

CardExécutive

Standard class libraries(API)

Applet 1 Applet 2JCRE

Java/JavaCard

Architecture d’une JavaCard ?

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

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, …

JAV

AC

AR

D

Native méthode

Virtual machine (Interpréteur)

CardExécutive

Standard class libraries (API)

Applet 1 Applet 2

Le JCRE peut être vu comme OS de la carte.

JCRE

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

7 JCRE

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

Listes des méthodes indispensables

JAV

AC

AR

D

Native méthode

Virtual machine (Interpréteur)

CardExécutive

Standard class libraries (API)

Applet 1 Applet 2

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

8 JCVM

La virtual machine est totalement dépendante de la plateforme puisqu’elle permet l’interprétation par le processeur des bytecodes.

JAV

AC

AR

D

Native méthode

Virtual machine (Interpréteur)

CardExécutive

Standard class libraries (API)

Applet 1 Applet 2

Architecture d’une JCVM ?

Compilateur

CAP

Interpréteur

.classJCVM

Off-Card On-Card

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

9 API

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.

JAV

AC

AR

D

Native méthode

Virtual machine (Interpréteur)

CardExécutive

Standard class libraries (API)

Applet 1 Applet 2

Détails des différents packages importés.

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

10 Protocole de Communication

Applet 2AID2

JCRE

Applet 1AID1

CLA INS P1 P2 Lc Data Le Data Sw1 Sw2

Commande Réponse

CADLecteur de carte

JavaCardjava.framework.APDU

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

11 Exemple APDU

CLA INS P1 P2 Lc Data Le Data Sw1 Sw2

Création d’un compte avec l’applet 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 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

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

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, 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)

Stockage des informations

Ces informations sont d’ordre général, car le lien avec le hardware est dépendant de la JCVM.

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

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 l’applet : CLA = 0xB0

.jca .java

Procédure installation Exemple : Wallet

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

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.