La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Stéphane AMATO Julien CHABANON Novembre 2001 Carte à puce et Java."— Transcription de la présentation:

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

2 Historique Partie I : Carte à puce Partie II : JavaCard Conclusion Sommaire Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Sommaire

3 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Historique Historique (1/6)

4 Roland Moreno crée la carte à puce à circuit intégré Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Historique Création de Bull CP8 Historique (2/6)

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

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

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

8 Mars 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 CHABANONNovembre 2001Cartes à puce et Java - Historique Historique (6/6)

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

10 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Type de carte 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) Types de cartes (1/3)

11 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Type de carte 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 …) Types de cartes (2/3)

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

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

14 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Système informatique 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 fois moins de mémoire (64 Ko de ROM) Système informatique (1/2)

15 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Système informatique 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 Système informatique (2/2)

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

17 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Normalisation ISO 7816 Format carte de crédit Définition des contraintes physiques supportables (chaleur, humidité...) 85 mm 54 mm 0,76 mm Normalisation (1/7)

18 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Normalisation 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 Normalisation (2/7)

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

20 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Normalisation 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 Normalisation (4/7)

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

22 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Normalisation 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 Normalisation (6/7)

23 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Normalisation 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) Normalisation (7/7)

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

25 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Cycle de vie 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 Cycle de vie (1/2)

26 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Cycle de vie 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... Cycle de vie (2/2)

27 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - 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 Résumé

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

29 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Présentation 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 Présentation (1/3)

30 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Présentation SupportésNon 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 Présentation (2/3)

31 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Présentation 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 Présentation (3/3)

32 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - JCVM Implémentation en deux parties : La partie on-card (SmartCard) La partie off-card (JavaCard) Machine virtuelle

33 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Les standards Class Librairies JavaCard.lang JavaCard.framework JavaCard.security JavaCardx.crypto Librairies standard

34 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - JCRE JCRE = JavaCard Runtime Environment JCRE

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

36 Bytecode désassemblé Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Compiler en Java... public static int fact(int n) { int i,j; j=1; for(i=1;i> max_stack=2, max_locals=3 << 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... Compiler en Java (2/3)

37 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Compiler en Java Récapitulatif des opérations Compiler en Java (3/3)

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

39 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Architecture Méthodes Natives Donne accès aux ressources physiques telles que la mémoire, les E/S, le coprocesseur cryptographique Machine Virtuelle Java (interpréteur) Exécute les applets, garantit la sécurité et gère le partage des données Librairies standard (API) Interface cachant linfrastructure de la carte Applet N Programme Applet 1 Programme Card Executive Charge et sélectionne les applications Communique avec le monde extérieur Gère le cycle de vie de la carte Architecture (1/8)

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

41 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Architecture 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 Architecture (3/8)

42 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Architecture 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 Architecture (4/8)

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

44 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Architecture 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 Architecture (6/8)

45 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - Architecture 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 Architecture (7/8)

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

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

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

49 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - 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é Odissey-Lab de Bull

50 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - 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 GemXpresso RAD de Gemplus

51 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - 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 Cyberflex de Schlumberger

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

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

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

55 Stéphane AMATO / Julien CHABANONNovembre 2001Cartes à puce et Java - JavaCard Carte à puce vs JavaCard Conclusion


Télécharger ppt "Stéphane AMATO Julien CHABANON Novembre 2001 Carte à puce et Java."

Présentations similaires


Annonces Google