Vous êtes sur la page 1sur 9

Introduction

La carte puce est aujourd'hui un support trs rpandu pour stocker des
informations. Ces exemples les plus courants sont les cartes bancaires, les cartes
tlphoniques et les cartes SIM contenues dans les GSM. Il s'agit en fait d'une
simple carte de plastique dans laquelle est intgre une puce lectronique.
Il en existe diffrents types dont la smartcard et plus particulirement la
javacard.
Toutes les cartes puces possdent des ressources trs limites disponibles
pour lexcution dapplications. Aujourdhui, le moyen le plus sr pour assurer un
niveau de scurit satisfaisant reste la carte puce. Cependant, le
dveloppement dapplications pour carte puce a toujours t difficile et rserv
des experts.
Il a donc fallut dvelopper un langage qui soit la fois fiable, robuste, peu
gourmand en ressources et bien sr simple. Cest en 1996 que Sun Microsystems
propose une solution aprs des essais mens par Schlumberger : le JavaCard.
Le JavaCard est un systme de programmation de cartes puces bas sur une
version allge du langage Java.

Smart Card
Ce type de puce contient un processeur et de la mmoire, le tout dans un
microcontrleur encart. Cela permet la carte d'tre programme pour
effectuer un ou plusieurs types d'applications. Elle possde soit une interface
lectronique par contact, soit elle est sans contact est fonctionn par frquence
radio.

Architecture d'une smart card

La SmartCard contient tout d'abord :

une ROM qui contient le JCRE (Java Card Runtime Environment : La JCRE est
responsable de la gestion des ressources des cartes puces, des communications
rseaux, de l'excution ainsi que la scurit des Applets. La JCRE sert de systme
d'exploitation de la carte puce, celui-ci s'appuie sur la couche matrielle de carte puce
et du systme natif.) et le Systme d'exploitation, elle peut atteindre 2 4
Mega-octets.
Il y a aussi le processeur (CPU) qui est trs faible compar aux
processeurs de PC, il ne contient qu'un jeu d'instructions limit.
La RAM (efface chaque nouvelle utilisation de la carte) est elle aussi
peu leve, elle atteint les 8 kilo-octets. Elle stocke les donnes sensibles
(cls de cryptographie ...).
Enfin l'EEPROM qui stocke les applets executer sur la carte SmartCard.
Elle n'est pas efface et les donnes sont donc rutilisables dans le mme
tat chaque utilisation de la carte.

Une plateforme java-card

Est une carte puce


Avec une machine virtuelle java
Capable dexcuter des applications crites en java
Les plateformes java card sont normalises par Sun /oracle et java
card Forum

Java est le langage de programmation le plus utilis dans les applications


ddies la carte puce.

Avantages de la technologie Java Card

Dveloppement facile
Interoprabilit des applets (utilisation sur des plateformes diffrentes)
Scurit (scurit du langage, optimisation, etc.)
Multi-application
Dynamit
Ouverture et compatibilit (rajout et maj dapplications)
Capacit de post-personnalisation

Architecture de JavaCard.

Cration d'une applet JavaCard

Pour dvelopper une application JavaCard, il faut tout d'abord importer ses
bibliothques. Les bibliothques sous Java s'appellent des packages. Le
programmeur a la charge de dclarer les bibliothques aux quelles il
souhaite accder pour son programme. La bibliothque de base pour l'API
JavaCard est le package javacard.Framework. Ce Package contient les
classes indispensables la ralisation telles que :
APDU (Application Protocol Data Unit), qui est le format de
communication entre la carte et le monde extrieur.
Applet est un programme serveur de la java card, une applet est
slectionne par le terminal par un APDU de slection, cette slection est
faite en fonction de lAID.
AID (Application Identifier), c'est un identifiant qui est associ une
Applet.
Les Exceptions, qui permettent d'envoyer des Status Word d'erreur.
L'interface ISO-7816, qui contient les Status Word de base et les positions
des lments d'une APDU. Il existe aussi un package scurit
(javacard.security) qui contient les fonctions de chiffrement usuelles (MD5,

SHA, DES ...) et de signature. Lorsque le JCRE reoit une APDU de slection,
il cherche activer une applet correspondante. Une applet tant une
instance de la classe javacard.Framework.Applet, toute applet devra
tendre de cette classe. Ce mcanisme d'extension permet aussi d'utiliser
les mthodes de la classe Applet ou bien de les surcharger. La surcharge
d'une mthode consiste rcrire le code de celle-ci, afin de modifier son
comportement. Les mthodes implmenter obligatoirement sont pour ne
pas avoir le comportement par dfaut de la classe Applet :
install()
process()
select()
deselect()
--- La fonction install() est appele par le JCRE pour crer et enregistrer
(par la mthode register()) une instance d'applet auprs de celui-ci. Les
AID servent d'identificateur pour le JCRE.
Chaque AID d'une applet prsent sur la carte doit tre unique et
correspondre la norme ISO-7816. Une applet est slectionnable
seulement aprs avoir t enregistre par le JCRE.
---La fonction process() est la fonction principale de l'applet, c'est celle qui
va collecter toutes les APDU entrantes. Elle envoie ces APDU vers les
mthodes qui correspondent l'octet d'instruction (INS). Le principal
travail d'un programmeur se situe dans la gestion du dialogue entre la
carte et le lecteur. C'est dans cette mthode qu'il doit tre gr.
---La fonction select() est appele par le JCRE pour rendre active et
initialiser une instance d'applet. Comme dfini dans la norme ISO-7816,
toute Applet doit rester slectionnable. Il ne faut pas bloquer la slection.
---La fonction deselect() est appele par le JCRE pour dsactiver l'applet
en-cours et faire les possibles oprations ncessaires avant la dslection
(Ex : Clture d'une transaction).

Installation du package
Apres avoir tlcharger le package utilis :

a) Dcompresser le projet c:\JavaCard\JSR268TK.rar dans le mme


rpertoire.
b) Lancer Eclipse.
c) Importer le projet java C:\JavaCard\JSR268TK\JSR268TK\JSR268TK-2
en suivant le cheminement suivant en partant du menu File :

Cliquer alors sur le bouton Browse pour chercher le projet importer.

Ci-dessous un schma qui dcrit dune manire gnrale les diffrentes parties
de lenvironnement de dveloppement Java Card. Par la suite, nous dtaillerons
chaque partie ainsi que sa configuration afin que nous puissions dvelopper une
application Java Card (ct client et ct carte).

Vous aimerez peut-être aussi