Projet de veille technologique 10 janvier 2005 – Emile Gourlay – Julien – Emmanuel De Castro XavierXavier PerrinPerrin – Emile Gourlay – Julien JanierJanier – Emmanuel De Castro Plan Cartes à puces JavaCard Coté terminal (OpenCard) JavaCard en pratique 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Généralités sur les cartes à puces Historique 1974, cartes à mémoire • Innovatron 1977, carte à microprocesseur • Bull CP8 • 1980, carte bancaire • 1983, carte santé 1984, carte à micromodules • France Telecom 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Généralités sur les cartes à puces Réalisations industrielles majeures Carte Bleue SESAM Carte Vitale Porte monnaie électronique Téléphonie mobile 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Généralités sur les cartes à puces Types de cartes (1/2) Carte à mémoire • Mémoire simple (sans processeur). • Carte “porte-jeton” . Carte à logique cablée • Mémoire accessible via des circuits préprogrammés et figés . • Carte “sécuritaire” . 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Généralités sur les cartes à puces Types de cartes (2/2) SmartCard • Microcontrôleur encarté (processeur + mémoires). • Carte “programmable” pouvant effectuer tout type de traitements. • Interface électronique par contacts ou via signaux RF. 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Généralités sur les cartes à puces Architecture d'une Smartcard 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Les Avantages Langage de haut niveau Write Once Run Anywhere Plateforme multi applicative Partage de données entre applications Sécurité des données Souplesse 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Java Vs JavaCard Une sous Classe du langage Java • • • • • • Pas de chargement de classe dynamique. Pas de threads / synchronisation. Pas de Clone. Pas de méthodes Natives. Pas de String. Peu de types. Une sous Classe de la VM Java • Un bytecode limité. • Nommage différent. (pas de string) • Pas de GC / pas de finalize. 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Javacard : comment ça marche? L’architecture. (JCRE) • Les Natives methods. • L’interpréteur. • Les standard class libraries. 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Mécanismes de mise en Oeuvre. Librairies de développement Compilateur Java .java Fichiers Class Java Exports .class Convertiseur, verifieur, signeur de bytecode API Interprète On-card Loader O.S. Java Card Files .cap 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Création d’une applet Bibliothèque de base javacard.Framework Hérite de javacard.Framework.Applet Implémente • • • • Install Process Select deselect 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Installation des applets Pourquoi installer des applets ? L’installation • Chargement sur la carte • Création d’une instance. 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Coté sécurité : L’applet Firewall 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro RPC et systèmes à objets répartis L’approche : construire les applications avec la carte comme des applications réparties Principes : • Notion d’interface objet pour décrire les objets distants • Pré-compilateur pour générer les couches (skell stub) • Le principe Java RMI est retenu. 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro RPC et systèmes à objets répartis Applet JavaCard = objet serveur distant 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Les Terminaux. Appareil permettant l'accès à distance à un système informatique. Rôle terminal 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro La norme ISO 7816 Norme décomposée en sous parties: • Partie 1: caractéristiques physique • Partie 2: les contacts • Partie 3: caractéristiques électrique & protocole de communication • Partie 4: format de paquets (APDU) 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Le standard PC/SC Pourquoi? • Standardiser l’interface entre PC et le lecteur. • Exploitation des cartes multi applicatives • Création d’un groupe de travail (PC/SC workgroup) Standard: • Repose sur la norme ISO 7816 • Offre une interface entre le driver de carte et la programmation 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Opencard Framework orienté objet pour l’utilisation des smart card. Pourquoi? • Standardiser les accès aux cartes à puce Les atouts d’Opencard. • Développeurs • Fabricants Opencard VS PC/SC • Opencard complémente PC/SC • PC/SC reste d’actualité 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Architecture Opencard 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Javacard en pratique Le Java development Kit Un JDK de SUN spécialement pour Javacard • Environnement de simulation – Support pour la cryptographie – Adressage étendu – Support du RMI • Outils – Respectant les spécifications Javacard 2.2.1, et les nouvelles fonctionnalités • Plateformes – Support JDK 1.4.1 – Version Linux existante 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Javacard en pratique Documentation du développeur Javacard sur le site de Sun • Java Card 2.1.1 Vitual Machine Specification • Java Card 2.1.1 Runtime Environment Specification • Java Card 2.1.1 Application Programming Interface Opencard sur le site d'OpenCard ou GemPlus • OpenCard 1.2 Application Programming Interface • OpenCard 1.2 Programmer's Guide 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro DEMO 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Conclusion (1/3) Cartes à puces de plus en plus répandues Utilisation de plus en plus facile • plus de C ou d'assembleur -> langage évolué, objet 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Conclusion (2/3) Javacard propose un SDK complet, aux outils performant et fortement documenté. Opencard propose un framework pour standardiser les échanges avec les terminaux. 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Conclusion (3/3) Alternative à Javacard : JITS • Mélange de l'OS et de la JVM pour plus de légèreté et de flexibilité. • API est plus complète que l'API de javacard. 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Des questions ? 10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro