ETUDE ET RÉALISATION D’UNE CARTE ÉTUDIANT EMBARQUÉE SUR UNE CARTE À PUCE MULTISERVICES EXPOSÉ DU MÉMOIRE POUR L'OBTENTION DU: DIPLÔME D'ETUDES SUPÉRIEURES APPROFONDIES (DESA) : ALGÈBRE, THÉORIE DES NOMBRES ET APPLICATIONS AUX SCIENCES DE L’INFORMATION (ATNASI) PRÉSENTÉ PAR: BOURICHE KHALID INGÉNIEUR D’ETAT FST-Fès le: 18/10/2008 Plan de l’exposé I. LA TECHNOLOGIE JAVA CARD. 1. 2. 3. 4. HISTORIQUE LA CARTE À PUCE ARCHITECTURE. NORMALISATION II. PRÉSENTATION DU PROJET. III. TRAVAIL DEMANDÉ. 2 I. La Technologie Java Card. 3 1. Historique 4 2. La carte à puce la carte à puce est composée de: 1. Microprocesseur utilisant une (RAM) allant de 128 Octets à 8 Ko. 2. Une mémoire morte (ROM) allant de 16 à 196 Ko 3. Une mémoire applicative (EEPROM) de 2 à 64 Ko. 5 3. Architecture 6 3. Architecture (JCVM) 7 4. La normalisation Les principales normes d’une carte à puce: ISO 7816-1: Définit les dimensions de la carte et les contraintes que doit supporter : (chaleur, humidité…). 8 4. La normalisation (suite) ISO 7816-2: Normalisation de la puce : - seule interface de communication avec l’extérieur - surface = 25mm² - épaisseur = 0,3 mm² - composée de 8 contacts électriques 9 4. La normalisation (suite) ISO 7816-3:Caractéristiques électriques et protocole de transmission: 10 4. La normalisation (suite) • ISO 7816-4: Définition des échanges entre un terminal et la carte à puce: structure des messages (APDU): Commande APDU Entête obligatoire CLA INS Corps optionnel P1 P2 LC Champ Donnée de Le Réponse APDU Corps optionnel Portion obligatoire Champ de Donnée SW1 SW2 11 4.La normalisation (suite) • ISO 7816-15: Définition des Application Cryptographique : Ex: en RSA, obligation d’importer les Framework ci-après dans l’entête de l’applet: javacard.security.CryptoException; javacard.security.KeyBuilder; javacard.security.RSAPrivateKey; javacardx.crypto.Cipher; NB: Supporte les clés RSA de 512 à 2048 Octets. 12 II. PRÉSENTATION DU PROJET. Le projet consiste à la réalisation d’une carte à puce étudiant multiservice servant de support aux usages suivants : L’identification personnelle de l’étudiant La monétique, en partenariat avec les banques. Le transport, en partenariat avec les organismes de transports Le contrôle des droits d’accès (Ex: bibliothèque) Le contrôle et la sécurité physique d’accès à des locaux. D’où la conclusion de partenariats multiples 13 III. TRAVAIL DEMANDÉ. Le travail demandé consiste donc à: 1. Installer du kit de développement sur le SE Windows. 2. Créer des Applets Java Card de chacun des partenaires. 3. Concevoir un protocole de sécurité de la carte ( RSA …) 4. Démontrer sur une application test 5. Identifier les limitations actuelles de la carte. 14 1. Installation du kit de développement sur le SE Windows. Le Kit de développement utilisé se compose de : Java Card Development Kit 2.2.2 L’environnement de développement Eclipse version 3.2.2 Le plug-in d’intégration Eclipse-JCDE version 0.1 J2SE Development Kit 5.0 Update 15 version 1.5.0.150 Le système Windows XP, SP2. 15 2. Création des Applets Java Card La création d’un Applet Java Card doit suivre les étapes suivantes: 1. La spécification des fonctions de l’applet. 2. L’attribution des identifiants d’application (AIDs) à l’applet. 3. Élaboration de la structure des classes de l’applet. 4. Définition de l’interface entre l’Applet et l’application hôte (terminal). 16 2.1) La spécification des fonctions de l’Applet Cette étape consiste à : Définir les informations à mutualiser Déterminer, d’une façon concise, la description de chaque Applet . (ladite description doit être automatisable) Se servir éventuellement d’autres outils (Ex: UML ) 17 2.2) Attribution des AID à l’Applet et au package Cette étape consiste à donner les AID comme suit: 18 2.3) Élaboration de la structure des classes de l’Applet import javacard.framework.* ... public class MyApplet extends Applet { // Definitions des codes d’instructions des APDU ... MyApplet() {...} // Constructeur // cycle de vie des methodes install() {...} select() {...} deselect() {...} process() {...} //Traitement effectif // Méthodes privées ... } 19 2.4) Définition de l’interface entre l’Applet le terminal. Cette étape consiste à: Implémenter le code du programme qui appellera les Applets de la carte. Ex: Java, C++ .. NB: Delphi par exemple, ne sert pas d’interface. 20 3- Conception d’un protocole de sécurité de la carte La sécurité de notre carte est assurée par plusieurs mécanismes: Le code PIN ( pour les droits d’accès aux ressources de la carte). Le Firewall du JCRE (utilisation du « SIO » si nécessaire). Et enfin l’utilisation d’un crypto système pour des tâches spécifiques (RSA, AES, DES) 21 4- Démonstration sur une application test En fait, il s’agit d’une simulation: Etapes: Installation des variables d’environnement utilisation de « CREF » au lieu de « JCWDE » • CREF : Simulateur avec conservation de l’état. •JCWDE : Simulateur Sans conservation de l’état. Lancement du programme « Client » (Java) 22 FIN MERCI POUR VOTRE ATTENTION 23