St - PowerPoint PPT Presentation

1 / 55
About This Presentation
Title:

St

Description:

Cartes puce et Java - Sommaire. St phane AMATO / Julien CHABANON ... Le code applicatif est fig en ROM. Pas de protocole standard de communication entre le ... – PowerPoint PPT presentation

Number of Views:35
Avg rating:3.0/5.0
Slides: 56
Provided by: stphan94
Category:
Tags: applicatif

less

Transcript and Presenter's Notes

Title: St


1
Carte à puce et Java
  • Stéphane AMATO
  • Julien CHABANON
  • Novembre 2001

2
Sommaire
  • Historique
  • Partie I Carte à puce
  • Partie II JavaCard
  • Conclusion

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Sommaire
3
Historique (1/6)
Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Historique
4
Historique (2/6)
  • 1974 - Roland Moreno crée la carte à puce à
    circuit intégré

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Historique
5
Historique (3/6)
  • 1980 - La carte à puce comme un nouveau moyen de
    paiement
  • 1983 - La carte à puce dans le secteur sanitaire
    et social

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Historique
6
Historique (4/6)
  • 1984 - La télécarte
  • 1986 2 millions de cartes vendues par an
  • 1991 6 millions de cartes vendues par mois

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Historique
7
Historique (5/6)
  • Novembre 1996 - Schlumberger simplifie la
    programmation des SmartCards ? Spécification
    JavaCard 1.0
  • Février 1997 - Bull, Sun et Gemplus se joignent
    à Schlumberger pour fonder le JavaCard forum
  • Novembre 1997 - Sun présente les spécifications
    de JavaCard 2.0

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Historique
8
Historique (6/6)
  • Mars 1999 - La version 2.1 des spécifications de
    la JavaCard sort
  • The JavaCard 2.1 API Specification
  • The JavaCard 2.1 Runtime Environment
    Specification
  • The JavaCard 2.1 Virtual Machine Specification

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Historique
9
Carte à puce
  • Les différents types de cartes
  • Le système informatique
  • La normalisation
  • Cycle de vie dune carte

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - JavaCard
10
Types de cartes (1/3)
  • Carte à mémoire
  • Mémoire simple (sans processeur) accessible en
    lecture sans protection, mais lécriture peut
    être rendue impossible
  • Programmation impossible
  • Carte porte-jetons pour applications de
    prépaiement (carte téléphonique)

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Type de carte
11
Types de cartes (2/3)
  • Carte à logique câblée
  • Mémoire accessible via des circuits
    préprogrammés et figés pour une application
    particulière
  • Carte sécuritaire pouvant effectuer des
    calculs figés (accès à un local )

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Type de carte
12
Types de cartes (3/3)
  • Carte à puce ou SmartCard
  • Microcontrôleur encarté (processeur mémoires)
  • Carte programmable pouvant effectuer tout
    type de traitements

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Type de carte
13
Carte à puce
  • Les différents types de cartes
  • Le système informatique
  • La normalisation
  • Cycle de vie dune carte

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - JavaCard
14
Système informatique (1/2)
  • Processeur, mémoire, interface de communications
  • Un véritable ordinateur mais
  • Communiquant environ 300 fois moins vite
    (de 3,58 à 4,92 MHz)
  • Possédant 200 000 fois moins de mémoire
    (64 Ko de ROM)

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Système informatique
15
Système informatique (2/2)
  • Une application carte une carte un
    terminal
  • Traitement conjoint des données présentes sur la
    carte ET sur le terminal
  • ? Communication entre la carte et le terminal

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Système informatique
16
Carte à puce
  • Les différents types de cartes
  • Le système informatique
  • La normalisation
  • Cycle de vie dune carte

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - JavaCard
17
Normalisation (1/7)
  • ISO 7816
  • Format carte de crédit
  • Définition des contraintes
    physiques supportables (chaleur, humidité...)

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Normalisation
18
Normalisation (2/7)
  • La puce
  • Seule interface de communication avec
    lextérieur
  • Lecteur de cartes CAD (Card Acceptance Device)
  • Surface ? 25 mm²
  • Épaisseur ? 0,3 mm
  • Composée de 8 contacts métalliques

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Normalisation
19
Normalisation (3/7)
  • Protocoles de communication
  • ISO 7816-3
  • Protocoles de communication asynchrones et
    half-duplex

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Normalisation
20
Normalisation (4/7)
  • Format de commandes
  • Protocole APDU Application Protocol Data Unit
  • Communication entre le lecteur de cartes (CAD)
    et la SmartCard
  • Message de commande du lecteur vers la carte ou
    ...
  • ... message de réponse de la carte au lecteur

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Normalisation
21
Normalisation (5/7)
  • Commandes applicatives
  • ISO 7816-4 Manipulation des données au travers
    dune structure hiérarchique de fichiers
  • ISO 7816-5 Identification des applications
  • ISO 7816-6 Éléments de données référencées
    (accès direct)
  • ISO 1816-7 Manipulation des données au travers
    dun schéma relationnel
  • ETSI GSM 11.11 Commandes des cartes S.I.M.
  • E.M.V. Commandes de paiement
  • ...

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Normalisation
22
Normalisation (6/7)
  • Le microcontrôleur (1/2)
  • Technologie M.A.M. 
  • Substrat de silicium (0,35 à 0,7 microns)
    contenant microprocesseur bus mémoires
  • Mémoire non volatile reprogrammable
  • Sécurité 
  • Composant inaccessible (seule la puce lest)
  • Détecteurs de conditions anormales

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Normalisation
23
Normalisation (7/7)
  • Le microcontrôleur (2/2)
  • Types de microprocesseurs utilisés 
  • 8, 16 ou 32 bits coprocesseur cryptographique
  • Hitachi, Motorola, NEC, SGS-Thomson, Siemens...
  • Types de mémoires 
  • ROM  jusquà 64 Ko (mémoire non volatile en
    lecture seule)
  • RAM  jusqu'à 2 Ko (mémoire volatile)
  • Flash EEPROM  jusqu'à 32 Ko (mémoire non
    volatile réinscriptible)

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Normalisation
24
Carte à puce
  • Les différents types de cartes
  • Le système informatique
  • La normalisation
  • Cycle de vie dune carte

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - JavaCard
25
Cycle de vie (1/2)
  • Fabrication
  • ROM  inscription dun programme définissant les
    fonctions de base de la carte
  • Initialisation
  • EEPROM (Electrical Erasable Programmable ROM)
    inscription des données communes à lapplication
  • Personnalisation
  • EEPROM  inscription des données personnelles de
    lutilisateur

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Cycle de vie
26
Cycle de vie (2/2)
  • Utilisation
  • Envoi dAPDU de commandes à la carte via le
    lecteur (CAD)
  • Traitement des commandes effectué par le masque
    de la carte Sinon renvoi dun code derreur
  • Mort
  • Invalidation logique (volontaire ou lors dune
    tentative dintrusion), saturation mémoire, vol,
    perte, bris ...

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Cycle de vie
27
Résumé
  • La carte à puce est un véritable serveur
    embarqué
  • Elle gère des données personnelles et les
    sécurise
  • Cependant 
  • Le code applicatif est figé en ROM
  • Pas de protocole standard de communication entre
    le lecteur et son hôte
  • Communications de bas niveaux (APDUs) ?
    nécessite des compétences spécifiques

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Résumé
28
JavaCard
  • Présentation
  • Architecture
  • Les outils commerciaux adaptés à la JavaCard
  • Quelques applications

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - JavaCard
29
Présentation (1/3)
  • JavaCard un sous-ensemble du langage Java
  • Une applet est une application JavaCard
  • Possibilité de charger dynamiquement une
    nouvelle applet
  • JavaCard lié aux spécificités des SmartCard

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Présentation
30
Présentation (2/3)
Supportés Non supportés
Boolean, byte, short, int Object Tableau à une dimension Méthodes virtuelles Allocation dynamique Paquetages Exceptions Interface Méthodes natives Float, double, long Char, String Tableau à n dimensions Class et ClassLoader Ramasse-miettes SecurityManager Threads
Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Présentation
31
Présentation (3/3)
  • API java.lang de JavaCard réduite à
  • Object public Object ()
  • public boolean equals (Object obj)
  • Throwable public Throwable ()
  • -- Exception
  • -- RuntimeException
  • -- Arthmetic Exception
  • -- ClassCastException
  • -- NullPointerException
  • -- SecurityException
  • -- ArrayStoreException
  • -- NegativeArraySizeException
  • -- IdexOutOfBoundsException
  • -- ArrayIndexOutOfBoundsException

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Présentation
32
Machine virtuelle
  • Implémentation en deux parties
  • La partie on-card (SmartCard)
  • La partie off-card (JavaCard)

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - JCVM
33
Librairies standard
  • JavaCard.lang
  • JavaCard.framework
  • JavaCard.security
  • JavaCardx.crypto

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Les standards Class
Librairies
34
JCRE
  • JCRE JavaCard Runtime Environment

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - JCRE
35
Compiler en Java (1/3)
  • Obtention dun code JavaCard

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Compiler en Java
36
Compiler en Java (2/3)
... Method public static int fact(int) gtgt
max_stack2, max_locals3 ltlt 0 iconst_1 1
istore_2 2 iconst_1 3 istore_1 4 goto 14 7
iload_2 8 iload_1 9 imul 10 istore_2 11 iinc_1
by 1 14 iload_1 15 iload_0 16 if_icmplt 7 19
iload_2 20 ireturn ...
... public static int fact(int n) int i,j
j1 for(i1iltni) ji return
j ...
Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Compiler en Java
37
Compiler en Java (3/3)
  • Récapitulatif des opérations

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Compiler en Java
38
JavaCard
  • Présentation
  • Architecture
  • Les outils commerciaux adaptés à la JavaCard
  • Quelques applications

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - JavaCard
39
Architecture (1/8)
Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Architecture
40
Architecture (2/8)
  • Méthodes natives
  • Fonctions de bas niveaux gérant
  • Les E/S
  • La mémoire
  • Le coprocesseur cryptographique

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Architecture
41
Architecture (3/8)
  • Machine virtuelle Java
  • Exécute le bytecode (obtenu après compilation et
    édition de liens)
  • Offre le support du langage
  • Gère le partage des données entre applications
  • Implantée au dessus du circuit intégré (OS
    méthodes natives)
  • ? Indépendance totale par rapport à la
    plate-forme de la carte

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Architecture
42
Architecture (4/8)
  • Librairies standard
  • Ensemble dAPIs
  • Cache les détails de linfrastructure
  • Interface facile à manipuler
  • Définition des conventions utilisées par les
    applets pour accéder aux méthodes natives

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Architecture
43
Architecture (5/8)
  • Applets
  • Programmes écrits en JavaCard puis compilés
  • Exécution en réponse à des demandes du terminal

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Architecture
44
Architecture (6/8)
  • Installation dune applet
  • Réalisé lors de la fabrication de la carte ou de
    sa mise à jour à partir dun terminal
  • Chargement lapplet en mémoire (ROM ou EEPROM)
  • Appel automatique de la méthode install () par
    le JCRE  phase de connaissance
  • Applet définitivement connue par le JCRE

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Architecture
45
Architecture (7/8)
  • Sélection, activation et désactivation dune
    applet
  • Une Applet est inactive tant quelle nest pas
    sélectionnée pour être exécutée
  • Identification dune Applet par une clé unique
  • Sélection réalisée par le terminal
  • Suspension de lexécution de lApplet active 
    deselect()
  • Activation de lApplet sélectionnée  select()
  • Le JCRE redirige tous les APDUs de commande vers
    cette Applet

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Architecture
46
Architecture (8/8)
  • Communication avec les applets
  • Le JCRE appelle process() lorsquil reçoit un
    APDU de commande pour cette applet

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Architecture
47
JavaCard
  • Présentation
  • Architecture
  • Les outils commerciaux adaptés à la JavaCard
  • Quelques applications

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - JavaCard
48
Outils commerciaux
  • Odissey-Lab de Bull
  • GemXpresso Rapid Applet Development (RAD) de
    Gemplus
  • Cyberflex 2.0 Multi8K de Schlumberger

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Les outils commerciaux
49
Odissey-Lab de Bull
  • Conforme aux spécifications JavaCard API 2.0
  • Sa JVM est lune des plus performantes du marché
    selon Bull
  • A été conçu pour les besoins des plate-formes
    ouvertes
  • Est adaptée à de nouveaux mécanismes de sécurité

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Odissey-Lab de Bull
50
GemXpresso RAD de Gemplus
  • Plate-forme de développement basée sur les
    spécifications de JavaCard 2.0 et sur un
    processeur RISC 32 bits
  • Supporte les API JavaCard 2.0 pour 8 ou 32 bits
  • Accélère le développement et les tests
  • Simulateur pour tester les programmes
    directement sur une station de travail

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - GemXpresso RAD de Gemplus
51
Cyberflex de Schlumberger
  • Conforme aux spécifications de JavaCard 2.0
  • Pas denvironnement de développement car très
    facile de lintégrer dans un environnement de
    développement Java existant
  • Simulateur qui vérifie le code

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Cyberflex de Schlumberger
52
JavaCard
  • Présentation
  • Architecture
  • Les outils commerciaux adaptés à la JavaCard
  • Quelques applications

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - JavaCard
53
Applications (1/2)
  • Télévision
  • Santé

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Applications
54
Applications (2/2)
  • Carte détudiant
  • Fidélité

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - Applications
55
Conclusion
  • Carte à puce vs JavaCard

Stéphane AMATO / Julien CHABANON
Novembre 2001
Cartes à puce et Java - JavaCard
Write a Comment
User Comments (0)
About PowerShow.com