Applications Terminales pour Cartes à puce

Slides:



Advertisements
Présentations similaires
UML EPITECH 2009 UML1 - Introduction UML – Définition – Historique – UML en entreprise – Couverture Concepts – Objet – Classe –
Advertisements

ERGONOMIE TABLETTE JORDAN DEBRUYNE ETUDIANT N°2. CONTEXTE DU PROJET De par leur manque de mobilité, les personnes handicapées sont utilisatrices de matériel.
Projet tuteuré 2009 Les clients légers Alexandre Cédric Joël Benjamin.
Système de gestion d'entrées pour un cinéma Scanvion Michel – Etudiant 4.
Groupe de travail interop AFUL, APRIL, ABUL, OpenWeb, W3C, Mozilla,... Pierre Jarillon, RMLL2006.
Soutenance TP Réseau Sujet 10 Plateforme de commutation multi-niveaux Catalyst 8540 Gilles Bricier & Paul ChauchisFévrier 2006.
- Université Kasdi Merbah -Ouargla Faculté des Sciences de la technologie et Sciences de la matière Département de génie électrique Réalisation du banc.
1 Y a-t-il une place pour Opensocial dans l'enseignement supérieur ? David Verdin RENATER JRES - Toulouse – novembre 2011.
WIKITTY Base de données orientée documents et API de persistance pour Java.
Système d’annotation et de détection de modèle de véhicule Université de Sfax *** Institut Supérieur d’Informatique et de Multimédia de Sfax Réalisé par.
Mode noyau Appels Systèmes Interruptions Grégory Seront Institut Paul Lambin
Windows NT/2000/XP Enjeux et contraintes techniques
Les mémoires de l’ordinateur
Communication client-serveur
Mise en place d’un système de partage de fichiers
Environnement de développement des BD
ANDROID OS.
Bases de données multimédia
LAN Médias cch_ccnp.
RESEAUX SANS FILS Normes Produits applications MRIM Nancy JPB
Pas de variable globale
Les notions de classe et d'objet
L’ordinateur: comment ça marche ? Ou comment avoir des idées justes sur le sujet... PCI SV I - STU I Alain Mille UFR d’Informatique UCBL.
Folders Access Manager Capacte
TP N°2 : les Adresses IP *IP: Internet Protocol
ATELIERS BAAN IV MODULE 9 : TENDANCES FUTURES
Session 1 31 mai 2017 Plateforme ICONICS Justine Guégan
Communications via sockets
Réalisation d’une application web sous le thème: «Mon vétérinaire » par : Benzineb Asmaa et Meftahi Oualid Présentation à Université Saad Dahlab Blida.
Programmation système
Calibre Introduction - Les services Conseils I6T.
Développement d’un réseau social de collaboration destiné aux médecins radiologues Soutenance de projet de fin d’étude En vue de l’obtention du diplôme.
Août 2009.
HTTP DNS NTP FTP R231 RJ45 definition HTTP DNS NTP FTP R231 RJ45.
Présentation initiale
Le Zigbee 1. PLAN Introduction. Présentation du Zig Bee. Caractéristiques de Zig Bee. Architecture Zig Bee. Topologies Zig Bee. Domaines d'application.
Système d’exploitation
Plus de 4000 langages....
Développement d’applications interactives
Service web Réalise par: Latifa Gamoun Mariem jridi Majdouline Hassni Service web Réalise par: Latifa Gamoun Mariem jridi Majdouline Hassni 1.
Message Oriented Middleware MOM - Beghdad abdelkrim -abass youcef.
Introduction en systèmes d’information et bases de données B.Shishedjiev -Introduction en BD 1.
Les protocoles de la couche application Chapitre 7.
Communications séries synchrones
Auditeur: Léonardo AMODIO Cours: NFE107
Développement d’une Application CORBA
L’ordinateur: comment ça marche ? Ou comment avoir des idées justes sur le sujet... PCI SV I - STU I Alain Mille UFR d’Informatique UCBL.
TGV Trigger Générique Vme Face avant Tri d’événements de physique
Introduction aux Technologies de Transmission 5eme Année - IGE Communication Multimédia Mrs Rerbal & Djelti.
Schéma de conception Factory Method Exemple
Les liaisons des données Sommaire Principe Les couches de liaison –LLC (Contrôle de Liaison Logique) –MAC (Contrôle d’Acces au Support) Mode de Communication.
Système d’exploitation: Principe IFT6800 – E 2008 Pierre Poulin.
Bases – Banques Entrepôts de données
Notions d'architecture client-serveur. Présentation de l'architecture d'un système client/serveur Des machines clientes contactent un serveur qui leur.
STREAMS (et fichiers).
CONFIGURATION D’UN ROUTEUR Introduction et planification du cours  Configuration d’un routeur  Administration d’un routeur  Protocoles RIP et IGRP 
LUSTRE Integration to SRM
COURS ADMINISTRATION DE BASES DE DONNÉES IMPORT/EXPORT Karim LABIDI ISET Ch
En vue d’obtention du diplôme Ingénieur d’Etat en P ROJET DE F IN D’ E TUDES Encadré par : M. ERRAOUI ANAS (Perfect Industry) Pr. EL GOURI RACHID (ENSA.
TP N°1 : GUI en NetBeans Module R & C Université de Jijel
Sommaire Les réseaux de capteurs sans fils Les réseaux de capteurs sans fils Communication dans Contiki Communication dans Contiki Réalisation Réalisation.
Contenu Systèmes de test parallèles Multithreading Synchronisation
Présentation PISTE pour les partenaires raccordés en API
TP N°4 Développement d’ une application
Business Intelligence en ACube OLAP et Reporting avec ACubeOLAP et GRaM.
TP RC.
TP N°5: Partie I Programme Serveur.
Transcription de la présentation:

Applications Terminales pour Cartes à puce BERNARDET William PHAM-TRONG Toàn Étude d’approfondissement RICM3

Plan de la présentation Introduction : Contexte d’utilisation des cartes à puces Protocoles T0 et T1 La technologie PC/SC - MUSCLE La technologie OCF Comparaison entre les deux standards Conclusion 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Le contexte industriel Les enjeux économiques Facilité de développement Déploiement Carte multi-services 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Contexte d’utilisation des cartes à puces Pourquoi une interface? ??? 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Contexte d’utilisation des cartes à puces Pourquoi une interface? API PCSC OCF 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE La carte à puce Alimentation électrique Initialisation Communication 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE Protocole T0 Définie dans ISO 7816. Orienté caractères. Asynchrone half-duplex. Gestion d’erreur rudimentaire (basée sur le hardware). 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE Protocole T0 – Entête Nom Taille Description CLA 1octet Classe de la commande INS Code de l’instruction P1 Paramètre 1 P2 Paramètre 2 P3 Taille des données envoyé, ou quantité de données attendu en réponse 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE Protocole T0 – Retour Nom Caractère Description ACK INS Acquittement ___ Le transfert peu continuer. NULL 0x60 La carte est occupée. SW1 0x6x or 0x9x Le lecteur va recevoir une autre information sur l ’état de la carte 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE Protocole T1 Définie dans ISO 7816 Orienté blocs. Asynchrone half-duplex. Constitué d’un prologue et d’un épilogue. Gestion d’erreurs plus évoluée. 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Protocole T1 - Trame Prologue Informations Epilogue Adresse du noeud (NAD) Protocol Control Byte (PCB) Taille (LEN) APDU or Control Information (INF) Error Detection Code (EDC) 1 octet 0 to 254 octets 1 or 2 octets 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

La technologie PC/SC – MUSCLE Partenariat entre plusieurs entreprises Originellement sur plate-forme Windows Porté sur Unix et OS X grâce à MUSCLE Langage d’implantation non défini 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE Architecture PC/SC 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

1. Architecture générale Interfaces de communication terminal/carte à puce. Interface du pilote de lecteur de carte à puce. API : du gestionnaire de ressources. d’accès à la carte à puce. de certains services. 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE Architecture PC/SC 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

2. Communication au niveau physique Reprise de la norme ISO. Format de la carte Spécifications électriques Définition des protocoles de communication T0 et T1. 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE Architecture PC/SC 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE Pilote du lecteur Énumération des fonctionnalités supportées. Gestion de la communication(T0 & T1). Gestion mécanique de la carte à puce. 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

3. API du pilote du lecteur // fonctionalité RESPONSECODE IFD_Get_Capabilities(); RESPONSECODE IFD_Set_Capabilities( ); // Gestion T0 & T1 RESPONSECODE IFD_Set_Protocol_Parameters(); // Gestion de l’energie RESPONSECODE IFD_Power_ICC(); // gestion de la mecanique RESPONSECODE IFD_Swallow_ICC(); RESPONSECODE IFD_Eject_ICC(); RESPONSECODE IFD_Confiscate_ICC(); // Communication RESPONSECODE IFD_Transmit_to_ICC(); // etat du lecteur RESPONSECODE IFD_Is_ICC_Present(); RESPONSECODE IFD_Is_ICC_Absent(); 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE Architecture PC/SC 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE 4. Connexion des IFD RS232 USB PS2 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE Architecture PC/SC 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

5. Interface IFD / Ressource Manager(1/5) Définition de l’interface du gestionnaire de ressource.(class RESOURCEMANAGER) De l’accès à la carte à puce. (class SCARDCOMM) 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

5. Interface IFD / Ressource Manager(2/5) Class RESOURCEMANAGER{ HANDLE hContext; RESOURCEMANAGER(); ~RESOURCEMANAGER(); RESPONSECODE EstablishContext(…); RESPONSECODE ReleaseContext(); } 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

5. Interface IFD / Ressource Manager(3/5) Class RESOURCEDB extends RESOURCEDBQUERY private RESOURCEMANAGER resmgr; RESOURCEDB(IN RESOURCEMANAGER resmgr); ~RESOURCEDB();   RESPONSECODE IntroduceReader(…); RESPONSECODE ForgetReader(…); RESPONSECODE IntroduceReaderGroup(…); RESPONSECODE ForgetReaderGroup(…); RESPONSECODE AddReaderToGroup(…); RESPONSECODE RemoveReaderFromGroup(); RESPONSECODE IntroduceCardType(); RESPONSECODE ForgetCardType(); } 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

