1 / 55

Stéphane AMATO Julien CHABANON Novembre 2001

Stéphane AMATO Julien CHABANON Novembre 2001. Carte à puce et Java. Sommaire. Historique Partie I : Carte à puce Partie II : JavaCard Conclusion. Stéphane AMATO / Julien CHABANON. Cartes à puce et Java - Sommaire. Novembre 2001. Historique (1/6). Stéphane AMATO / Julien CHABANON.

cheche
Download Presentation

Stéphane AMATO Julien CHABANON Novembre 2001

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

  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 Cartes à puce et Java - Historique Novembre 2001

  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 Cartes à puce et Java - Historique Novembre 2001

  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 Cartes à puce et Java - Historique Novembre 2001

  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 Cartes à puce et Java - Historique Novembre 2001

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

  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 Cartes à puce et Java - Type de carte Novembre 2001

  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 Cartes à puce et Java - Type de carte Novembre 2001

  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 Cartes à puce et Java - Type de carte Novembre 2001

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

  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 Cartes à puce et Java - Système informatique Novembre 2001

  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 Cartes à puce et Java - Système informatique Novembre 2001

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

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

  18. Normalisation (2/7) • La puce • Seule interface de communication avec l’exté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 Cartes à puce et Java - Normalisation Novembre 2001

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

  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 Cartes à puce et Java - Normalisation Novembre 2001

  21. Normalisation (5/7) • Commandes applicatives • ISO 7816-4 : Manipulation des données au travers d’une 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 d’un schéma relationnel • ETSI GSM 11.11 : Commandes des cartes S.I.M. • E.M.V. : Commandes de paiement • ... Stéphane AMATO / Julien CHABANON Cartes à puce et Java - Normalisation Novembre 2001

  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 l’est) • Détecteurs de conditions anormales Stéphane AMATO / Julien CHABANON Cartes à puce et Java - Normalisation Novembre 2001

  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 Cartes à puce et Java - Normalisation Novembre 2001

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

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

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

  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 Cartes à puce et Java - Résumé Novembre 2001

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

  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 Cartes à puce et Java - Présentation Novembre 2001

  30. Présentation (2/3) Stéphane AMATO / Julien CHABANON Cartes à puce et Java - Présentation Novembre 2001

  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 Cartes à puce et Java - Présentation Novembre 2001

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

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

  34. JCRE • JCRE = JavaCard Runtime Environment Stéphane AMATO / Julien CHABANON Cartes à puce et Java - JCRE Novembre 2001

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

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

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

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

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

  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 Cartes à puce et Java - Architecture Novembre 2001

  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 Cartes à puce et Java - Architecture Novembre 2001

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

  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 Cartes à puce et Java - Architecture Novembre 2001

  44. Architecture (6/8) • Installation d’une applet • Réalisé lors de la fabrication de la carte ou de sa mise à jour à partir d’un terminal • Chargement l’applet 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 Cartes à puce et Java - Architecture Novembre 2001

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

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

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

  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 Cartes à puce et Java - Les outils commerciaux Novembre 2001

  49. Odissey-Lab de Bull • Conforme aux spécifications JavaCard API 2.0 • Sa JVM est l’une 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 Cartes à puce et Java - Odissey-Lab de Bull Novembre 2001

  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 Cartes à puce et Java - GemXpresso RAD de Gemplus Novembre 2001

More Related