Stéphane AMATO Julien CHABANON Novembre 2001

Slides:



Advertisements
Présentations similaires
Le micro-ordinateur.
Advertisements

LES MEMOIRES INTRODUCTION UN PEU D ’HISTOIRE LES DIFFERENTES MEMOIRES
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Mobiles Services and Midlets
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Types, variables et constantes.
Bienvenue dans le programme de formation rapide à NSIS Date : 20 novembre 2003 Intervenant : Julien VICTOR Interlocuteurs : Ingénieurs 2000 Informatique.
L’architecture .net et ASP.net
Exposé de Système - Informatique et Réseau
Vue d'ensemble Implémentation de la sécurité IPSec
51 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Métier Janvier Version 1.0 -
Auto Apprentissage Le DSP
JAV - TD 6 Structures de données JAVA
TRANSMISSION DES DONNEES INFORMATIQUES
Architecture de machines La mémoire
Architecture de machines Principes généraux
Architecture de machines La mémoire
Pôle de Compétitivité Solutions Communicantes Sécurisées Réunion thématique Identité 18 Janvier 2007.
Du calculateur à l’ordinateur
RW Conseil Les technologies de la sécurité au service de lutilisateur 1 Introduction aux systèmes à base de cartes multiapplicatives.
Projet de veille technologique
Fonction Traiter Algorithmique et Programmation
Etude des Technologies du Web services
Définition – Rôle Formes Composants Périphériques internes
Restriction daccès aux logiciels et aux matériels Problème de licence Nicolas CHABANOLES Matière : SRR Lieu: UFRIMA.
XML-Family Web Services Description Language W.S.D.L.
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE
TRANSMISSION DES DONNEES.
LES MEMOIRES.
Principes de programmation (suite)
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
Dan Bismuth Tutrices : Marie-Lise Flottes - Joanne Acland
Introduction à la programmation (Java)
Gestion de Camping Projet BTS IRIS 2004
Architecture d ’un système à MICROPROCESSEUR
Programmation concurrente
IFT 6800 Atelier en Technologies d’information
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 1 : Introduction.
Module 1 : Généralités sur les systèmes informatiques
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI) Plate-forme.NET.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Java vs. C++ Pierre-Yves ALIZON – Ingénieurs 2000.
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
‘‘Open Data base Connectivity‘‘
Informatique 1. Les applications de l’informatique
Afficheur industriel « AIW » MAT Électronique
Programmation en Java Tableaux NGUYEN Thi Minh Tuyen
Cours 1 1 Java. Cours 1 2 Plan général 1.Introduction 2.Les types primitifs, évaluation d’expressions 3.Instructions for, if…. 4.Introduction de l’objet,
Informatique 1. Les applications de l’informatique
Premiers pas dans le langage Java 2012/ Premiers pas dans le langage Java TI3.4 Responsable : M lle Sana Ezzedine
Créer des packages.
Les sockets.
Architecture matérielle Qu’est ce qu’un ordinateur ?
LES MEMOIRES.
L’enseignement de spécialité SLAM
Le diagramme de composants
Développement et design Web Awaves academy Stockholm 2006.
OPEN SERVICES GATEWAY INITIATIVE (OSGi) SEMINAIRE DE MASTER THIERRY MENOUD.
Architecture Client/Serveur
22 Concepts de base du langage Java. 2-2 Objectifs A la fin de ce cours, vous serez capables de : Identifier les éléments essentiels de Java Identifier.
MicroWeb LECOCQ Guillaume PAUL Grégory RIORDA Cédric 06/08/ /14.
1.1: notions de bases de l’informatique
Introduction à Java Caractéristiques principales Environnement Java Environnement de développement Compilation et exécution.
Intervention sur un système technique Afficheur industriel « AIW »
Initiation à la micro-informatique Le matériel L’Unité Centrale un clic pour la suite…
Systèmes à microprocesseur Les mémoires
Transcription de la présentation:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Cycle de vie (1/2) Fabrication Initialisation Personnalisation 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

Cycle de vie (2/2) Utilisation Mort 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

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

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

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

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

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

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

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

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

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

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

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

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

Machine Virtuelle Java (interpréteur) Librairies standard (API) Architecture (1/8) 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 l’infrastructure de la carte Applet N Programme Applet 1 Card Executive Charge et sélectionne les applications Communique avec le monde extérieur Gère le cycle de vie de la carte JavaCard Stéphane AMATO / Julien CHABANON Cartes à puce et Java - Architecture Novembre 2001

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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