Exposé Carte à puce

publicité
ETUDE ET RÉALISATION D’UNE CARTE
ÉTUDIANT EMBARQUÉE SUR UNE CARTE À
PUCE MULTISERVICES
EXPOSÉ DU MÉMOIRE POUR L'OBTENTION DU:
DIPLÔME D'ETUDES SUPÉRIEURES APPROFONDIES (DESA) :
ALGÈBRE, THÉORIE DES NOMBRES ET APPLICATIONS AUX
SCIENCES DE L’INFORMATION (ATNASI)
PRÉSENTÉ PAR:
BOURICHE KHALID
INGÉNIEUR D’ETAT
FST-Fès le: 18/10/2008
Plan de l’exposé
I.
LA TECHNOLOGIE JAVA CARD.
1.
2.
3.
4.
HISTORIQUE
LA CARTE À PUCE
ARCHITECTURE.
NORMALISATION
II. PRÉSENTATION DU PROJET.
III. TRAVAIL DEMANDÉ.
2
I. La Technologie Java Card.
3
1. Historique
4
2. La carte à puce
la carte à puce est composée de:
1. Microprocesseur utilisant une (RAM) allant de
128 Octets à 8 Ko.
2. Une mémoire morte (ROM) allant de 16 à 196 Ko
3. Une mémoire applicative (EEPROM) de 2 à 64
Ko.
5
3. Architecture
6
3. Architecture (JCVM)
7
4. La normalisation
Les principales normes d’une carte à puce:
ISO 7816-1: Définit les dimensions de la
carte et les contraintes que doit supporter :
(chaleur, humidité…).
8
4. La normalisation (suite)
ISO 7816-2: Normalisation de la puce :
- seule interface de communication avec
l’extérieur
- surface = 25mm²
- épaisseur = 0,3 mm²
- composée de 8 contacts électriques
9
4. La normalisation (suite)
ISO 7816-3:Caractéristiques électriques et
protocole de transmission:
10
4. La normalisation (suite)
• ISO 7816-4: Définition des échanges
entre un terminal et la carte à puce:
structure des messages (APDU):
Commande APDU
Entête obligatoire
CLA
INS
Corps optionnel
P1
P2
LC
Champ
Donnée
de
Le
Réponse APDU
Corps optionnel Portion obligatoire
Champ de
Donnée
SW1
SW2
11
4.La normalisation (suite)
• ISO 7816-15: Définition des Application
Cryptographique :
Ex: en RSA, obligation d’importer les Framework ci-après
dans l’entête de l’applet:
javacard.security.CryptoException;
javacard.security.KeyBuilder;
javacard.security.RSAPrivateKey;
javacardx.crypto.Cipher;
NB: Supporte les clés RSA de 512 à 2048 Octets.
12
II. PRÉSENTATION DU PROJET.
Le projet consiste à la réalisation d’une carte à puce
étudiant multiservice servant de support aux usages suivants :
L’identification personnelle de l’étudiant
La monétique, en partenariat avec les banques.
Le transport, en partenariat avec les organismes de transports
Le contrôle des droits d’accès (Ex: bibliothèque)
Le contrôle et la sécurité physique d’accès à des locaux.
D’où
la conclusion de partenariats multiples
13
III. TRAVAIL DEMANDÉ.
Le travail demandé consiste donc à:
1. Installer du kit de développement sur le SE Windows.
2. Créer des Applets Java Card de chacun des partenaires.
3. Concevoir un protocole de sécurité de la carte ( RSA …)
4. Démontrer sur une application test
5. Identifier les limitations actuelles de la carte.
14
1.
Installation du kit de développement sur le SE Windows.
Le Kit de développement utilisé se compose de :
Java Card Development Kit 2.2.2
L’environnement de développement Eclipse version 3.2.2
Le plug-in d’intégration Eclipse-JCDE version 0.1
J2SE Development Kit 5.0 Update 15 version 1.5.0.150
Le système Windows XP, SP2.
15
2.
Création des Applets Java Card
La création d’un Applet Java Card doit suivre les étapes
suivantes:
1. La spécification des fonctions de l’applet.
2. L’attribution des identifiants d’application (AIDs) à l’applet.
3. Élaboration de la structure des classes de l’applet.
4. Définition de l’interface entre l’Applet et l’application hôte
(terminal).
16
2.1) La spécification des fonctions de l’Applet
Cette étape consiste à :
Définir les informations à mutualiser
Déterminer, d’une façon concise, la description de chaque
Applet . (ladite description doit être automatisable)
Se servir éventuellement d’autres outils (Ex: UML )
17
2.2) Attribution des AID à l’Applet et au package
Cette étape consiste à donner les AID comme suit:
18
2.3) Élaboration de la structure des classes de l’Applet
import javacard.framework.*
...
public class MyApplet extends Applet {
// Definitions des codes d’instructions des APDU
...
MyApplet() {...} // Constructeur
// cycle de vie des methodes
install() {...}
select() {...}
deselect() {...}
process() {...} //Traitement effectif
// Méthodes privées ...
}
19
2.4) Définition de l’interface entre l’Applet le terminal.
Cette étape consiste à:
Implémenter le code du programme qui appellera les
Applets de la carte.
Ex: Java, C++ ..
NB: Delphi par exemple, ne sert pas d’interface.
20
3- Conception d’un protocole de sécurité de la carte
La sécurité de notre carte est assurée par plusieurs
mécanismes:
Le code PIN ( pour les droits d’accès aux ressources de
la carte).
Le Firewall du JCRE (utilisation du « SIO » si nécessaire).
Et enfin l’utilisation d’un crypto système pour des tâches
spécifiques (RSA, AES, DES)
21
4- Démonstration sur une application test
En fait, il s’agit d’une simulation:
Etapes:
Installation des variables d’environnement
utilisation de « CREF » au lieu de « JCWDE »
• CREF : Simulateur avec conservation de l’état.
•JCWDE : Simulateur Sans conservation de l’état.
Lancement du programme « Client » (Java)
22
FIN
MERCI POUR VOTRE ATTENTION
23
Téléchargement