5. Interface IFD / Ressource Manager(4/5) Class SCARDTRACK{ private RESOURCEMANAGER resmgr; SCARDTRACK(IN RESOURCEMANAGER resmgr); ~SCARDTRACK(); RESPONSECODE LocateCards( IN STR[] CardsType, IN OUT SCARD_READERSTATE[] ReaderStates); RESPONSECODE GetStatusChange(…); RESPONSECODE Cancel(); ) 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

5. Interface IFD / Ressource Manager(5/5) Class SCARDCOMM{ private RESOURCEMANAGER resmgr; private HANDLE hCard; SCARDCOMM(RESOURCEMANAGER resmgr) ~SCARDCOMM() RESPONSECODE Connect(…); RESPONSECODE Reconnect(…); RESPONSECODE Disconnect(…); RESPONSECODE Status() ; RESPONSECODE BeginTransaction() ; RESPONSECODE EndTransaction(…); RESPONSECODE Cancel(); RESPONSECODE Transmit(…); RESPONSECODE Control(…); RESPONSECODE GetReaderCapabilities (…); RESPONSECODE SetReaderCapabilities (…); } 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE Architecture PC/SC 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE 6. Les services (1/2) Abstraction de la carte à puce. Système de fichier. Authentification. Cryptage…. 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE 6. Les services (2/2) Class SCARD{ HANDLE hContext; SCARD(); ~SCARD(); RESPONSECODE CreateFileAccess(OUT FileAccess); RESPONSECODE CreateCHVerification(OUT CHVerification); RESPONSECODE CreateCardAuth(OUT CardAuth); RESPONSECODE CreateCryptProv(OUT CryptProv); RESPONSECODE AttachByHandle(IN HANDLE); RESPONSECODE AttachByIFD(IN STR,IN FLAGS); RESPONSECODE Detach(); RESPONSECODE Reconnect(IN FLAGS); RESPONSECODE Lock();   RESPONSECODE Unlock(); } 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE Architecture PC/SC 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE 7. Applications Liste de conseils de programmation. Études de cas. Décrit un service de cryptographie minimal.(sur l’ICC) 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE Exemple try { PcscRM prm = new PcscRM(PcscRM.SCARD_SCOPE_USER); String readers[] = prm.listReaders(null); PcscReaderState[] prs = {new PcscReaderState()}; prs[0].CurrentState = PcscReaderState.SCARD_STATE_EMPTY; prs[0].EventState = PcscReaderState.SCARD_STATE_PRESENT; prs[0].Reader = "Bull Smart TLP 0"; // lecteur // Attente d’une insertion pendant 10s prm.getStatusChange(10000, prs); //connexion PcscCardReader pcr = prm.cardConnect(prs[0].Reader, prm.SCARD_SHARE_EXCLUSIVE, (PcscIOHeader.SCARD_PROTOCOL_T0 | PcscIOHeader.SCARD_PROTOCOL_T1)); byte cmdBuf[] = {0x02,(byte)0x3F,0x00}; CommandAPDU cmdAPDU=new CommandAPDU((byte)0xA4,(byte)0xA4,(byte)0x00,(byte)0x00,cmdBuf); ResponseAPDUrspAPDU=pcr.transmit(cmdAPDU); }catch (Exception ne) { System.out.println(‘Error :  ’+ ne); } 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

La technologie OCF(OpenCard Framework) Partenariat entre plusieurs entreprises Orienté objet Basé sur système Java 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE L’architecture d’OCF 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE Exemple de code Initialisation SmartCard.start (); Insertion de la carte public void cardInserted(CardTerminalEvent ctEvent) try { fileService = (FileAccessCardService) card.getCardService(FileAccessCardService.class, true); signatureService = (SignatureCardService) card.getCardService(SignatureCardService.class, true); SBCHVDialog dialog = new SBCHVDialog(); fileService.setCHVDialog(dialog); signatureService.setCHVDialog(dialog); } catch(Exception e) { e.printStackTrace(); } 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE Exemple de code Génération d ’une signature électronique // specification de la clé qu ’on va utiliser PrivateKeyFile kf = new PrivateKeyFile (new CardFilePath(":C110"), keyNumber); // Appel de la méthode de la carte qui va générer la signature signature = signatureService.signData(kf, JCAStandardNames.SHA1_RSA, JCAStandardNames.ZERO_PADDING, data); Lecture d ’un fichier // montage de la racine du système de fichier CardFile root = new CardFile(fileService); // Instanciation de « file » dont le contenu est celui de « :C009 » CardFile file = new CardFile(root, ":C009"); // Création d ’un DataInputStream via un CardFileInputStream DataInputStream dis = new DataInputStream(new CardFileInputStream(file)); // Création d ’un fichier de même longueur que « file » byte[] cardHolderData = new byte[file.getLength()]; // lecture du contenu du fichier dis.read(cardHolderData); // fermeture dis.close(); 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Comparaison entre les deux standards Environnement d’exécution. Environement de prog. Other Java C++ Windows UNIX & OS X PCSC MUSCLE OCF Hardware et OS 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Comparaison entre les deux standards Avantages Inconvénients PC/SC MUSCLE Multi-langages. Portable grâce à MUSCLE. Orienté lecteur. Securité. Au départ, dédié à un environnement OCF Portable,(systèmes embarqués) Simple a mettre en œuvre. Orienté internet. Accès aux cartes. Lenteur de Java. Nécessité de ressources importantes. 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Comparaison entre les deux standards 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE Conclusion Les cartes à puces une technologie d’avenir. Perspectives… 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE

Bernardet - Pham-Trong - PCSC, OCF, MUSCLE Questions?????????? 13/11/2018 Bernardet - Pham-Trong - PCSC, OCF, MUSCLE