UNIVERSITE LIBANAISE SAINT-JOSEPH

(Faculté de Génie) d’ingénieur, ESIB)

UNIVERSITE
(Faculté

Sous l’égide de l’agence des universités Francophones AUPELF-UREF

Diplômes d’Etudes Approfondies Réseaux de télécommunications

Cartes à puces

par

CDT. EL JABI HASSAN

Soutenance le 21 Décembre 1998 devant le jury composé de MM. Samir TOHME_________Président Maroun ASMAR__________Membre Imad MOUGHARBEL_____Membre Amjad HAJJAR___________Membre Mahmoud DOUGHAN____Membre Maroun CHAMOUN______Membre Nicolas ROUHANA_______Membre

Encadré par :_ . Ahmed SERHROUCHNI M

Université St-Joseph Université libanaise Résumé LES CARTES À PUCES par Cdt El JABI Hassan Directeur de thèse: Professeur TOHME Samir Département de INF-RES

L’INTEROPÉRABILITE DE PLATE-FORMES EST LE SUJET DE CONCOURS ENTRE INDUSTRIELS, CHACCUN VEUT IMPOSER SA SOLUTION COMME STANDARD. LE STANDARD ISO A RÉGLÉ L’INTEROPERABILITÉ PHYSIQUES, LES SPÉCIFICATIONS EMV, GSM ONT RÉGLÉ L’INTEROPERABILITÉ D’APPLICATION. ON A INTRODUIT LES DIFFÉRENTES ARCHITECTURES DES CARTE À PUCES AU CHAPITRE 1, ON A VISITÉ L’INITIATIVE PC/SC AU DEUXIÈME CHAPITRE MAIS ON A DÉTAILLÉ ET EXPLICITÉ PEDAGOGIQUEMENT LES SPÉCIFICATIONS EMV AU TROISIÈME CHAPITRE. LE CINQUIÈME CHAPITRE, RACONTE L’HISTOIRE DES STANDARDS ET DES SPÉCIFICATIONS, PUIS IL TRAITE LE PROBLÈME D’INTEROPÉRABILITÉ D’UNE MANIÉRE ACADÉMIQUE ET POUR TERMINER ON DONNE UNE METHODOLOGIE POUR DÉVELOPPER DES APPLICATIONS SUIVIE D’UNE APPLICATION EXEMPLAIRE, TRAITÉ SOIGNEUSEMENT. VOUS ALLEZ DÉCOUVRIR , EN LISANT CETTE THÈSE, QUE LES ÉMETTEURS ET LES FABRIQUANTS NE SONT PLUS LES MAITRES DU JEU, CEUX SONT LES SOFTWARE PROVIDERS QUI VONT PRENDRE LE RELAIS.

...............................................................................................................2 Producteurs et prix.............................................................................................................................................................................................................................35 Mécanismes de sécurité :...............................................................................................................28 Part IV.......................................................................................................................................................17 Application : ...........................................15 Sécurité et liberté personnelle (privacy) :..........................................................................................................................19 Services et fonctionnalité..............caractéristiques électromécaniques........................................................................31 i ................................................3 Commerce électronique :.................................................................................................................................................................................................................................Aspects de sécurité..................................................................................................................................14 ICCSP :. interface logique.................................................................................................28 Authentification dynamique :.......................15 Modèle :.......................................................................................................19 Historique..................................................................................................................................................................................................29 Messagerie sécurisée :..................................................12 ICC Resource Manager :..................................................................................................................................................................................................14 CSP(Cryptographic Service Provider) :.............................................................................................................................................................................................................................................................1 Evolution de l’industrie des cartes .....................................................................25 Commandes et réponses.........................................................................................................................6 LES SPECIFICATIONS PC/SC...............14 Uses Interfaces Elements (UI): ......................................22 Transportation physique des caractères......................................................................................21 Part 1 .....................................................................13 Le lecteur(IFD ou ICC reader device) :................................................................................................................................................................................. protocoles ...................................................................................................................................................................................................................................28 ..............................................................................................................................................................................................................................................................21 Session de carte :..................................13 Le SP(service Provider) :................................................31 Exemple d’échanges en mode T = 0 :..............................................................................................................................................8 PROBLÉMATIQUE...............................9 LES SPÉCIFICATIONS PC/SC..........................................................................................................................................................24 Part II...........................5 Carte à micro contrôleur :............15 Recommandations :....................26 Authentification statique :..25 Part III...........................................19 Opérations supportées.............................................................................................................................................................................................................................................1 Les cartes à puces et nous...........................................................................................................................................................................................................28 Données et fichiers ..............................................................................................19 INTRODUCTION ............................................................................8 INTRODUCTION....5 Carte à mémoire :...........................................................................................................................................................................................................................................23 Answer to reset.....................4 ARCHITECTURE DE LA CARTE.......Sélection d’application....................................................................8 LES OBJECTIFS............................................................................................................Données et commandes.........................................................................................................20 LES SPÉCIFICATIONS EMV ’96............................................................................................................................ELJABI HASSAN Cartes à puces DEA TABLE DES MATIÈRES LES CARTES À PUCES..........................................................................................................................................................................................................................................................................9 Architecture du système :........29 Annexes.....................................................................................................1 INTRODUCTION..............................................................................................................................................................................31 SPÉCIFICATIONS D’UNE APPLICATION ICC POUR SYSTÈME DE PAYEMENT..................12 L’IFD handler :.........................................................................................................................................................................................................................................................................................................................................................10 Le terminal :.............................................................................................................................................................9 La carte à puce (ICC) :...................21 Interface électromécanique :.........................................................................23 Protocoles de transmissions :.........................................................13 Considérations d’implémentation :.................................................................................................................................35 Généralité :....................................................................................12 Overview fonctionnel :.............................................................................................................16 LES SPÉCIFICATIONS EMV ET APPLICATIONS...................

62 REFERENCES.............................................................................................................................................................................................61 L’application :...........................................................................................3 ii .............................................................................................................................................54 Solution Microsoft.....................................................................................................................................................................................................48 Les données manquants ou erronées dans la carte................................................................................................................................................................................................................................61 Les registres EMV :....................................................................................................................................................................................................................37 Les données accessible par la commande Get processing option :..........................................................................................................................................................................................................................................................................................................................................................card script processing :....49 METHODOLOGIE D’APPLICATIONS...............................................................................................................................................................................................................................................................................................................................................................37 Flux de transactions :.......48 La fonction « Completion » :..........................................................................................36 Les données codées qui sont accessibles par la commande Get data :................................39 La fonction « Read application data » :.......................................................................................................................................................................................................................................................................................................................................................................................................................................................59 Décisions :.............................................................................................................................................................38 Les fonctions utilisées pour le traitement de la transaction :.................................................................................................................40 La fonction « Off-line data authentication » :...........................................................36 Les données codées qui sont accessibles par la commande Read record :.........................................................58 Objectif :..............................................47 Issuer -to..43 La fonction « Terminal risk management » :......................59 structure des fichiers :................................48 Generate AC ( 2ème émission) .........................................................................................41 La fonction « Processing restriction » :.............................................................................................................................48 Codage de la commande Generate AC :...................ELJABI HASSAN Cartes à puces DEA Les fichiers de la carte à puces..............58 Conception :...49 Generate AC ( 1ère émission) .............................................52 Comparaison entre MultOS et Java Card :..56 APPLICATION.....51 STANDARDS ET SPÉCIFICATIONS...............................................58 Carte logistique pour l’armée :......................................................................................................................................................51 Définitions :........................................61 Test :..................................................................55 MÉTHODOLOGIE ..............................................................................................................................60 Structure des données :..........................................................................46 La fonction « Online processing » :............45 La fonction « Card action analysis » :...............................................................................................................................43 La fonction « Cardholder verification » :.........................................................................................................................................................................................................................................................................................................................................................................................................51 Interopérabilité.......................................................................................58 Recommandations :..........................44 La fonction « Terminal action analysis » :..................................................................................................................................................................38 La fonction « Initial application processing » :...................................

ELJABI HASSAN Cartes à puces DEA REMERCIEMENTS L’auteur voudrait avant tout remercier : M. M . M. iii . Ahmed SERHROUCHNI qui m’a conseillé. Samir TOHME qui m’a proposé ce sujet de DEA. et accueilli dans son groupe de recherche à l’ENST de PARIS. Maroun ASMAR qui nous a offert cette opportunité et qui nous a encadré durant toute l’année. dirigé et orienté dans mon travail.

Concaténation : deux éléments sont concaténés par l’adjonction des octets du deuxième à la fin du premier . iv . Une liste peut être concaténée par la concaténation la1er paire d’éléments de la liste pour former un nouvel élément.ELJABI HASSAN Cartes à puces DEA LEXIQUE Authentification : pour s’assurer que la carte appartient à une famille de carte.. DSA.) • à clé publique (RSA. et ça sert à déchiffrer une signature pour qu’on la compare au document original. Clé publique : c’est la deuxième clé déjà publiée. l’une est gardée secrète . Clé privée : les algorithmes cryptographiques asymétriques sont dotés d’une paire de clés . Batch card : est fournie avec chaque lot de cartes. l’autre est publiée. où un ou plusieurs circuits intégrés y sont encastrés. 3DES. elle sert à chiffrer des messages destinés à celui qui a la clé privée. qui sert à faire des traitements ou à mémoriser des données. . puis on recommence de nouveau jusqu’à ce qu’il n’y a qu’un seul élément dans la liste . Clés : sont utilisées par les algorithmes cryptographiques pour : • chiffrement/déchiffrement • calculer des certificats et des signatures • vérifier les certificats et les signatures • messagerie sécurisée on distingue deux types d’algorithmes : • à clé secrète (DES..) clés (types de ) : • clé d’authentification :utilisée par les commandes d’authentification • clé d’administration : utilisée pour calculer une clé administrative temporaire ou pour un message sécurisé. La première est la clé privée. et il sert aussi à chiffrer des messages (ou leurs hashs) et ça représente une signature que tout le monde peut déchiffrer avec la clé publique pour retrouver le document original(c’est seulement celui qui détient la clé privée est capable de faire un tel document chiffré). Elliptique. . il contient la clé « master key » Carte à puce : une carte .. elle sert à déchiffrer le message que les autres ont chiffré avec la clé publique déjà publiée ( et c’est seulement celui qui détient la clé privée est capable de déchiffrer un tel message)..

puis on le relache.ELJABI HASSAN Cartes à puces DEA • clé de paiement :utilisée par les commandes de payements et pour calculer la clé de certification temporaire. identité du détendeur. puis. • clé de log :c’est une clé de paiement qui peut être utilisée pour messagerie sécurisée • clé de signature : c’est une clé de paiement spécialisée pour le calcule de signature.. on l’alimente (en appliquant Vcc et CLK) tout en maintenant le Reset.) Initialisation (phase d’initialisation) : l’architecture de la carte est bien définie : • des données sont écrites dans la mémoire pour que la carte soit spécifique à une application • création des codes secrets. Codes secrets : sont utilisés pour protéger : • accès aux fichiers(read/write/update) • fonctions financières(read balance/débit/. pour vérifier l’identité de la carte ( N° de série. on y écrit le N° de série de la carte et la référence de l’émetteur. Identification : après l’authentification.. génération des clés. Certificat : est utilisée pour valider une transaction de paiement. v ..) • commandes administratives(create file/.. Cryptogramme : est utilisé pour vérifier l’intégrité d’un message. un seul secret code est créé sous un DF. on suppose qu’on ne peut pas retrouver le document original à partir d’un Hash ni trouver un autre document qui donne ce même Hash. alors votre code fonctionne si vous l’introduisez en majuscule ou en minuscule).) On peut présenter le code secret (8 octets) à la carte sous forme claire ou chiffré. Hash : c’est le résultat de la fonction qui transforme un document en une suite de bit de longueur fixe (quelle que soit la longueur du document original). elle le compare au code secret stocké dans EFsc (4 octets seulement.. Fonction : un processus accompli par une ou plusieurs commandes et les actions résultantes. Attention : seulement. Cold Reset : on applique le Reset sur une puce non alimentée. elle est utilisée pour exécuter toute ou une partie de la transaction Gaufrage (embossing) : caractères élevés en relief de la surface de la carte... Fabrication (phase de) : la mémoire de la carte est vide .

Il comprend l’interface device(IFD) et d’autres composants et interfaces tels qu’un serveur de communications. son N° de souscription. Transaction financière : c’est l’acte entre le détendeur de la carte et un marchand ou un acquéreur pour échanger des biens ou services contre paiement. d’avoir une preuve de l’origine et de l’intégrité des données. Script : une ou une série de commandes transmises par l’émetteur dans le but d’être reçues par la carte et d’être exécutées en série.. Sécurité EMV : le service "sécurité" est assuré par les fonctions suivantes : • authentification carte/terminal • messagerie sécurisée pour la transmission des commandes administratives • générations des certificats de payement et signatures • utilisation des cryptogrammes pour les commandes de paiement Terminal : l’équipement utilisé en conjonction avec la carte pour exécuter une transaction . Personnalisation (phase de) : on ajoute à la carte des informations concernants le détendeur de la carte : son nom. Et elle protège l’envoyeur et le receveur de données des contrefaçons d’un tiers.. Signature digitale : c’est une transformation cryptographique asymétrique de données qui permet à celui qui reçoit les données . . vi . Interface Device : la partie du terminal dans laquelle on introduit la carte . Warm Reset : c’est le reset qu’on exécute sur une carte en état de marche (alimentée et connectée à l’horloge). appelée Lecteur Non répudiation : pour garantir que les transactions réclamées représentent des transactions réelles en ne laissant aucun marge pour répudiation. son N° de compte.ELJABI HASSAN Cartes à puces DEA Intégrité des données : c’est la propriété que les données ne sont pas altérées ou détruites d’une manière illégale Intégrité (service d’ ): pour s’assurer que le message n’a subi aucune altération entre la carte et le terminal.

ELJABI HASSAN Cartes à puces DEA vii .

APDU : Application Protocol Data Unit ARPC : Authorisation Response Cryptogram. DDOL : Dynamic Data Authentication Data Object List. EF : Elementary File ou fichier élémentaire. etu : Elementary Time Unit. DEA : Data Encryption Algorithm. DES : Data Encryption Standard. CLK : Clock ou horloge. CDOL : Card Risk Management Data Object List. E/S : Entrée/Sortie. AC : Application Cryptogram. BER : Basic Encoding Rule. viii . AEF : Application Elementary File. ATM : Automated Telling Machine. AFL : Application File Locator. ARQC : Authorisation Request Cryptogram ATC : Application Transaction Counter. AAR : Application Authorisation Referral. DIR : Directory ou Répertoire. ECC : Elliptic Curve Cryptosystems (système à clé publique). C-TPDU : Commande TPDU CVM : Cardholder Verification Method DDF : Directory Definition File. FCI : File Control Information. AID : Application Identifier. ACK : acknowledgement. ATR : Answer to Reset. CLA : Octet de classe dans une message de commande.ELJABI HASSAN Cartes à puces DEA LISTE DES ABREVIATIONS AAC : Application Authentication Cryptogram. DF : Dedicated File ou fichier dédié. ADF : Application Definition File. C-APDU : Commande APDU.

Value. IC : Integrated circuit ou circuit intégré. RSA : Algorithme cryptographiques à clé publique. TC : Transaction Certificate. RID : Registered Application Provider Identifier. RFU : Reserved for Future Use. ix . TLV : Tag.(transformation cryptographique symétrique ) MF : Master File . Length. Vpp : Programming voltage. ISO : International Organisation for Standardisation. IFD : Interface Device (voir lexique) ou lecteur. PSE : Payment System Environment. POS : Point Of Sale. TVR : Terminal Verification Result. Vcc : Supply voltage ou tension d’alimentation. INS : Octet Instruction dans le message commande. TDOL : Transaction certificate Data Object List. MAC : Message Authentication Code. RST : Reset. R-TPDU : Réponse TPDU. GND : Ground. SFI : Short File Identifier. TTL : Terminal Transport Layer. TPDU : Transport Protocol Data Unit. la terre ou la masse. ICC : Integrated circuit card ou carte à puce. R-APDU : Réponse APDU. SW1 : Status word one SW2 : Status word two. PTS : Protocol Type Selection. TAL : Terminal Application Layer. PCMCIA : Personal Computer Memory Card International Association PDOL : Processing Data Object List.ELJABI HASSAN Cartes à puces DEA f : la fréquence.

et on ne voit pas de limite à ces applications que celle de notre imagination. Quelle que soit la nomenclature. la tendance est de remplacer les cartes dans votre portefeuille par une carte unique sur laquelle coexistent plusieurs applications appartenants à plusieurs institutions. Mais il y a deux contraintes :  contrainte technique : on est limité à 25 mm 2 de puce encartée selon le standard ISO-7816 . Sécurité : les cartes d’accès à un système informatique ou aux bâtiments.. Mais le progrès technique est promettant . • Dans le domaine privé :   télécommunication : les cartes GSM. Péages : TV payant . Les cartes à puces ont commencé à envahir la plupart des secteurs de notre vie : • dans le domaine public : on cite les permis de conduire électroniques et les cartes d’aide sociale (welfare) aux états unis . qui ont déposé leur brevet de carte à semi-conducteurs en 1974 . c’est la course aux cartes multi-prestataires (appelées aussi multifonctions. multi-applications...   On prévoit que les cartes à puce vont remplacer les tickets de voyages. carte à puce 1 .. « purses électroniques » . décodeurs des chaînes satellites . ce qui faciliterait les programmes de loyauté aux compagnies aériennes . ont-ils imaginé ces applications de nos jours ? Aujourd'hui. aux programmes de loyauté aux grands magasins .) . Il y a aussi d’autres solutions : cartes à multipuces . Monétique : les cartes bancaires dont les applications vont du débit.ELJABI HASSAN Cartes à puces DEA Chapitre 1 LES CARTES À PUCES Introduction. crédit. les cartes de sécurité sociale et d’assurance maladie(78millions cartes émises en Allemagne et bientôt en France) .. carte optique à puce (ISO-11693/4). Beaucoup d’autre application vont voir le jour . multiissuer. on est maintenant à 30 k Octets d’EEPROM . multi-branded. Les cartes à puces et nous. Est-ce que Roland MORENO et la société INNOVATRON .

dimensionnelles ou carte à puce ayant un certain disque souple encastré . unités prépayées à France Telecom. 1983 : France Telecom lance sa télécarte à puce.ELJABI HASSAN Cartes à puces DEA avec barres codées bi. 1984 : BULL et PHILIPS signent un accord permettant à ce dernier d’utiliser le composant BULL/MOTOROLA. Europay .. Résultat d’une coopération entre BULL et MOTOROLA.) et on perd l’irrécupérable (points de fidélité Monoprix. Evolution de l’industrie des cartes . Aujourd’hui : plus d’un milliard de cartes à puces sont lancées par 23000 émetteurs dans le monde. 1981 : première carte à microcontrôleur monochip chez BULL (l’ancêtre de la gamme CP8 ). 1982 : projet IPSO du GIE carte à mémoire (créé en 1980 par la DGT et par des établissements financiers) . voir plus loin). spécifications assurer leur ∗ ∗ ∗ ∗ ∗ ∗ ∗ L’industrie de télécommunications déploie la majorité des cartes à puces pour l’utilisation en GSM .. . radio mobile et PCS (personal communication service) . et le pire la monnaie prépayée Mondex).  contrainte logistique : les conséquences de perte d’une carte contenant trop d informations sont graves : il faut du temps et des nerfs d’acier pour récupérer le récupérable (carte de crédit. assurance maladie. 1979 : première carte composée de deux puces (3870 et 2716) . 1976 : CII Honeywell-Bull a pris la licence de brevet INNOVATRON et ont adopté le terme carte à microcalculateur . permis de conduire. points de loyauté FNAC. C’est vraiment grâce aux efforts des associations des cartes de crédit internationales : ils ont fait des cartes de crédit un outil de confiance et fiable. La demande augmente de 40% chaque année. ils ont convaincu les commerçants à adopter leur système de paiement (sauf en Atlanta 1996. Philips-Data systems et Flonic-Schlumberger) et c’est la carte CP8 de BULL qui a été retenue. Les gens sont plus à l’aise à l’égard de cette nouvelle idée de stocker la monnaie en un format autre que celui de billets et de pièces. on a testé 3 types de cartes (BULL. MasterCard et Visa ont formulé des techniques (EMV) pour cartes et lecteurs pour compatibilité. En effet cette carte sert à l’identification sécurisée et au paiement des appels. kilomètres volés avec Air France. ∗ 1974 : brevet déposé par Roland MORENO et la société INNOVATRON portant sur un système basé sur l’utilisation de cartes à semi-conducteurs . En effet les producteurs des cartes sont en majorité européens 2 . On croit que cette industrie de cellulaire a sauvé celle des cartes à puces.

L'avance technologique dans la production... Aujourd’hui . les fabriquants de lecteurs : Dassault. Orga. Siemens. Swatch lance cette année ses montres contact/contactless en extrême orient). NEC. . . une carte à puce synchrone càd à mémoire (télécarte par exemple) coûte moins que 3 FF et on prévoit que ça va tomber audessous de 2 FF d’ici la fin du siècle . Schlumberger. . en Russie et même en Chine. Producteurs et prix. Les concurrents de la carte à puce. Ingenius. Sclumberger. Les principaux participants à l’industrie des cartes à puces sont : 3 . ODS. les fabricants de cartes à puce : BULL. (Dallas a vendu des millions de ses i-buttons et java rings en Australie . Toshiba. GPT. Une carte à puce asynchrone càd à microcontrôleur (carte bleue par exemple) coûte entre 30 et 40 FF et ça doit descendre à moins de 20 FF dans cette période. La diminution du prix de la puce (c’est normal . Gemplus-Datacard. Thyron. Motorolla. les fabriquants de semi-conducteurs : Hitachi.. Verifone/HP.. elle a diminué de taille).ELJABI HASSAN Cartes à puces DEA et surtout français (Gemplus. Plusieurs facteurs ont contribué à cette réduction de prix : • • • • • • L’augmentation du nombre des cartes produites. IBM. SGT Thomson... Bull. OKI. Tandis qu’une carte à puce multifonctions dotée d’un co-processeur cryptographique coûte plus que 60 FF (c’est un nouveau produit quand même). Giesecke&Devrient. Hypercom. Schlumberger) et leur expansion aux Etats unis et en Australie est freinée par celle des « Personal Electronic Tokens » .

Siemens. concepteurs de Masque et OS : BULL CP8. dont la version B0 n’est autre que la carte bancaire française à puce. Digicash. mais une nouvelle génération commence déjà à prendre le relais sous la forme du nouveau masque B0´(B0´est propriété de la communauté bancaire). Commerce électronique : Le commerce électronique est une transaction monétaire électronique sans papier ( pas de signatures. Toppam-Moore. il y a une centaine de sociétés qui conçoivent des masques . la monnaie électronique est transférée d’une manière sécurisée sur les lignes de communications. Setec OY. fabrique la puce. produit la carte. Shell oil. . US3. dans une telle transaction. et par conséquence les comptes sont ajustés automatiquement. La carte à puces est la clé électronique qui va ouvrir un monde de services. ils le font adapté à leur puce et orienté vers une application bien déterminée. Banque de Montréal. De toute façon. pas de facture rien de cela et même. En effet. Gouvernement d’Allemagne. la plupart des fabricants de cartes à puces conçoivent leur propre système d’exploitation COS ( Card Operating System par analogie à Disc Operating System DOS). Il est facile de distinguer les cartes B0 des cartes B0´par le fait que ces dernières portent normalement une puce à position ISO (dite « centrée ») et ne possédant que 6 contacts au lieu de 8. Bell Canada. Certaines compagnies s’occupent de tout : Siemens par exemple. Une banque peut acheter la carte chez n’importe quel producteur . en effet la carte peut assurer les services suivants :     l’identification du client la sécurisation de la liaison de communication l’authentification de la formalité de paiement l’intégrité des informations traversants le réseau 4 . US Military. . l’application et le software de sécurité . Notons que s'il y a quelques dizaines de producteurs de cartes à puces. SCS. FMNT. IBM. pas de reçu. le masque.. les émetteurs de cartes à puces : American Express. G&D. la carte BULL CP8 la plus répandue est sans conteste la M4. Visa. Gemplus. conçoit l’OS.. Par exemple. Racom. ODS.. First Union Bank.. pas de chèques. il n’est pas obligatoire que le marchand et le client se rencontrent.. en lui demandant de le masquer avec B0´.ELJABI HASSAN Cartes à puces DEA • • • concepteurs d’application (software) : De la rue. Orga..

la carte assure un nouveau service qui est le porte-monnaie électronique (appelée aussi : e-cash ou electronic purse). avec VISA Cash. fichiers. ROM (contenant des programmes fixes. Architecture de la carte Carte à micro contrôleur : C’est la carte intelligente (Smart Card SC). Les questions posées pour choisir une puce convenable : ∗ ∗ ∗ ∗ ∗ ∗ type et utilisation des mémoires (RAM. elle a un microprocesseur 8 bits (il y a des prototypes à 32 bits GemXpresso par exemple). La figure suivante nous montre les éléments principaux d’une puce (25 mm 2 ) : CLK ROM OS.. . MasterCard Cash. protocoles de communications vitesse (débit) nécessité d’un co-processeur. Alors. une mémoire RAM (128 à 256 octets). ROM. c’est le Hard disc de la carte) et un port E/S appelé UART (Universal Asynchronous Receiver/ Transmiter) qui communique avec le monde extérieur selon des protocoles standardisés par l’ISO . choix de l’OS. RESET E/S 2 (option) Eléments principaux d’une puce.. 5 . choix du masque (la partie de l’application résidente dans le ROM ). CPU Vss coprocess eur Entrée/Sor tie programma ble E/S 1 Tempo. Proton.ELJABI HASSAN Cartes à puces DEA  la non répudiation maintenant . Mask. EEPROM). données. Vdd RAM scratch pad EEPROM répertoires. la carte stocke des valeurs dans sa mémoire (stored-value card system). EEPROM (de 1 jusqu’à 64 k octets. codes. c’est le DOS de la carte).

Exécutée à l’insu de la plupart des usagers. la T2G est plus sûres que la T1G. On va traiter seulement les cartes avec contacts. et attention. Télécarte T2G (2ème génération) : France Telecom a imaginé en 1989 de passer en CMOS. Ces nouvelles Télécartes sont équipées d’une puce ST1332 ou ST1303 (Thomson) à 6 contacts. cette opération se traduira un jour par la péremption des T1G encore en circulation. Et comme on va traiter l’EMV qui est orienté transaction bancaire. TMS3561 (1986) de Texas ou TS1001 (1987) de SGS-Thomson. Carte à mémoire : Les cartes à mémoires ou synchrones étaient conçues pour emmagasiner des informations ou des valeurs . Une telle carte fournit au ∗ ∗ 6 . 5 mm de distance entre la carte et le lecteur ) et les cartes remote coupling (ISO 1443. Grâce à un mécanisme d’authentification par certificat et calcul de signature à partir des clés secrètes internes. après une phase d’expérimentation sur 100000 cartes fin 1993. les cartes sans contacts (ISO-10536. Toutes ces puces sont à 8 contacts.ELJABI HASSAN Cartes à puces DEA Pour obtenir le maximum de fonctionnalité en une surface de puce bien limitée. elles sont utilisées pour des applications tels que cartes de téléphones prépayées et à jeter : ∗ Télécarte T1G : c’est la télécarte actuelle en France. 5 m de distance entre la carte et le lecteur)sont intéressantes pour des applications telles que: accès au transport public ou aux lieux de travail (contrôle d’heures d’entrée et de sortie des employés ) et ça nécessite un mécanisme d’anticollision comme en LAN. il faut un compromis de choix entre différents types de mémoires(on ne peut pas avoir tout). Les commandes ISO d’une telle carte sont : Select_file Log_Record s Envelope Read_Binary Update_Rec ord Write_Binary Get_Data Update_Bin Erase_Bina ary ry Put_Data Verify Read_Recor ds Get_Challen ge Write_Recor ds Get_Respon se Manage_Channel Internal_Authenticate External_authenticate Les commandes ISO. il est évident qu’on ne va pas utiliser de telles cartes pour faire une transaction bancaire collectives à 5 mètres de l’ATM ! Notons que les cartes hybrides (contact/contactless) ne sont pas encore standardisées. sa mémoire est du type EEPROM (celle de T1G est EPROM). elle est équipée par l’une des puces suivantes : ET1001 (1983). La 3ème génération est apparue au Canada et aux états unis (toujours sans microprocesseur). l’adaptation de l’ensemble du parc de publiphone à cartes est maintenant achevée. un co-processeur est équipé d’une ROM et un masque.

7 .ELJABI HASSAN Cartes à puces DEA lecteur du téléphone un PIN ..) qui va authentifier la carte et procéder à la decrémentation. MCI.. et c’est l’opérateur concerné ( AT&T. Bell. .

médicales  Traitement  ...ELJABI HASSAN Cartes à puces DEA Chapitre 2 LES SPECIFICATIONS PC/SC Personal Computer/Smart Card Introduction. Outre que la carte à puce ICC est un équipement de stockage sécurisé pour informations sensibles tels que : clés privées . Microsoft .. . . HP ... des valeurs Schéma fonctionnel de la carte à puce(ICC) Problématique Le groupe de travail PC/SC constitué de CP8(Bull) . Schlumberger et Simens a développé ces spécifications pour faciliter l’Interopérabilité nécessaire.elle est dotée d’une fonction de traitement autonome capable de gérer ces informations sans les exposer au monde extérieur .. crédits prépayés ).Ce qui est vraiment important pour certaines applications telles que : génération des signatures digitales . l’utilisation de la carte à puce (ICC) dans l’environnement PC est marquée par manque d’interopérabilité sur plusieurs niveaux : 8 . utilisation des clés privées pour authentification . numéros de comptes . En effet. informations médicales .. mots de passe . traitement des représentations électroniques des valeurs (monnaies électroniques .. ICC Stockage Traiteme  Clés  Numéro de  Mots de passe comptes  Génération  Utilisation des clés privés des signatures digitales  Information  . La carte à puces est une plate-forme sécurisé idéale pour les applications nécessitant une haute sécurité et une fonctionnalité de confidence . à voire la compatibilité de technologie des cartes à puce (ICC) avec l’environnement PC.

Donc une application écrite pour un lecteur X est incompréhensible à un lecteur Y. Indépendance de la plate-forme. Architecture du système : ICC-Aware Application Service Provider ICC Ressource Manager Canal E/S : Handl er RS 232 Lecteu r Handl er PS/2 Lecteu r Handl er USB Lecteu r IFD I C C IFD I C C IFD I C C Une carte(ICC) Architecture du système dans son lecteur(IFD) 9 . chaque fois qu’il utilise une nouvelle application. Les objectifs. dépendantes de l’implémentation spécifiques de l’ICC c à d une application qui fonctionne avec un ICC. Cette spécification cherche à réaliser les objectifs suivants : • • • • Maintenir les standards relatifs à l’ICC et au PC déjà existants. Indépendance de l’application. Ce qui rend les applications.ELJABI HASSAN Cartes à puces DEA ⇒ Pas de standard pour l’interface PC/ lecteur (Interface Device IFD). Les spécifications PC/SC. ne peut l’être avec une version améliorée de ce même ICC.(Le software de l’application reste le même avec l’avance technologique). Indépendance du vendeur (produit). L’encapsulation des interfaces ICC permet à plusieurs applications de partager le software de l’interface bas niveau. L’utilisateur est alors obligé de changer son lecteur. ⇒ Pas de standard pour interface de programmation haut niveau pour les fonctionnalités connues des ICCs .

La tension d’alimentation est 5 V .ELJABI HASSAN Cartes à puces DEA La carte à puce (ICC) : la carte à puce . si ça ne marche pas il informe le SP. la carte à puce doit être conforme physiquement et électriquement au standard de l’ISO 7816-1. L’IFD refuse n’importe quel protocole par défaut s’il n’est pas conforme. On n’a pas besoin que la carte demande l’authentification du monde extérieur.3 .cette fameuse carte en plastique de la taille d'une carte de crédit avec un microprocesseur encastré . c’ est au lecteur de détecter la présence des cartes à 3 V.Tandis qu’en ISO 7816 ou en EMV c’est la responsabilité du transmetteur(T=0) ou de TTL(T=1) càd on ne trouve pas cette discrimination entre la couche transport et celle de liaison de données. les protocoles suivants sont conformes : T=0 . il essaye la retransmission 3 fois . • C v PP 6 est présente. Les caractères en état de transite sur le port E/S sont de 10 bits :1 start bit (bas). L’organisation (Mapping) des APDUs en protocole T=0 ou T=1 est la responsabilité de l’ ICC et du TTL/SP(la couche Transport du Service Provider). Seulement. • Et ils ajoutent aux recommandations ISO-7816 les recommandations suivantes : • • Les lecteurs « loading contacts » sont recommandés . • On comparant avec l’ISO-7816 on note les nuances suivantes : • • • 10 . Si elle doit être isolée électriquement). C’est à dire .( l’ICC exigeant n’est pas conforme à ces spécifications. (C'est le niveau transport).est une plateforme sécurisée qui offre une variété de service . On recommande l’absence de TA2 dans l’ATR. D’après ces spécifications . ils reprennent exactement les recommandations ISO7816 mais avec les restrictions suivantes : • Pas de voltage de programmation v PP . Le sous-système IFD supporte la couche liaison de données :il détecte les erreurs de parités (T=0).2. cette spécification sera mise à jour. T=1 et Synchrone(optionnelle).( L’ICC peut négocier la mode d’opération). Lorsque le comité de l’ISO 7816 déterminera les méthodes.(Les lecteurs swiping contacts ne sont pas interdits). allant du stockage sécurisé des données jusqu’aux services cryptographiques. les erreurs de protocole et perte de synchronisation(T=1). car le PC appartient au détenteur de la carte. 8 bits de données et 1 bit de parité.

ELJABI HASSAN Cartes à puces

DEA

Les commandes sont toujours du lecteur vers la carte , c’est le SP qui les génère à la demande de l’application. L’IFD doit traiter ces commandes C-TPDU (la commande et les données associées en un seul bloque ) L’IFD émet seulement l’entête de la commande (CLA, INS, P1, P2, P3)et attend l’octet de procédure :si c’est un ACK, il commence à envoyer les données étapes par étapes , mais si c’est un SW1= 0x6x ou 0x9x, il l’envoie au SP pour interprétation. Ce qui diffère cette spécification de l’ISO 7816-4 et de l’EMV.

On retrouve ici le même scénario : Une fois la carte insérée , le lecteur lui applique un RESET à froid, la carte répond en émettant une trame ATR(Answer To Reset) d’une façon : asynchrone, semi-duplex et une durée de bit (etu ou elementary time unit) = 372/f avec 1<f<5 MHz. Cette trame ATR définit le protocole de transmission, la convention du codage (directe ou inverse) et les paramètres(débit, espacement entre caractère, négociabilité du protocole,...) : • Si la carte (ICC) retourne une séquence ATR non conforme, le lecteur (IFD) est obligé quand même à continuer avec le protocole et les paramètres y existants par défaut. • Si la carte (ICC) ne retourne pas une séquence ATR , alors 2 cas se présentent : 1. 2. La carte est mal insérée ou bien elle est en panne. L'application ne supporte pas ce type de cartes (cartes synchrones par exemples). Le lecteur (IFD) doit envoyer à RM le message « cette carte ne fonctionne pas » . C’est le RM qui gère le problème. Reset
Une fois la carte est insérée, le lecteur (IFD) lui applique le signal RESET en même temps qu’il la met sous tension. Négociation du type de protocole : Si le lecteur est équipé de l’option « sélection explicite du type de protocole, il envoi cette requête PTS.

IFD

RESET ATR
Requête PTS Réponse PTS

Réponse à RESET La carte émet la ICC séquence ATR définissant sa mode d’emploi :type de carte, protocole utilisé, convention, débit,.... La convention directe: le 0 logique est 0 V, le 1 logique c’est +V, le bit le moins signifiant de l’octet est envoyé en premier. La convention indirecte :c’est le contraire carte synchrone : carte à mémoire. Carte asynchrone: carte à microprocesseur

11

ELJABI HASSAN Cartes à puces
Handshacking et négociation du protocole à utiliser durant cette transaction.

DEA

Le terminal : Dans ces spécifications, la fonctionnalité du terminal (aussi appelé sous système IFD) est différente d'autres spécifications .En effet le sous-système IFD consiste en : • • • Une interface avec la carte à puce. Un canal E/S contrôlé par un « driver » des E/S du côté PC. Un software « IFD handler » dans le PC.

Le lecteur(IFD ou ICC reader device) : L’IFD joue le rôle d’une interface physique à travers laquelle la carte à puce communique avec le PC : à l’aide de ses contacts électriques, il assure l’alimentation, l’horloge et une ligne E/S à la carte à puce. Il communique avec le PC à travers un canal E/S. En effet l’accès physique au PC se fait par le biais du port série(RS232), du port clavier(PS/2), du port USB ou du port PCcard(PCACIA). Le protocole de communication de l’IFD avec le PC est de 3 couches :

Couche de fonctions Couche de contrôle

Software du client driver de l’équipement E/S

Commandes et réponses de l’IFD

Les fonctions de l’IFD contrôle du Canal E/S

Paquets de données

Couche physique

Contrôleur du canal E/S

bits

Contrôleur du canal E/S

Côté PC

Côté Lecteur

Protocole de communication entre PC et Lecteur .

L’IFD handler : Ce software, lancé dans le PC , il fait implémenter un standard indépendant du hardware et une interface indépendante du canal E/S dans le sous-système IFD. Le sous-système IFD est responsable des 2 couches physique et liaison de données : Un IFD intelligent (supportant la couche liaison de données T=0 et T=1) nécessite un simple IFD handler. Tandis qu’un IFD moins 12

ELJABI HASSAN Cartes à puces

DEA

intelligent (ne supportant que la couche physique) nécessite un handler supportant la couche liaison des données T=0 et T=1, et la gestion des erreurs, etc... Le flux d’informations entre le SP et le sous-système IFD est indiqué par la figure

ICC Service Provider
T=0 C/R T=1 INF Info/Négo

Couche application (ISO 7816-4) Couche transport (organisation des APDU)

Soussystème IFD
Flux entre lecteur et SP.

Couche liaison des données (ISO 7816-3) Couche physique (ISO 7816-3)

ICC Resource Manager : C’est le responsable de la gestion des autres ressources relevant à l’ICC dans le système, et il supporte l’accès contrôle à l’IFD et à l’ICC (à travers l’IFD). Il résout 3 problèmes basiques dans la gestion d’accès à plusieurs IFDs et ICCs : • • • Il est responsable de l’identification et le traking des ressources. Il est responsable de l’allocation de ressources. Il supporte les primitives de transaction d’accès aux services existants dans un ICC donné.

Le système doit avoir un et un seul ICCRM. Le SP(service Provider) : Overview fonctionnel : Trois classes de service sont implémentées dans la plupart des ICCs : • • • Services de fichier. Services d’authentification. Services cryptographiques.

Ces services ont une fonctionnalité en commun .Par conséquent, il est très intéressant de standardiser des interfaces à ces services pour que la maintenance et le développement d’application deviennent plus aisés. Ces spécifications définissent de telles interfaces, aussi bien qu’une interface standard pour contrôler l’accès à un ICC.

13

.ces détails éliminent le besoin d’un développeur d’application d’avoir une connaissance des commandes de « mapping » et des paramètres de codage associés aux protocoles T=0 et T=1 de l’ISO..). fermeture d’un fichier. création. Il est possible d’implémenter les interfaces ainsi définies d’une manière convenable pour l’utilisation des langages de programmation orientés procédures (C. Le SP est divisé en 2 sous composants : ICCSP : Il est responsable de l’exposition des services non cryptographiques aux interfaces du plus haut niveau . CSP(Cryptographic Service Provider) : Il isole les services de cryptographie .. ouverture et annulation de fichier. Considérations d’implémentation : Le rôle de la SP est de faire abstraction des détails d’implémentation du niveau ICC..). services d’authentification et d’accès fichier) et des interfaces définies par le vendeur. . ICCSP Interface gestion de connexions Mécanismes de connexion et disconnexion de l’ICC..Cette exposition doit inclure des interfaces communes(gestion des connexions de l’ICC. gestion des attributs d’un fichier. Interface accès aux Interface authentification vérification du détenteur de la carte. Ces spécifications industrielles doivent standardiser ces interfaces..) aussi bien pour des langages de programmation orientés objets (C++. Pascal. Le CSP encapsule l’accès à la fonctionnalité de cryptographie apportée par un ICC spécifique à travers des interfaces de programmation de haut niveau. En particulier . GSM. authentification de l’ICC. Recherche d’un fichier par le fichiers nom. Java. Cette architecture supporte l’addition de telles interfaces. Les interfaces définies dans ces spécifications sont pour les services générale de cryptographie : 14 .ELJABI HASSAN Cartes à puces DEA Il y a d’autres services qui reflètent les besoins dans certains domaines d’applications spécifiques (EMV..(pour répondre aux régulations d’importation et exportation imposées par les gouvernements). Les interfaces. Ces interfaces exposées par le SP doivent être développées dans le contexte d’une plate-forme donnée.. et de les exposer d’une manière standard pour que le software de l’application puisse y accéder facilement. authentification de l’application à la carte. Ecriture/Lecture dans fichier.

3. 2.ELJABI HASSAN Cartes à puces DEA • • • • • • génération des clés gestion des clés signatures digitales hachages (condensât du message) services de chiffrement « bulk » import et exportation des clés Uses Interfaces Elements (UI): L’ICCSP et le CSP n’apportent aucun élément UI.une application peut utiliser les fonctions de la carte avec un certain degré d’indépendance d’un lecteur (IFD) spécifique. c’est le RM qui aide l’application à choisir le SP convenable.séparé. Modèle : Le SP convient au modèle PC individuel et au modèle client/serveur. le SP doit implémenter des UIs pour la gestion de CHV(si CHV existe)et pour des services tels que : • • • gestion de PIN et mot de passe. Et si on a plusieurs SP. Application : Cette partie décrit comment une application peut utiliser les fonctions apportées par l’ICC. accès administratif désactivation). à la fonctionnalité du CHV(activation et authentification du détenteur de la carte. En utilisant les 2 couches ICCRM et ICCSP . ou d’une carte (ICC) 15 .composé. Alors. 1 PC client Root HUB 3 HUB 2 Souris HUB HUB Lecteur Lecteur Lecteur Clavier Souris Téléphone Haut parleur Différentes configurations de lecteurs (USB) :1.dépendant.

cet accès est indirect.On assume ici que les données emmagasinées dans la carte appartiennent à l’utilisateur et doivent lui être accessible (dans certain cas.Donc c’est bien une plateforme indépendante .. IFD T=0 T=1 contrôleur Côté système Côté carte Echanges entre les 2 parties d’une application (oncard et offcard) Cdt Eljab i Hass an 1234 5678 9 Sécurité et liberté personnelle (privacy) : Notons que ces spécifications assument que les services et les fonctions apportés par l’ICC servent aux programmes d’applications du détenteur de la carte sur son PC.. Il peut accéder aux différents services en utilisant un API ou bien une interface modèle objet tel que C++. . . par exemple :la clé privée qui est utilisée pour la signature digitale)... Un développeur d’application n’a plus besoin de tenir compte d’aucune composante de gestion de l’ICC ou de l’IFD. . Java. .. Le but de ce document est la protection des données au profit de l’utilisateur . le vendeur peut implémenter la messagerie sécurisée pour qu’il puisse répondre aux besoins d’une industrie spécifique. les données que le PC cherche dans la carte sont en clair aussi. Ces standards sont orientés à la protection des données au profit de l’institut émettrice.. Dans cet environnement .. sont en texte clair. 16 .ELJABI HASSAN Cartes à puces DEA spécifique. qui doivent être stockées dans la carte.les données du PC .. . Ceci est en contraste avec les mécanismes définis pour les standards spécifiques aux industries. De toute façon. ICC-ware application Requêtes Réponse ICC application APDU SP OS . C’est pour cette raison la messagerie sécurisée définie par l’ISO/IEC7816-4 n’est pas utilisée ici... De même.

et Enhanced SSCRP. Echange de clés : RSA. inaccessible)..). IDEA.( y inclut les 18 commandes ISO ) : Commandes de sécurité : Verify. la commande est exécutable dans le fichier sélectionné si l’application s’est bien authentifiée auprès de la carte par SSCRP). Invalidate. Authentification de l’application à la carte : SSCRP. APP(application verification. Diffie-Helman. Unblock. Authentification du détendeur à la carte : CHV. Services d’authentification : les protocoles reconnus sont : Authentification du détendeur à un lointain serveur : Shared Secret Challenge-Response Protocol SSCRP. Signature digitale : RSA (clés de 512 bits min. Chiffrement symétrique : RC2. Change_Code. a obligé le groupe OC/SC à proposer les recommandations suivantes : Services cryptographiques : les algorithmes reconnus sont Hachage : SHA-1 (160 bits) et MD5 (128 bits). DF. . User_Auth. DES. Rehabilitate. Fichiers obligatoires (MF. fichiers cryptographiques (EFclés ). pas de restriction). Les commandes : 31 commandes sont recommandées. SAFER. EF. sinon l’application se bloque après 3 essais par exemple). Contrôle d’accès : ALW(always.. Fichiers spéciaux : EF spéciaux (EFchv .. de la carte : comme définie par le ∗ ∗ ∗ ⇒ ∗ ∗ Services de stockage : comme définie par l’ISO7816-4 : Fichiers de type : MF..) et DSA ( K p de 512-1024 bits. non répudiation. confidentialité. External_Auth. Get_Challenge.). ∗ ⇒ ∗ 17 . la commande est exécutable dans le fichier sélectionné si le détendeur introduit le bon code CHV. CHV(cardholder verification. Stockage sécurisé .ELJABI HASSAN Cartes à puces DEA Recommandations : La nécessité des fonctionnalités suivantes : 1) 2) 3) ⇒ ∗ ∗ ∗ ∗ ⇒ ∗ Identification et authentification Intégrité. Ks de 160 bits). RC4. NEV(never. Internal_Auth. . Authentification vendeur.

Load_Data. Sign_Data. Delete_File. Load_Export_Key. Delete_Key. Commandes administratives : Create_File. Export_Key. Read_Binary. Verify_Signature. Import_Key. Write_Binary. 18 . Update_Binary. Put_Data. Select.ELJABI HASSAN Cartes à puces DEA ∗ ∗ Commandes cryptographiques : Load_Pub_Key. Get_Response. Get_Data. Generate_Key. Get_Pub_Key. Hash_Data. Load_Verify_Key. Load_Priv_Key.

La moralité de cette expérience : il est possible de mettre plusieurs applications appartenant au même émetteur (carte de crédit Visa + carte prépayé Visa + VisaCash ) sur une même carte EMV. Opérations supportées. terminaux et applications . Citons ici que Dallas ( constructeur de boutons à puces) a élaboré le MAOS qui se repose aussi sur javacard . 19 . Mais le terminal peut traiter différents schémas de porte-monnaie électroniques. la version 3. Malheureusement .3k EEPROM et 128 RAM pour qu’elle puisse supporter une deuxième application. Tandis que Visa a fait parti pris en proposant l’open plate-forme qui se repose sur Javacard. Depuis 1994. Une carte à puces conforme EMV supporte les opérations suivantes : • Sélection d’une application : la carte doit avoir au moins 6k ROM. Visa a lancé sa carte prépayée durant les jeux olympiques d’Atlanta (été 1996) et c’était un vrai échec (de point de vue marketing). Europay a lancé sa carte prépayé CLIP en juin 1996 en Espagne. le consortium formé d'Europay (groupe de banques européens émetteurs de cartes) avec Mastercard et Visa a bel et bien travaillé sur des spécifications communes pour cartes à puces.ELJABI HASSAN Cartes à puces DEA Chapitre trois LES SPÉCIFICATIONS EMV ET APPLICATIONS Introduction Historique. EMV.0 de ces spécifications a vue le jour : un vrai chef-d’œuvre de 3 volumes traitant les caractéristiques physiques et électriques de la carte et du terminal. notons ici que javacard est le concurrent de Multos. mais pour des applications appartenants à des émetteurs différents il fallait une plate-forme multi-issuer : MasterCard a élaboré le Multos . Les porte-monnaie électroniques MasterCash de MasterCard et VisaCash de VISA ont été installées sur une même carte EMV lancée à New York City. pas de spécifications communes pour une application porte-monnaie électronique. En juin 1996 . MasterCash de MasterCard et VisaCash de VISA Conformément à ces spécifications EMV. l’architecture du terminal supportant les cartes multiapplications et une spécification pour une application traitant les transactions crédit/débits.

Services et fonctionnalité. On a introduit la carte à puce . Fonctions → Chiffreme nt Signatur e Contrôle Intégrité Authentificat d’accès ion mutuelle Bourrage Services ↓ Authentificati on Contrôle d’accès Confidentialit é Secret du flux Intégrité Non répudiation X X X X X X X X X X X X Tableau 1 Liste exhaustive des services de sécurité et des fonctions permettant de les assurer [LAM 89]. Sinon la transaction doit se faire online . • Gestion de risque de la carte : La carte peut faire passer la transaction en mode online quand la somme atteint un plafond ou si le nombre de transactions offline consécutives dépasse une certaine limite. comme une plate-forme dotée des fonctions pour rendre des services (voir le tableau ). Tandis que cette carte est présentée. • Authentification dynamique : quelle que soit la taille de la mémoire . • Authentification statique : si la mémoire est suffisante pour stocker le certificat de la clé publique de l’émetteur et les données signées de l’application. 20 .ELJABI HASSAN Cartes à puces DEA • Options de traitement : en utilisant les données propriétaires de l’émetteur qui se trouvent dans un ADF . •Cryptogrammes d’application : le chiffrement à clé secrète reconnu et utilisé par l’EMV est le DES. comme une plate-forme de stockage et de traitement. dans les spécifications GSM. Ceci permet à l’émetteur de faire sa gestion de risque indépendamment du terminal et en plus la carte peut garder une certaine somme « open to buy » en mode offline. mais la carte a éventuellement besoin d’un co-processeur pour signature RSA. dans les spécifications PC/SC . • Vérification du détenteur de la carte : possibilité de vérifier le PIN en mode offline (locale càd non connectée au réseau) et possibilité de bloquer et de débloquer une application sur la carte (chaque application a son propre PIN ). la carte peut refuser une transaction en jugeant son type ou la somme mise en jeu.

Les contacts C4 et C8 sont optionnels . Zone de gaufrage Position des contacts sur une carte ISO(85x54x0. il doit être électriquement isolé. et on les dénote RFU . interface logique. Ça en surplus des fonctions qui rendent des services. Bande magnétique : 3 pistes. Les spécifications EMV ’96.caractéristiques électromécaniques. on va l’introduire comme une plateforme capable de prendre des décisions. protocoles . Part 1 . 21 . 79/40/107caractères Vcc RST CLK Opt GND N/U E/S Opt. et si le contact C6 existe.ELJABI HASSAN Cartes à puces DEA Ici . remarque : les spécifications PC/SC prévoient une utilisation future pour C4 et C8 (une carte full duplex par exemple). dans les spécifications EMV . Interface électromécanique : Ceux sont les mêmes spécifications de l’ISO 7816-2 mais les anciennes cartes qui ont besoin d’un voltage de programmation Vpp=21 volts ne sont plus conformes ici dans ces spécifications .8mm) C1 C2 C3 Alimentation (Vcc) Remise à zéro (RST) Horloge (CLK) Tableau 2 C5 C6 C7 Terre (GND) Non utilisé E/S (I/O) CLK : la carte doit opérer correctement avec une horloge de 1 à 5 Mhz.(Ça correspond à un débit de 9600 bps). tandis qu’ici ils sont optionnels.

22 3. Et bien sure le détenteur de la carte peut carrément enlever sa carte à n’importe quel instant (sauf dans le cas où le lecteur est du type qui avale la carte) . Imaginons qu’on insère une fausse carte (un circuit imprimé de même taille que la carte à puce . il sert à prolonger les contacts de l’IFD vers l’extérieur). La carte à puce peut aussi demander l’arrêt de la session à n’importe quel instant.ELJABI HASSAN Cartes à puces DEA Remarque : on sait bien que les cartes de nos jours vont avec une fréquence d’horloge supérieure à 5 MHz et un débit de 115200 bps.) et comme ça la communication s’établit. le terminal doit détecter cette action (par le biais du microswitch) et terminer cette session . P2= le nouveau protocole. la carte répond par un ATR (answer to reset) qui sert à présenter la carte au lecteur (sa performance. Ça nous rappelle le système de repli automatique (automatic fallback) des télécopieurs (fax). 4. Exécution de la transaction. insertion de l’ICC dans l’IFD (ça active un microswitch). P1=vitesse demandée en Bauds (115200 bps par exemple) + la fréquence exacte en Hz. et si à l’autre bout de cette fausse carte on met un commutateur électronique (technologie MOS de préférence) qui sert à basculer le bus entre une vraie carte à puce et un portable (laptop). et si le terminal est capable de passer à ces grandes vitesses . le masque B0´ et l’ancienne carte bleue AFNOR (ancienne norme française où la puce était au coin supérieur gauche ) avait l'ancienne masque B0.. la carte doit avertir le lecteur de sa performance durant la session de handshacking (ATR). où une ancienne fax (9600 bps) peut communiquer avec une nouvelle fax (33600bps) en obligeant cette dernière à descendre au même niveau que la première.. la convention utilisée. Session de carte : Cette session comprend 4 étapes : 1. connexion et activation des contacts. Désactivation des contacts et enlèvement de la carte. l’IFD applique un reset à froid. Ça se fait à l’aide d’une ATR spécifique (mécanisme de double reset) ou par la commande « switch protocol » SWTPR dont l’APDU est le suivant : 80 14 P1 P2 00.Sinon . Eh bien les anciennes ne sont pas désavantagées avec ces spécifications. 2. Avis personnel : On verra par la suite que le terminal peut prendre la décision d’arrêter la session à n’importe quel instant et de passer directement à la dernière étape . protocole T=0. Rappelons ici qu'une carte bleue utilise la convention inverse. En effet . .. il le fera. un autre détenteur peut arriver au bon moment au bon endroit et il insère sa carte dans le bon trou et paf il se trouve en plein milieu d’une session qui ne lui appartient pas. le protocole utilisé.

De toute façon. Durant le handshaking. Un caractère est composé de 10 bits consécutifs :1 start bit + 8 bits de données + 1 bit de parité . Il prend la relève et continue la transaction avec la carte. TB1 concerne la Vpp. cette durée devient etu= F/D.f. On peut même imaginer un montage où le moniteur bascule le bus de tel façon que le portable remplacera le terminal.ELJABI HASSAN Cartes à puces DEA Un autre portable (ou le même) est branché en parallèle(des composants optoélectroniques de faible consommation feront l’affaire) sur le bus traversant le circuit imprimé. TS indique une convention directe ou inverse. TB1. la carte répond par une chaîne d’octets appelée ATR. après que le terminal a authentifié la carte . il faut que la carte reste alimentée durant toute la manipulation). T0 indique le nombre des octets historiques. la messagerie sécurisée résout ce problème (CLA= x4) : En effet . T0. 23 . Transportation physique des caractères. Mais par contre . Exemple : Si la carte supporte seulement le protocole T=0. le système de sécurité est presque parfait ( on est proche du One Time Pad si on oublie que quelqu’un peut accéder aux clés stockées). TC1 indique l’extra guardtime requis. TC1. Ce portable joue le rôle de moniteur pour nous exhiber la transaction et pour commander le commutateur au moment propice .(si un va et vient est nécessaire.SW2. la carte te corrige avec ses octets de statut SW1. au terminal. définissants certaines caractéristiques de la communication qui va être établie entre la carte et le terminal. Ces octets convoient des informations. une clé de session est générée et échangée sous forme chiffrée à l’aide d’une clé RSA stockée dans la carte. Après l'ATR. Je suggère l’utilisation d’un détecteur de présence de ce type de fausse carte qui mesure l’inductance des fils entre les contacts de l’IFD et ceux de la carte. l’ATR sera TS. mains rien n’est impossible . la durée d’un bit est etu=372/f secondes. Answer to reset Ayant subi le reset. le portable peut remplacer la carte . où f est en hertz et doit être comprise entre 1 et 5 Mhz . Ce qui est intéressant c’est que si tu émets une fausse APDU. Ce montage nous permet de remplacer une carte par un portable ou une carte par une autre carte à un moment déterminé au cours d’une session : par exemple . On va voir dans la suite les procédures d’authentification introduites par l’EMV : elles compliquent la vie aux hackers. il y a des manoeuvres qui font bloquer la carte comme si on essaye d’introduire un faux code secret plusieurs fois. Tant que l'hacker ne connaît pas les clés stockées dans la carte .

orientés application. • • • • • 3. celui de gauche indique si la commande est ISO ou propriétaire EMV. elle est commune aux 2 protocoles. Le terminal doit supporter les deux.  8x instruction propriétaire EMV.  0x instruction ISO. Couche application : s’occupe de l’échange des messages conformément à un protocole d’application qui est commun aux 2 protocoles de transmission. au moins. l’un des deux. Ces protocoles sont définis suivant le modèle à couches : 1. 4. orienté caractère). détection et correction d’erreur. qui sera organisé par la TTL en un C-TPDU (voir plu loin). détection et correction d’erreur.  xC message chiffré.  x4 message chiffré. En effet la TAL émet un C-APDU. C-APDU= command application protocol data unit CLA classe de l’instruction : +ISO/EMV +claire/chiffr ée INS code de l’instruction P1 paramètre additionnel spécifique à l’instruction P2 P3 paramètre longueur des additionnel données spécifique à émises ou l’instruction des données prévues Tableau 3 Entête de C-APDU le 1er octet CLA =le demi octet droite indique si le message est claire ou chiffré . échange des caractères . commune aux 2 protocoles. spécifique à T=1. formé d’une entête de 5 octets et des éventuelles données. 2. et le protocole T=1(semi-duplex. codage BER-TLV. Le 5ème octet P3= 24 . Couche liaison des données : divisée en sous couches : structuration des caractères. Couche physique : s’occupe des échanges des bits.ELJABI HASSAN Cartes à puces DEA Protocoles de transmissions : deux types de protocoles sont définis ici :le protocole T=0(semiduplex. spécifique à T=0. Une commande est toujours émise de la couche application du terminal TAL vers la carte par l’intermédiaire de la couche transport TTL (le rôle de la couche liaison n’est pas trop précis comme il l’est en PC/SC). orienté bloc). spécifiques à chaque protocole. spécifique à T=1. spécifique à T=0. La carte EMV doit supporter. n’utilisant pas le codage BER-TLV. Couche transport: s’occupe de la transmission des messages. l’entête de la commande est inclut dans le calcul du MAC.  x0 message clair. échange des blocks .

 6x ou 9x (sauf 60) : c’est un mot de statut SW1 : TTL . Données : Nous appelons : une « donnée élémentaire » la plus petite pièce d’information identifiable par un nom. encapsulant une donnée élémentaire . INS P1 P2 Lc Donnée s Le Tableau 4 C-APDU contenant des données et prévoyant aussi. elle est constituée d’une étiquette Tag . description du contenu. (TTL . soit prêt à recevoir le IN S : K prochain octet de données ou l’octet prochain doit être transféré par TTL). attends : un autre octet de procédure (ou le 2 ème mot de statut SW2) va suivre. un format et un codage. La valeur V peut être constituée d’une donnée élémentaire ou bien d’une ou plusieurs « données » : Une « donnée » . soit prêt à recevoir le reste des données ou je suis prêt à recevoir le reste des données). Cette réponse sera renvoyée à TAL par TTL sous forme d’un R-APDU : R-APDU= Données Tableau 5 SW1 SW2 Part II. Une donnée codée TLV sera notée « donnée » .ELJABI HASSAN Cartes à puces DEA   CLA Lc la longueur des données émises avec cette commande.  60 : TTL doit fournir un temps d’attente supplémentaire. 25 .Données et commandes Données et fichiers .  c’est un AC . La carte doit répondre en émettant un octet de procédure :  INS : c’est un ACK. (TTL . Le longueur maximale des données prévues en réponse à cette commande. d’une longueur Length et d’une valeur Value. est appelée « donnée primitive » .

debit. Un ADF est le point d’entrée à un ou plusieurs AEFs (Application Elementary File ) . un cryptogramme est utilisé pour vérifier l’intégrité de la transmission (sign.. répertoire principal.). Des enregistrements ou Records sont des Templates contenants une ou plusieurs « données primitives » et/ou des « données structurées » . 2. read record. read balance. D’authentification : seules les clés d’authentification peuvent être utilisées (intAuth. racine de DF (Dedicated File) : répertoire. en notant que l’ADF est un cas particulier de DF .. .(On rappelle ici qu’une spécification spécifie un sous ensemble d’un standard . 26 .ELJABI HASSAN Cartes à puces DEA Une « donnée » . Administratives : pour administrer une carte à puce (select file. encapsulant une ou plusieurs « données » .. L’organisation des fichiers est déduite de l’ISO 7816-4 càd elle suit une structure hiérarchique (arborescence) composée de trois catégories de fichiers :    MF (Master File) : l’arborescence. Chaque branche de l’arbre est un ADF (Application Definition File) . soit d’autres DFs.). Cette PSA est vue du terminale comme un arbre accessible à travers une structure de répertoire . et une carte GSM (SIMM) est sûrement ISO-7816 et j’insiste ici que l’exception confirme la règle si vous me montrer une carte SIMM plug-in. est appelée « donnée structurée » .. De paiement : un certificat est utilisé pour valider une transaction de paiement. Fichiers : Les « données structurées » . 3. On voit bien que cette structure est conforme à celle de l’ISO .. Commandes : On distingue 3 types de commandes : 1.. Commandes et réponses.). Une Template est le contenu du champ valeur V d’une telle « donnée structurée » . ExtAuth.). . Un ADF et ses propres fichiers de données AEF sont vus comme étant sur la même branche de l’arbre.. Une application ayant La structure des fichiers qu’on va décrire est appelée PSA (Payment System Applications ) . donc une carte EMV est obligatoirement ISO-7816. seront stockées en Templates appelées Enregistrements (Records). contenues dans des fichiers de données accessibles à la carte. il contient des EFs. EF (Elementary File) : un fichier qui contient des données.

ELJABI HASSAN Cartes à puces DEA voici une liste des commandes traitées en détails dans les spécifications EMV . La purse n’est pas encore standardisée.0 Réponses : Les mots de statut SW1.. .SW2 sont retournées par la couche TTL à la couche TAL dans n’importe quel message réponse et ils dénotent l’état de traitement de la commande : SW1. par la suite. (les 5 dernières commandes sont les seuls commandes ISO utilisées dans l’application EMV qui va suivre. RdBal.. dans les spécifications d’une application de paiement. pour connaître les autres commandes ISO voir table ? ? ?).SW2 terminé normal alerte avorté exécution vérification 67xx to 6Fxx 61xx 9000 62xx 63xx 64xx 65xx 27 . CLA 8C/84 8C/84 8C/84 80 80 80 8C/84 00 00 00 00 00 INS 1E 18 16 AE CA A8 1A 82 88 B2 A4 20 Le sens APPLICATION BLOCK APPLICATION UNBLOCK CARD BLOCK GENERATE APPLICATION CRYPTOGRAMME GET DATA GET PROCESSING OPTION PERSONAL IDENTIFICATION NUMBER CHANGE/UNBLOCK EXTERNAL AUTHENTICATE INTERNAL AUTHENTICATE READ RECORD SELECT VERIFY Tableau 6 Les commandes traitées par EMV ‘96 version 3. ils vont servir. on ne voit pas ici les commandes tels que SelPK.

puis il en choisit une soit :   en affichant la liste. Le terminal détermine la liste des applications communes avec la carte. L’authentification offline (en mode local.Aspects de sécurité. pour vérifier que les données de la carte ne sont pas falsifiées. en choisissant l’application la plus prioritaire de la liste. en utilisant la signature digitale.DDF01 » Get Response La carte envoie le FCI du DDF Read Record (0201h) La carte envoie la liste des ADFs Select ADF Get Response La carte envoie le FCI L’application est choisie Cdt Eljabi Hassan 123456789 Sélection d’application Part IV. Authentification statique : Elle est exécutée par le terminal. la carte fournit le terminal : • la clé publique de l’émetteur certifiée par la clé privée de l’autorité de certification 28 .SYS. Les spécifications EMV ont définie 2 types d’authentification offline : Statique et dynamique. càd sans contacter l’émetteur ) est avantageuse.ELJABI HASSAN Cartes à puces DEA Les réponses Part III. le détenteur en choisit une.Sélection d’application. car chaque communication avec l’émetteur coûtera le marchant 5FF et c’est pourquoi il refuse la carte pour les opérations inférieurs à 100FF. Select PSE DDF Sélection du DDF « 1PAY. En effet.

les deux types d’authentification offline statique et dynamiques. données dynamiques du terminal ). un coprocesseur est nécessaire ). possédant la clé publique de l’autorité de certification. puis il procède à vérifier les signatures digitales des données en utilisant la clé publique de la carte. • Le terminal. CLA=x4. Authentification dynamique : cela suppose que la carte est dotée de l’algorithme RSA à clé publique (normalement. l’entête de la commande est intégré dans le calcul du MAC. format 2 : le champs de données n’utilise pas le codage BERTLV. Le terminal.( ça revient à signer toutes les identifiées par la liste DDOL ). possédant la clé publique de l’autorité de certification. le service confidentialité des données est assuré par la fonction chiffrement du champs des données. y inclut la somme. vérifie que la clé publique de l’émetteur a été bel et bien certifiée par la clé privée de l’autorité de certification. La carte fournit le terminal : • • sa clé publique certifiée par la clé privée de l’émetteur la clé publique de l’émetteur certifié par la clé privée de l’autorité de certification signatures digitales de toutes les données de la transaction. La classe CLA=xC. • On distingue deux formats de messagerie sécurisée : • • 29 . il vérifie que la clé publique de la carte est bien certifié par l’émetteur. La carte s’authentifie auprès du terminal (comme en authentification statique ) et en plus . sont assurés par la fonction MAC . Connaissant la clé publique de l’émetteur. Remarque : si la carte et le terminal supportent. (données statiques de la carte.ELJABI HASSAN Cartes à puces • DEA signature digitale avec tous les données indiquées par l’AFL. ils doivent exécuter la dynamique. elle signe toutes les données de la transaction. puis il procède à vérifier la signature digitale des données de la carte en utilisant la clé publique de l’émetteur. format 1 : où le champs des données de la commande est codé BER-TLV . Messagerie sécurisée : L’objectif est d’assurer la confidentialité et l’intégrité des données et l’authentification de l’émetteur : • les deux services intégrité des données et authentification de l’émetteur. tous les deux. vérifie que la clé publique de l’émetteur a été bel et bien certifiée par la clé privée de l’autorité de certification.

enregistrement de la transaction 6. 3. Transaction online : La figure nous montre une telle transaction. de toute façon c’est un risque à prendre pou économiser une communication ). il met à jour ses fichiers ) : 1. 2.réponse d’autorisation. ou bien online (la décision est : il est temps pour communiquer avec l’émetteur. ou bien traitement offline (comme une purse càd on suppose qu’il y de la monnaie stockée dans la carte.. 5.ELJABI HASSAN Cartes à puces DEA Une clé de session MAC . 7. c’était le cas avec les cartes à bande magnétique : 1. 9. . 5réponse d’autorisation. .. Transaction offline/online : La figure nous montre une telle transaction.. est dérivée de la clé unique MAC Master key. payons la communication.transmission des transactions au clearing center.demande d’autorisation.le compte du détendeur est débité. 7. L’émetteur va accéder à toutes les transactions commises par cette carte en mode offline. . 4. 8. 6. 10..réponse d’autorisation.transmission des transactions quotidiennement (store and forward ) 8. pour chaque session.le compte du marchand est crédité. . 2.transmission des transactions au clearing center.le compte du détendeur est débité. Card Clearing center 9 Autorisatio n center 4 Emetteur 3 2 5 ..demande d’autorisation ou décision de la carte.demande d’autorisation.achat. 9. 4.réponse d’autorisation.le compte du marchand est crédité. 3demande d’autorisation.enregistrement de la transaction chez le marchand.achat.. ça dépend de la décision de la carte .. Marchand Acquéreur 6 7 Acquiring center 8 Cdt Eljab i Hass an 1234 Détendeur 5678 9 1 Traitement d’une transaction online 30 ..

Dn est la longueur de la donnée que la carte veut envoyer au n ème transfère durant la commande en cours. .. 6 .ELJABI HASSAN A Autorisatio n center Card Clearing center DEA 9 Acquiring center Cartes à puces 8 4 Emetteur 3 5 Acquéreur 7 2 Cdt Eljab i Hass an 1234 Détendeur 5678 9 1 . Mécanismes de sécurité : Les mécanismes reconnus sont : • • le DES et 3DES pour le chiffrement à clé symétrique. Annexes. [ Data(x)] signifie x octets de données ... P2. 00 } ne sont pas   C-TPDU [ CLA. Le : nombre maximum d’octets que le terminal prévoit dans la réponse de la carte.. Exemple d’échanges en mode T = 0 : Les exemples suivants illustrent des échanges de données et des octets de procédures entre la couche transport TTL du terminal et la carte ICC. . Lc : nombre d’octets envoyés du terminal à la carte dans la commande. P1. . INS. P2. le RSA pour le chiffrement à clé publique (asymétrique ). P1.. commande 1er cas : TAL TTL ICC C-APDU { CLA. INS..(avec Le=00 signifie 256 octets) Licc : nombre exact d’octets dans la carte qu’elle va envoyer dans sa réponse. Notons que :      Les octets de procédures 60 et ACK = Ins illustrés ici.. 00 ] 31 Processus Terminé .. Marchand Traitement d’une transaction online/offline selon la décision de la carte.

Lc ] Ack [ INS ] C-TPDU [ Data(Lc)] R-APDU 90 00 SW1. SW2 [ 90 00 ] Processus Terminé Terminal. P2. soit prêt ! C-TPDU [ CLA. P2.P1. 00 } C-TPDU [ CLA. je suis prêt ! TTL envoi les données de longueur Lc Processus Terminé C-TPDU [ CLA.P2. SW2 [ 90 00 ] DEA R-APDU [ 90 00 ]  commande 2ème cas : ( Le = Licc ) TAL TTL ICC C-APDU { CLA. P1.ELJABI HASSAN Cartes à puces SW1. SW2 [ 6C Licc ] Terminal. INS. 00 } Le terminal prévoit 256 octets de la part de la carte Terminal. soit prêt ! R-APDU {[ Data(Licc)]. 00 ] SW1. SW2 [ 90 00 ] 32 . INS. 90 00} TTL vérifie que le nombre d’octets est bien Licc.Lc. [Data(Lc)]} TTL ICC SW1. P2. INS.INS. INS. P1. Puis elle les envoi à TAL  Commande 3ème cas : TAL C-APDU {CLA. P1. P2. 00 ] Ack [ INS ] R-TPDU [ Data(Licc)]. Puis elle les envoi à TAL ( Le > Licc ) TAL TTL ICC C-APDU { CLA. SW2 [ 6C Licc ] C-TPDU [ CLA. Licc] Ack [ INS ] [ Data(Licc)] SW1. P2. 90 00 R-APDU {[ Data(Licc)]. 90 00} TTL vérifie que le nombre d’octets est bien 256. P2. INS. INS. P1. P1. P1.

INS. P2. 00. INS. 00} TTL ICC ICC déclare que D1 est la longueur des données de la 1ère séquence Soit prêt voici D1 octets D2 est la longueur e de la 2èm séquence Processus répété n fois TTL vérifie que le nombre d’octets est bien 256. je n’ai que Licc octets à envoyer TTL corrige la commande et prévoit Licc octets 33 . INS.. D1] {C0. P1. SW2 [ 61 D1 ] Mais non écoutes. C0. C0. INS. 00. 00. 00} TTL ICC C-TPDU [ CLA. 00. SW2 [ 6C Licc ] C-TPDU [ CLA. SW2 [ 61 Licc ] Get response [ 00. Licc] TTL envoi les données de longueur Lc ICC déclare la longueur exacte de ses données Licc R-APDU {[ Data(Licc)]. P2. 90 R-APDU 00} {[ Data(D1+D2+. 90 00} (Le > Licc ) : TAL Le terminal envoi une commande et prévoit recevoir 256 octets C-APDU {CLA. Lc ] ACK [ INS ] C-TPDU [ Data(Lc)] SW1. P2.+Dn)]. P1.Lc. 00. P1.ELJABI HASSAN Cartes à puces DEA  Commande 4ème cas : TAL Le terminal envoi Lc octets et prévoit recevoir 256 octets C-APDU {CLA.[ Data(D1)]. 61 D2} Get response [ 00. 00 ] SW1. 90 00} {C0. en utilisant les octets de procédure 61 et 6C : (Le = Licc ) TAL Le terminal envoi une commande et prévoit recevoir 256 octets C-APDU {CLA. P2.P2. P1. Puis elle les envoi à TAL C-TPDU [ CLA.P1.INS. Dn] {C0. P1. 90 00}  Commande 2ème cas.[ Data(Dn)]. P1. INS.. [Data(Lc)]. Licc ] SW1. C0. P2. 00. SW2 [ 61 D1 ] Get response [ 00. INS.[ Data(Licc)]. P2. 00 ] SW1.00} TTL ICC C-TPDU [ CLA.

Dn] Terminal.. P1. 00.+Dn)]. D1] {C0.[ Data(Dn)].00} TTL ICC C-TPDU [ CLA.P1. INS. 90 00}  Commande 4ème cas avec alerte (62 xx ou 63 xx) : TAL C-APDU {CLA..+Dn)]. Dn] {C0. P1.00} TTL ICC C-TPDU [ CLA. C0. 90 00} DEA Soit prêt voici D1 octets D2 est la longueur e de la 2èm séquence Processus répété n fois TTL vérifie que le nombre d’octets est bien Licc. 90 R-APDU 00} {[ Data(D1+D2+. [Data(Lc)]. 00. [Data(Lc)].INS.Lc. 00. P2. Lc ] Ack [ INS ] C-TPDU [ Data(Lc)] SW1. 00..P2. P2.ELJABI HASSAN Cartes à puces Get response [ 00. C0.P1.[ Data(D1)]. INS. SW2 [ 61 D1 ] Get response [ 00. D1] {C0.Lc. C0.P2. je suis prêt ! Soit prêt voici D1 octets D2 est la longueur e de la 2èm séquence Processus répété n fois {C0. 00. 00.[ Data(D1)]. 61 D2} Get response [ 00. 90 R-APDU 00} {[ Data(D1+D2+.INS. Puis elle les envoi à TAL Les échanges (7 exemples)en terme d’APDU  Commande 4ème cas en utilisant SW = 61 (Le > Licc ) TAL Le terminal envoi Lc octets et prévoit recevoir 256 octets C-APDU {CLA. Lc ] 34 . 00. 61 D2} Get response [ 00.. C0. 00.[ Data(Dn)].

codage des données On remarque que : ⇒ Cette application est évidemment orientée transaction monétaire :débit. Mais rien n’empêche de mettre à point une application transactionnelle mais non monétaire conformément à ces spécifications. 62 xx} {C0. ⇒ Ces spécifications nous montrent spécifiques EMV (CLA=8x). en modes online et offline. SW2 [ 61 Licc ] Get response [ 00. .ELJABI HASSAN Cartes à puces DEA Ack [ INS ] C-TPDU [ Data(Lc)] SW1. crédit. Spécifications d’une application ICC pour système de payement Généralité : Cette spécification définit les procédures du terminal et de l’ICC qui sont nécessaires pour effectuer une transaction de payement dans un environnement de change international... 00. porte-monnaie (purse) électronique. l’intérêt des commandes 35 . le flux de transaction. traitement de l’exception. 62 xx} TTL doit faire passer le message d’alerte avec les données à TAL Les APDUs(2 autres exemples). 00. C0.[ Data(Licc)]. Licc] R-APDU {[ Data(Licc)]. Elle couvre : • • • • mapping :organisation des données dans les fichiers.

ce pointeur doit indiquer l’enregistrement contenant les données (codées BER-TLV) nécessaires à l’Authentification des données en mode off-line . inconditionnellement accessible à la lecture . chaque enregistrement est codé et structuré selon les normes de l’EMV. doivent être linéaires. 36 . doivent contenir seulement des données codées selon BER-TLV. ayant un SFI compris entre 21 et 30. peuvent contenir plusieurs enregistrements. l’existence de cet enregistrement est optionnelle.ELJABI HASSAN Cartes à puces DEA ⇒ La carte est en mesure de prendre des décisions . L’étiquette est 70 . ayant un SFI compris entre 11 et 20. Les fichiers . sont réservés aux données propriétaires du système de payement individuel. y compris les 2 champs étiquette et longueur. ire ère 1 liste des données de la gestion de obligato risque de la carte. présen ce obligato ire numéro « primaire » de compte de obligato l’application. avec les restrictions suivantes : • ∗ ∗ ∗ Tous les fichiers accessibles par la commande Read record : doivent utiliser un identificateur de fichier SFI (avec 1 ≤ SFI ≤10).Dans le cas où la carte ne supporte que des transactions en mode on-line. Les fichiers de la carte à puces Les données sont organisées dans les fichiers selon le besoin de l’institut émettrice . Les fichiers . ire ème 2 liste des données de la gestion de obligato risque de la carte ire index de la clé publique de l’autorité de Optionne l* certification. et peuvent avoir des conditions d’accès pour la mise à jour. record : ∗ ∗ ∗ • • • Les données codées qui sont accessibles par la commande Read étique tte 5F24 5A 8C 8D 8F valeur date d’expiration de l’application. Le pointeur de fichier de l’application AFL indique les fichiers et les enregistrements qui doivent être traités par la transaction. sont réservés aux données propriétaires de l’institution émettrice. Chaque enregistrement est limité à 254 octets. Tout d’abord .

registre du dernier ATC on-line le terminal retrouve ces données en appliquant la commande Get data à la carte. Quand on ajoute une nouvelle fonction . le terminal peut avoir accès au compteur des transactions ATC en utilisant la commande Generate AC . La plupart des bits de cette donnée sont réservés pour le future . 37 . Par exemple : Authentification dynamique de données en mode off-line basée sur une clé symétrique. présen ce de obligato ire Optionn el Optionn el Si l’institution émettrice ne souhaite pas exécuter la fonction « vérification de la vitesse du terminal » . De toute façon. Les données accessible par la commande Get processing option : étique tte 82 94 valeur liste des fonctions supportées AIP pointeur de fichiers de l’application Le terminal retrouve ces données en envoyant la commande Get processing option à la carte. compteur des essais de PIN. la carte n’aura pas besoin de supporter la commande Get data . publique de Optionne l* * La présence de ces données est obligatoire dans les cartes supportant l’Authentification des données en mode off-line.on doit consacrer un bit de l’AIP pour indiquer que la carte supporte cette nouvelle fonction. Alors le terminal doit exécuter seulement ces fonctions . Les données codées qui sont accessibles par la commande Get data : étique tte 9F36 9F17 9F13 valeur compteur de transactions l’application. présen ce obligato ire obligato ire La donnée AIP spécifie les fonctions de l’application que la carte supporte .ELJABI HASSAN Cartes à puces DEA 90 certificat de la clé l’institution émettrice.

Le reste de cette section s’intéresse au dialogue terminal . 38 . y compris la sélection d’application. Durant l’exécution des fonctions . en dehors de la couche application. Le terminal prendra sa décision en tenant compte des valeurs définitives de ces deux registres. Ces fonctions font appel aux registres suivants : Côté terminal : le TSI (information sur l’état de la transaction) et le TVR (résultat de la vérification faite par le terminal). Les fonctions décrites ici supposent que la sélection de l’application a été déjà faite.ELJABI HASSAN Cartes à puces DEA Flux de transactions : Voici un exemple d’organigramme qu’un terminal peut suivre : Initier l’applicatio n Lire les données de l’applicatio n Authentification des données Traitement de restrictions Vérification du détenteur de la carte Gestion de risque du terminal Analyse d’action du terminal Analyse d’action de la carte Décisio n finale On-line Traitement de l’application on-line et Authentification de l’émetteur Off-line Achèveme nt Traitement du script Les fonctions utilisées pour le traitement de la transaction : Les spécifications EMV décrivent toute la fonctionnalité. les bits de ces deux registres seront affectés par les résultats obtenus.carte au niveau des fonctions logiques de l’application.

SW2. puis il informe la carte du début d’une nouvelle transaction en lui envoyant la liste des informations nécessaires à cette transaction (PDOL) par le biais de la commande Get processing option.. Open platform . .). La carte répond en lui envoyant la liste des fonctions qu’elle supporte (AIP) et la liste des numéros des enregistrements nécessaire à la transaction ainsi que les numéros abrégés (SFI) des fichiers contenants ces enregistrements (AFL). AFL. SW1. AFL Résulta F t onctions supportées(AIP) adresse des données (AFL)...Il est formellement interdit au terminal d’aller farfouiller dans des données non citées par cette liste. FCI proprietary template. En effet. Le fichier ADF nous apparaît comme un fichier contenant des données encapsulées dans son FCI. FONCTION « sélection d’application  » Résulta t AID « nom de l’ADF » RHM Interaction MF DDF1 DIR A FONCTION « initiate application process » AID est le nom de notre fichier d’application (ADF).. y jetons un coup d’œil . La fonction « Initial application processing » : Le terminal doit exécuter cette fonction de traitement juste après la fonction de « sélection de l’application ».} 39 . application priority indicator. . cette carte supporte plusieurs applications càd il y a des données concernants autres applications que celle en cours d’exécution .ELJABI HASSAN Cartes à puces DEA Côté carte : l’ AIP (la liste des fonctions supportées par la carte) et l’ AFL (la liste des fichiers et des enregistrements contenant les données nécessaires à l’application en cours). JAVACARD .(MAOS . la carte a besoin de mes données concatenées suivant un format PDOL. Ah. Tandis qu’une carte multi-issuer a besoin de firewall entre les applications appartenant à des émetteurs différents. Les fonctions. AIP. SW1. et en option : PDOL. DF name. FCI={FCI template. SW2 EF EF Autre ADF Autre ADF EF EF FCI Get processing option{PDOL} AIP. FONCTION «Read application data » Notre ADF Select {AID} FCI . Le terminal met à zéro tous les bits des registres TSI et TVR . je te les passe et tu me passes tes données concernant l’application. On voit ici qu’une carte multi-application(EMV) convient bien à une seule institution émettrice. MULTOS . OK.

ELJABI HASSAN Cartes à puces DEA Description : La carte peut supporter plusieurs applications. L . en effet . il doit lire tous les fichiers et enregistrement pointés par ce dernier.SW1. Le terminal extrait la liste PDOL du FCI .{données}. SW2. SW1. la transaction ne peut pas être exécutée avec cette application. le terminal ayant reçu AFL . SW2 =90 00 tout va bien Si SW1. Le terminal établie une liaison avec ce fichier ADF en émettant une commande Select{AID} : 00 A4 04 00 Lc (AID) 00. Le terminal émet la commande Read record vers la carte : 00 B2 N°E SFI 00. il faut répéter la commande Si SW1. la carte lui passe le nom du fichier de l’application choisie (AID). le terminal doit éliminer cette application et revenir à la fonction « sélection » pou choisir une autre application.et lui précise s’il doit exécuter une commande autre que Select pour y accéder(command to perform). il émet la commande Get processing option à la carte en y incluant les données demandées {PDOL} : 80 A8 00 00 Lc {PDOL} 00. La carte répond en envoyant le FCI (avec SW1. AFL . SW2 =62 81 Alerte. Le message réponse de la carte est : 80 L AIP.SW2=90 00 si tout va bien). SW2 =69 85 Erreur. Le terminal exécute la fonction « sélection de l’application ». SW2. La fonction « Read application data » : Cette fonction doit être exécuter immédiatement après la fonction « Initiate application processing ». Le message réponse de la carte est structuré conformément à BERTLV : 70. Si SW1. 40 . ( chaque élément de cette liste contient un numéro abrégé de fichier élémentaire SFI et les numéros des enregistrements N°E qui doivent être lus dans ce fichier. et il répète cette commande autant de fois qu’il y ait des numéros dans la liste AFL.

... La fonction « Off-line data authentication » : Cette fonction peut être exécuté par le terminal . Si la carte et le terminal supportent tous les 2 l’authentification offline.. b8 R F U Application interchange profile AIP. chaque bit indique la fonction supportée : OCTET 1 OCTET 2 b8 init. Chaque élément de la liste est formé de 4 octets : SFI du 1er fichier contenant des enregistrements à lire N° du 1er enregistrement à lire dans ce fichier nombre d’enregistrements concernants à lire dans ce fichier l’authentification offline N° du dernier enregistrement . SFI du dernier fichier contenant des enregistrements à lire . leurs présence est indiquée dans AIP (liste des fonctions supportées par la carte). 41 ... le résultat est reporté dans le bit correspondant du TSI. La disponibilité des données nécessaires à cet authentification est optionnelle. mais pas tous les deux) . après l’initiation de l’application et avant l’analyse d’action du terminal.. N° du dernier enregistrement .... b7 authentificatio n Statique supportée b6 authentificati on dynamique supportée b5 vérification du détenteur de carte supportée b4 traitement de risque à faire par le terminal b3 authentificati on de l’émetteur supportée b 2 RFU b1 RFU b1. nombre d’enregistrements concernants à lire dans ce fichier l’authentification offline AFL : c’est La liste des enregistrements qui doivent être lus par le terminal en utilisant la commande Read record.. le terminal doit l’exécuter (il exécute la statique ou la dynamique .ELJABI HASSAN Cartes à puces DEA Le fameux AIP est un registre à 2 octets . La fameuse AFL est une liste sans délimitation de N° de fichiers (SFI) et de N° d’enregistrements dans ces fichiers..dans n’importe quel ordre. N° du 1er enregistrement à lire dans ce fichier ..

suivis par les éléments données identifiés par leur étiquette « 9F4A ». L’entrée de ce processus est formée par les enregistrements pointés par AFL (càd la sortie du processus précédents « Read application data » ). Seulement les enregistrement identifiés par la liste AFL comme participants à l’authentification off-line doivent être traités.ELJABI HASSAN Cartes à puces DEA Si cet authentification n’est pas supportée par l’un des deux . le terminal doit noter ça dans le bit correspondant du TVR. ⇒ L’authentification des données statiques off-line authentifie les données statiques stockées par l’institut émettrice dans la carte : étiquette 8F 90 93 92 9F32 valeur index de la clé publique de l’autorité de certification certificat de la clé publique de l’institution émettrice les données statiques signées de l’application le reste de la clé publique de l’institution émettrice exposant de la clé publique de l’institution émettrice Les données statique nécessaire à l’authentification ⇒ L’authentification des données dynamiques off-line authentifie les données résidente dans la carte et les données issues du terminal et de la carte : étiquette 8F 90 92 9F32 valeur index de la clé publique de l’autorité de certification certificat de la clé publique de l’institution émettrice le reste de la clé publique de l’institution émettrice exposant de la clé publique de l’institution émettrice 42 .

Le contrôle d’utilisation de l’application . il doit vérifier que le bit « valid at ATM » est à 1 dans le registre AUC (application usage control). si le terminal n’est pas un ATM. le terminal doit utiliser la liste CVM attribuée à cette méthode . le bit correspondant dans le registre TVR sera mis à 1). Elle sert à vérifier que la personne présentant la carte est bien la personne à qui à laquelle cette application dans la carte a été émise.ELJABI HASSAN Cartes à puces DEA 9F46 9F47 9F48 9F49 certificat de la clé publique de la carte exposant de la clé publique de la carte le reste de la clé publique de la carte la liste DDOL des données nécessaires pour l’authentification d es données dynamiques Les données statique nécessaire à l’authentification La fonction « Processing restriction » : Cette fonction est exécutée par le terminal pour déterminer le degré de compatibilité entre l’application dans le terminal et l’application dans la carte.. 43 .. le bit correspondant dans TVR doit être mis à 1. ça comprend la vérification de la compatibilité de : ⇒ N° de version de l’application (si les versions sont différentes dans le terminal et la carte . Elle peut être exécutée n’importe quand après la sélection de l’application et avant l’analyse d’action du terminal . « valid for international cash transaction ». La date d’expiration de l’application : si la date <à la date d’expiration de la carte . Si le bit correspondant à une méthode est à 1 . La fonction « Cardholder verification » : Cette fonction de vérification du détenteur de la carte peut être exécutée n’importe quand après la sélection de l’application et avant l’analyse d’action du terminal. « valid for ⇒ ∗ ∗ ∗ ⇒ etc. par exemple : si le terminal est un ATM . « valid for domestic cash transaction ». il doit vérifier que le bit « valid at terminal other than ATM » est à 1. de même le terminal doit vérifier l’état des bits : international goods ». L’aptitude de la carte à supporter au moins une méthode de vérification est indiquée dans AIP .

l’institution émettrice et le système d’une éventuelle fraude : ⇒ Le terminal passe en mode online (connecté au réseau) périodiquement pour assurer la protection contre les menaces qui ne sont pas décelable dans l’environnement offline.Les bits affectés par cette fonction : TVR vérificatio n échouée bit CVM non reconnu PIN demandé. La probabilité de réussite de ce tirage au sort doit être proportionnelle à la somme. clavier présent. Les résultats obtenus doivent être reportés dans TVR . 44 . pas de clavier PIN demandé. Cette gestion consiste à :   contrôler le plafond de l’application : si la somme le dépasse alors le bit correspondant dans TVR doit être mis à 1. mais PIN non introduite limite d’essai de PIN dépassé e PIN introduit on-line Les bits de TVR qui sont affectés par la fonction «Cardholder verification » La fonction « Terminal risk management » : Cette partie de la gestion du risque est exécuté par le terminal pour protéger l’acquéreur. elle contient une donnée de 3 parties : ⇒ ⇒ ⇒ ∗ ∗ X : 4 octets. Le terminal passe aussi en mode on-line pour obtenir l’autorisation de l’émetteur dans le cas d’une transaction de grande valeur. choisir une transaction aléatoirement : si la somme mise en jeu par cette transaction dépasse un certain seuil et elle est toujours inférieur au plafond alors le terminal tire au sort pour passer en mode on-line . Le bit « CV was performed » de TSI sera mis à 1. Bien sûr que cette gestion n’est exécutable que si le bit « terminal risk management is supported » du registre AIP est à 1. indiquant une somme d’argent .ELJABI HASSAN Cartes à puces DEA La liste CVM se trouve dans la carte . CVR : une liste contenant des données élémentaires de 2 octets chacune : 1er octet :code d’une méthode de vérification (CVM code). Y : 4 octets. indiquant une somme d’argent . ⇒ Cette gestion peut être exécuté à n’importe quel moment avant l’émission de la commande « Generate AC ». 2ème octet :code de condition (CVM condition code).

ELJABI HASSAN Cartes à puces DEA  contrôler la vitesse : après un certain nombre de transaction en mode off-line (limite inférieur de nombre de transaction off-line consécutive) le terminal doit passer en mode on-line s’il la supporte. le terminal émet la commande Get data pour lire les registres ATC et last online ATC de la carte . Main une fois la limite supérieur est dépassée.(c’est le même message avec b8. Le bit « terminal risk management was performed » de TSI sera mis à 1. refusée offline ou doit être exécutée online. Pour faire ce contrôle.b7=0. Cette AAC peut être présentée à l’émetteur comme preuve que la carte était présente durant la transaction).Les bits affectés par cette fonction : TVR transaction exceed floor limit transaction selected randomly for online upper consecutif offline limit exceeded lower consecutif offline limit exceeded Les bits de TVR qui sont affectés par la fonction «Terminal risk management » La fonction « Terminal action analysis » : Le terminal.(si le terminal trouve que le 2ème registre est nul il doit mettre le bit « new card » à1 dans le TVR. le terminal doit arrêter la transaction s’il n’est pas capable de passer en mode on-line. Cette fonction peut être exécutée à n’importe à n’importe quel instant durant la transaction . 45 . prendra sa 1ère décision :cette transaction est approuvée offline. ayant exécuté sa gestion de risque et tous les autres fonctions liées à la transaction offline (le client et le marchand ont introduit tous les données ) .0).b7 du paramètre P1 sont 0 et 1 respectivement) refusée offline : Le terminal émet à la carte une commande Generate AC pour lui demander un AAC.0).b7=1. puis il soustrait le 2ème du 1er pour obtenir le nombre de transactions commises par cette carte sans passer en mode online. ça élimine le traitement non nécessaire .  doit être exécutée online : Le terminal émet à la carte une commande Generate AC pour lui demander un ARQC.  approuvée offline :Le terminal émet à la carte une commande Generate AC pour lui demander un TC. Par exemple si le bit « failure of cardholder verification » est mis à 1alors le terminal peut passer tout de suite à l’analyse d’action. (c’est le même message avec b8.(le message commande :80 AE P1 00 Lc {data} 00 les bits b8. Les résultats obtenus doivent être reportés dans TVR .

La fonction « Card action analysis » : La décision de la carte . N. si. par exemple :si pour une valeur donnée du TVR . si  46 . le terminal doit choisir le refus. elle lui envoi un AAR.B. elle lui envoi un TC. en mode online . • 3 données « codes d’action de l’acquéreur » peuvent être mises dans le terminal. le terminal mettra à 1 le bit correspondant dans TSI. elles reflètent les préférences de l’émetteur en terme d’action à prendre suivant le contenu du TVR.ELJABI HASSAN Cartes à puces DEA Le terminal prend sa décision préliminaire en se basant sur le contenu du registre TVR. exécuter la transaction en mode online . que ça soit online ou offline . elle lui envoi un ARQC. elle prendra sa décision : achever la transaction en mode offline . et si l’un des 2 codes d’action propose le passage en mode online . demander une consultation (la carte soumet un message de conseille à l’émetteur lui informant d’une situation exceptionnelle). • Le terminal traite les codes d’action en paires . l’émetteur doit respecter ce choix. la carte retourne un AAC avec les bits b3b2b1=001 du CID (cryptogramme information data) .est spécifiée par sa réponse à la commande Generate AC issue du terminal. demander une consultation ou refuser la transaction. sur les préférences de l’émetteur et sur les préférences de l’acquéreur : • 3 données « codes d’action de l’émetteur » peuvent être mises dans la carte . La carte peut faire sa propre gestion de risque pour protéger l’émetteur d’une éventuelle fraude ou d’un risque de débit excessif .ça veut dire que la restriction est due à la carte . Lorsque cette fonction est achevée . elle lui envoi un AAC.    approuver la demande du terminal d’exécuter la transaction en mode offline. : Un AAC peut indiquer soit le rejet de cette transaction . Comme résultat à cette gestion . par exemple . soit une restriction due à cet environnement . que la carte fait ou ne fait pas sa propre gestion de risque. Cette fonction est obligatoire dans n’importe quelle transaction . elles reflètent les préférences de l’acquéreur en terme d’action à prendre suivant le contenu du TVR. l’un des 2 codes d’actions (celui de l’émetteur ou celui de l’acquéreur) propose le refus de la transaction offline . refuser la transaction .

La réponse « message d’autorisation » envoyée par l’émetteur peut contenir des données d’authentification (étiquette 91).. Ce message peut inclure l’ARQC de la carte .. Une connexion est établie entre le terminal et l’émetteur à travers le réseau (mode online )ce qui permet à l’émetteur de revoir et d’autoriser ou rejeter les transactions qui sont en dehors des limites acceptable. La fonction « Online processing » : Cette fonction est exécutée suite à la réception du ARQC émis par la carte en réponse à la commande Generate AC .. et si le terminal a émis la commande Generate AC il mettra à 1 le bit « Issuer authentification was performed » dans le TSI.. Le terminal adresse un message de demande d’autorisation à l’émetteur . le terminal est obligé de mettre à 1 le bit « Authentification was unsucceful » .. Terminal 1ère Generate AC Cdt Eljab i Hass an 1234 5678 Carte 9 Authentification request message{ARQC} ARQC. ça voudrait dire que la carte a combiné la fonction d’authentification de l’émetteur avec la commande Generate AC .  si la carte supporte ces données d’authentification (ça doit être indiqué dans le AIP)..   Cet ARQC sert à authentifier la carte auprès de l’émetteur Emetteu r . le terminal doit les renvoyer à la carte dans une commande External authenticate .Si la réponse de la carte est autre que SW1SW2=9000. SW1 SW2 47 e 2èm External authenticate{IAD} Ou bienAC{IAD} Generate Cet IAD contient un cryptogramm e qui sert à authentifier l’émetteur auprès de la . le terminal doit envoyer un message de conseil à l’émetteur (PIN try limit exceeded .. par exemple). .ELJABI HASSAN Cartes à puces DEA le bit b4=1 du CID . le terminal n’émettrait pas la commande External authenticate . elle doit répondre à la deuxième (et aux suivantes) par SW1SW2=6985. si l’émetteur n’envoie pas des données d’authentification . . .. Si le terminal lui envoi plus qu’une . La carte ne doit pas exécuter plus qu’une seule commande External authenticate par transaction .. dans ce cas le terminal ne doit pas envoyer la commande External authenticate . Après l’exécution de cette fonction . si la carte ne supporte pas ces données d’authentification .

La carte peut répondre à la 1ère commande Generate AC par un TC. Tandis qu’à la 2ème commande Generate AC elle ne peut répondre que par un TC ou un AAC . C’est la dernière fonction dans le traitement de la transaction (le traitement du script peut être fait après cette fonction d’achèvement). sans les comprendre. une après l’autre sous forme des APDU.). elle répond par : TC (OK) 48 . La carte indique sa volonté de terminer le traitement de la transaction en retournant un TC ou un AAC en réponse à la 1ère ou à la 2ème commande Generate AC . le terminal doit les transmettre à la carte. l’achèvement doit se faire à l’émission de la 2ème commande Generate AC. Codage de la commande Generate AC : Les paramètres de la commande Generate AC fournissent au terminal 3 options :demander un TC. un AAR ou un AAC. . un ARQC ou un AAC. Issuer -to. Generate AC ( 1ère émission) . un ARQC.ELJABI HASSAN Cartes à puces DEA Authentification response message{IAD} Commandes et Réponses pour l’authentification en mode online. Ces scripts sont organisées sous forme d’une donnée structurée portant l’étiquette 71(scripts à traiter avant la dernière commande Generate AC) ou l’étiquette 72(scripts à traiter après la dernière commande Generate AC).card script processing : Le message réponse d’autorisation issue de l’émetteur supporte des commandes scripts adressées à la carte par l’intermédiaire du terminal. Si le terminal décide de passer en mode online . chargement d’une clé. Le terminal émet la commande Generate AC pour faire savoir sa décision à la carte : •  s’il suggère la mode offline . il demande à la carte un TC . Si ces commandes existent . La fonction « Completion » : Cette fonction d’achèvement termine le traitement de la transaction...(déblocage du PIN.

il demande à la carte un ARQC . la carte doit répondre par un : AAC (ok. elle répond par : AAC (OK. bye) Generate AC ( 2ème émission) . la carte répondra par un : TC (OK) AAC (sorry. Autrement il met à 1 le bit « ICC data missing » dans le TVR . bye) Les données manquants ou erronées dans la carte Si c’est une donnée obligatoire . Le terminal . le terminal est obligé de terminer la transaction. bye) un AAC (il a obtenu un refus). il demande à la carte un AAC .ayant reçu une autorisation de l’émetteur ( traitement en mode online). ou bien un approuve ou un rejet (consultation des tables IAC) . bye) s’il rejette la transaction.émettra sa 2ème commande Generate AC pour demander : •   •  un TC (il a obtenu un approuve). bye) s’il suggère la mode online . elle répond par : AAR (elle a besoin de chuchoter à l’émetteur) ARQC (OK) AAC (sorry.ELJABI HASSAN Cartes à puces DEA    •    •  AAR (elle a besoin de chuchoter à l’émetteur) ARQC (elle suggère le passage en mode online) AAC (sorry. 49 .

ELJABI HASSAN Cartes à puces Application 1 : carte de crédit Plan des applications DEA Application 3 : carte d’accès Application 2 : purse Processing Restriction Cardholder Verification Initiate Application Processing Plan des fonctions Read Application Data Offline Data Authenticati on Internal Verify Authenti cate Comman des ISO Read Record Get Data Comman des EMV Get Processi ng Option Select Plan des commandes TVR ADF PDOL AFL AIP FCI TSI Note pad AUC Plan des données structurées Couche physique Modèle EMV à couches Coté terminal Coté carte 50 .

pour des raisons d’inter-opérabilité).ELJABI HASSAN Cartes à puces DEA Chapitre quatre METHODOLOGIE D’APPLICATIONS Standards et spécifications. le standard a évolué et les opérations à 3 volts sont permises maintenant sur les cartes. les ATMs en France resteront équipés avec des lecteurs bande magnétique et votre carte bancaire gardera cette fameuse bande. ISO-8731-1 Algorithmes for message Authentication. Tandis qu’une spécification est une interprétation étroitement définie d’un standard. Integrated Circuit Cards with ◊ ◊ ◊ ◊ ISO-8583 Interchange Message Specification. ISO-7813 Financial transaction cards ISO-7816/1/2/3/4/5/6/7 contacts. Les standards évoluent. ISO-7811 bandes magnétiques et gaufrages. 51 . Pour notre étude. Il ne faut pas confondre entre standard et spécification. directives ou définitions de caractéristiques. IEC International Electrotechnical Commission. pour qu’on soit sûre que le matériel. le procédé et les services sont adaptés à leur but » . Définitions : Selon l’ISO . CEN Comité Européen des Normes. nous nous bornerons aux articles suivants: ◊ ◊ ISO-7810 caractéristiques physiques. Les instituts de standardisation qui s’occupent des cartes sont : ISO International Standard Organisation. et sachez que les systèmes conformes à un standard ne sont pas obligatoirement inter-opérables. (on va revenir à cette interopérabilité en détail plus loin). « les standards sont des accords documentés contenant des spécifications techniques ou d’autres critères précis qui vont être utilisés comme règles . ETSI European Telecommunication Standards Institute et BSI British Standards Institute .comme les gens ces jours-ci ont un énorme désir d’insérer leurs cartes. par exemple les standards courants autorisent une tension d’alimentation pour les cartes de 5 volts. mais .(Tant qu'il y a des pays dans le monde qui utilisent la carte à bande magnétique sans puce. même dans un PC portable. les produits.

Une carte du fabriquant X est acceptée par un lecteur du fabriquant Y.(chacun a son propre langage assembleur pour contacter la carte et 2) 52 . ce qui facilitera l’expansion des combi-cartes. La différence entre GSM et EMV est que cette dernière a minimisé les facteurs de dépendance d’un hardware spécifique en utilisant des objets (données codées et structurées) et des commandes génériques. Une carte SIM peut être utilisée comme module de sécurité pour un terminal POS (Point OF Sale). Une fois la carte est dans le lecteur. la structure de fichier même les commandes pour demander un service varient d’un constructeur à l’autre . on espère que le nouveau standard ISO 14443 sera adopté par les fabriquants. L’expansion du marché des cartes à puces et même le future des cartes multi-applications dépendent de l’interopérabilité (en hard et en soft). L’idéal est que la spécification dépend moins de l’environnement et de la puce . et les programmes stockées dans la carte à puce appelée aussi SIM (Subscriber Identity Module). et dépend plus de l’application elle-même. et on prévoit que les 12 millions Terminals installés dans le monde vont être conformes à l’EMV d’ici 10 ans. les applications résidentes dans la carte (on-card applications) doivent pouvoir communiquer avec leurs contreparties résidentes dans les serveurs (off-card applications) .ELJABI HASSAN Cartes à puces DEA La spécification la plus intéressante et la plus importante est l’EMV . Mais ce n’est pas le cas avec les cartes sans contacts. tous les fabriquants ont adopté le standard 7816-1/2/3 en ce qui concerne l’interopérabilité physique. Elle a été développée en 1980 par l’ETSI . les émetteurs des cartes multi-application ne seront pas nécessairement eux-mêmes les fournisseurs d’application. n’importe quel lecteur doit accepter n’importe quelle carte au niveau physique. En effet. Interopérabilité. La spécification GSM est générique pour l’industrie de télécommunication de la même façon que la spécification EMV est devenue générique pour le monde de services financiers. Interopérabilité de la plate-forme : dans le futur proche. Une autre spécification importante de cartes à puce est la GSM. on va traiter cette spécification en détail. Tandis que GSM est très dépendante d’un hardware spécifique. Mais les fabriquants des cartes utilisent leurs propres OS. elle décrit les procédures d’autorisation digitales et d’authentification. Des cartes conformes à l’EMV ont été commercialisée cette année. On va considérer les trois niveaux de l’interopérabilité : 1) Interopérabilité physique : elle est déjà assurée pour toutes les cartes à puces avec contacts.

et que les fabriquants des cartes aillent s’occuper de leur hardware. ♦ Applicat ion Machine Virtuelle Operati ng System Java Langage propriétaire MEL. Celle de Microsoft. Les plus importantes spécifications à ce stade sont : EMV. GSM. Même les fabriquants de lecteurs qui ont adopter l’ISO au niveau physique. à l’aide d’un ensemble de « card drivers » et des interfaces off-card standard. C’est l’âge d’or des software providers qui vont prendre le relais du développement des applications .ELJABI HASSAN Cartes à puces DEA développer des applications). Interopérabilité de « off-card platform » : Open Card Framework (OCF) et PC/SC ont caché la diversité des plates-formes (des cartes et des lecteurs) de l’application « off-card » . 53 ♦ . l’OCF et le PC/SC permettent à un tiers de développer une application off-card. ils ont pris des décisions propriétaires à propos des services offerts par le lecteur et la manière de commander ces servies. C Java Card OS propriétaire OS propriétaire MULTOS La puce ISO 7816 ISO 7816 ISO7 816 C’était Solution Solution solutions MultOS et Java. Java Les comme ça MultOS elle est comment ? 1) interopérabilité de l’application : elle permet l’interaction entre différentes applications.Il est maintenant possible qu’une application soit écrite par un tiers . D'où la nécessité de l’interopérabilité au niveau de la plate-forme : ♦ Interopérabilité de « on-card platform » : Java card et MultOS ont brisé le couplage entre le système d’exploitation de la carte (COS) et l’application résidente dans la carte (on-card application). (comme c’est le cas des « software providers » qui produisent des applications qu’on les pose sur le microsoft Windows). SET : EMV : l’interopérabilité des cartes de différents fabriquants et de différents émetteurs est le but recherché.

. .. . MultOS est moins cher que Java. . sinon. Comparaison entre MultOS et Java Card : ⇒ MultOS remplace le COS pour que la carte soit capable de parler MEL (MultOS Extension Langage) et si tu n’as pas envie d’apprendre ce langage ... MasterCard a répondu) MultOS occupe 14-16 k octet de ROM ... . Java a 2 problèmes : elle a besoin de 1 k bits de RAM (une telle carte vient de sortir.to . MultOS propose un traducteur MEL/C. GSM Java Card/MultOS et Microsoft ? ? ? Cdt Eljab i Hass an 1234 5678 9 Open Card Framework/PC/SC ISO 7816 ... GSM : vous le connaissez déjà.. Systèm Carte Lecteur e Architecture et couches d’interopérabilité. MasterCard et Europay.. Il sécurise les communications des transactions des cartes sur internet : il définit le format des messages et les protocoles d’applications.. mais il est plus cher qu’un COS propriétaire. .ELJABI HASSAN Cartes à puces DEA ♦ SET : est supporté par Visa. (Pas avant 18 mois.MEL converter est toujours une propriété de Mondex) VISA a adopté java et demande à MasterCard de développer une interface au-dessus de MultOS pour qu’il parle Java....... MultOS est un produit Mondex(purse de MasterCard) confié à un consortium à but non lucratif MAOSCO (mais il te faut un certificat de mondex à 25 centimes pour charger une application dans une carte. . .. .... . Java se pose au-dessus du COS pour lui interpréter le langage abstrait Java de Sun (la carte garde sa langue maternelle). Java occupe 8-13 k octets ROM mais par contre. . SET. ♦ Interopér abilité d’applica tion Interopér abilité de Plateforme Interopér abilité physique EMV.. c’est 54 ⇒ ⇒ ⇒ ⇒ ⇒ . le C ....eh bien ... .

et vous pouvez développer 55 . ⇒ Règles de contrôle d’accès : pour contrôler qui a accès aux fichiers de la carte. le MultOS. Oberthur et Toshiba. Dallas(Java Ring). Geisecke&Devrient. on va proposer Java pour « single companies implementing multi-application cards for integration into networks » ( a annoncé Mike Hendry chairman of smart card club finance forum) . MultOS compte sur la rivalité et la concurrence entre SUN et Microsoft. le 2ème problème. Merryll lynch et Cable and Wireless .ELJABI HASSAN Cartes à puces DEA comme tu mets un jinny dans une petite lampe). authentification auprès des réseaux sécurisés. c’est le « Smart Card for Widows » . Geisecke&Devrient. programmes de fidélité . Europay. c’est que Java est conçu pour des CPU 32 bits. Schlumberger. elle va parler Visual Basic 6. on le propose pour « companies wanting to set up third-party services or marketing arrangements » ( a ajouté Hendry). Avec la collaboration de Schlumberger. Hitachi. la version BETA est prévue janvier 1999. Solution Microsoft. Gemplus. Pour notre méthodologie. ⇒ Conformité aux standards de cartes déjà existants : supporte les commandes ISO 7816-4 . crédit). Et comme MAOSCO s’intéresse plutôt à la structure commerciale . Java attend le support de Microsoft. est orienté vers la nécessité d’un contrôle central . Dai Nippon. son produit . BULL. Motorola. Mastercard/Mondex. SC/Windows repose sur caractéristiques suivantes : l’infrastructure PC/SC et offre les ⇒ système à fichiers partagés (Multi-partition file system) : séparation physiques entre les fichiers de données . De la Rue. eh bien SUN a contribué à PC/SC avec Microsoft.0. e-cash. ⇒ Algorithmes cryptographiques « pluggable » : permettant au développeur et au client de définir et concevoir le niveau de sécurité souhaitable. les applications appartenants à différents émetteurs peuvent coexister paisiblement sur une même carte. (une telle carte est trop chère pour l’instant) ⇒ Java de JavaSoft (SUN) est applaudie par Visa. On voit bien que ça correspond aux besoins des applications tels que : transactions sécurisées (débit. Inside Technologies. ⇒ ⇒ C’est exactement pareil à la bataille entre les standards VHS et Betamax des cassettes vidéo. Siemens. Le consortium MAOSCO de MultOS est formé de :Gemplus. Surprise. Quelle que soit la langue maternelle (COS) de votre carte .0 et Visual C++ 6. Motorola. Microsoft a annoncé au salon CARTES 98 au CNIT sa propre solution : ni MultOS ni Javacard.

un type de mémoire : où on doit écrire.un Masque : conforme à ISO 7816 fermé ou propriétaire g.un protocole de communication : synchrone asynchrone d. Méthodologie Comme on vient de voir .un bas prix b. RAM EPROM.une structure de fichier : à accès rapide données communes partagées non structurées h. RAM ROM carte à mémoire carte microcontrôleur co-processeur co-processeur processeur unique processeur unique/mémoire carte à mémoire développez votre COS achetez COS courant MultOS. le développement des applications n’est plus monopolisé par les producteurs des cartes.ELJABI HASSAN Cartes à puces DEA vos applications paisiblement dans l’environnement Windows NT et utiliser Visual Studio pour simuler et corriger vos applications et bonne chance.une vitesse de traitement : conforme à ISO 7816 tous les autres à achetez développez hiérarchique relationnel orienté objet de 1 à 5 MHz dépend du terminal 56 .une capacité de traitement : authentification rapide des clés de sécurité algorithmes compliqués (RSA par exemple) rapide vérification de PIN pas de traitement e. effacer et réécrire où on doit écrire où les données sont figées c. Java SC/Windows ou si votre application nécessite : a.un système d’exploitation (COS): fermé ou propriétaire conforme à ISO 7816 ouvert f. ni par les grandes institutions émettrices : c’est aux providers d’applications de prendre la relève. et prenons les décisions suivantes : ⇒ Application et système : alors utilisez : carte à mémoire à jeter EEPROM. et pourquoi pas toi ? Récapitulons les idées déjà traitées .

et si vous avez choisi PC/Windows votre PC fera l’affaire). il introduit un bit d’erreur dans le processeur qui exécute le chiffrage . puis en étudiant les résultats de l’erreur . Choisissez une longue-clé et pensez à les changer périodiquement corruption intentionnelle signature digitale. lecture des mémoires physiquement) attaque extérieure : les 5 contacts de la carte ou du lecteur constituent la cible préférée des Hackers. et avant de lancer votre application pensez à la simulation et à l’émulation (consultez votre fabriquant de cartes . Souvenez-vous qu’il y a 5 types d'attaques : • recherche exhaustive de la clé : ça revient à essayer toutes les combinaisons possible. des messages : pensez à la • • corruption des données internes : ça se fait par une méthode de déduction. Fabrication : Alors utilisez : sheet offset sheet offset injection molding sheet offset injection molding • • ⇒ si votre application nécessite : Long life grand nombre de cartes petit nombre/basse qualité carte de haute qualité cartes à jeter ⇒ Implémentation du système : si votre application nécessite : communication à haut débit communication : bas débit une ou plusieurs applications protection contre la fraude haut niveau de sécurité volume de la mémoire Alors utilisez : cartes avec contacts cartes sans contacts mémoire et convenable COS crypto co-processeur crypto co-processeur ça dépend de l’application pensez toujours à la conformité au standard. il déduit des informations concernant l’algorithme et les clés. ⇒ Conception fonctionnelle : Alors utilisez : la puce convenable fréquence d’horloge si votre application nécessite : des longs registres communication à haute vitesse 57 . manipulation directe : les cartes à puces actuelles sont immunes à ce genre de tripotage (variation de la tension d’alimentation.ELJABI HASSAN Cartes à puces DEA et pensez toujours à la sécurité de votre système et des échanges des données.

et on va essayer de l’exécuter : Carte logistique pour l’armée : Chaque militaire de l’armée possède une carte d’identité qu’il garde précieusement. . il fait le tour des magasins de la caserne où il a été admis : le lit.. Une fois muté. mise à jour régulièrement et dupliquée. et une base de données . et contenants des records de tous les équipements en possession du détendeur de la carte. lorsqu’il joint l’armée pour la première fois. . il lui arrive souvent de perdre les reçus qu’il signe auprès des différents magasins des casernes où il mute durant sa vie professionnel..ELJABI HASSAN Cartes à puces DEA des registres de stockage anti-contrefaçon non ISO mémoire de taille convenable puce résistante au tripotage Application. l’outillage (s’il est technique) du magasin C .de la nouvelle caserne. et ainsi de suite. les draps. du magasin B .du magasin D (s’il est administratif ou officier) . un autre fichier F comportant l’inventaire de tout ce qu’il a fourni et à qui il l’a fournie et un fichier R de tout ce qu’il lui reste dans le magasin. En effet. il se présente au Quartier Général et il se surprend : des casernes ont été détruites.. il doit rendre une partie(on barre les équipements rendus sur ses copies de reçus) et il emporte le reste à la nouvelle caserne où il commence à signer des reçus auprès des magasins A. B. 58 . la babas. ayant perdu la moitié de ses reçus. .. vous pouvez l’introduire sur les cartes d’un autre émetteur (en lui payant la licence ). la pelle. Comme on vient de voir . l’uniforme.. au QG. C. Conception : cette carte à puce va remplacer les reçus. il vous est possible d’écrire votre propre application et l’exécuter sur vos propres cartes (si vous êtes une grande société) ou tout simplement . elle comporte des fichiers correspondants à chaque type de magasins.. A la retraite. Objectif : On va proposer d’encarter une puce sur la carte d’identité de chaque militaire. des documents ont été perdus. des copies de reçus qui n’ont pas été mises à jour(et malheureusement il a perdu sa copie où les équipements rendus ont été barrés) et c’est le vrai Loto ou bien il en profite ou bien il paye ce qu’il n’a pas pris. On va considérer une application imaginaire . mais par contre . D. le bureau. Le magasinier possède un Terminal « Wallet » comportant un lecteur et une base de donnée : un fichier G de ce qu’il a reçu du QG.. du magasin A . .. le fusil. les munitions.

car les soldats mutent et rendent des équipements à un autre magasinier d’une autre caserne (celui-ci doit ajouter ces équipements à son fichier G comme si il les a reçu du QG).ELJABI HASSAN Cartes à puces DEA Il faut que F+R=G mais on ne peut pas dire que la responsabilité du magasinier porte sur le fichier G. On réclame l’interopérabilité totale : une application écrite aujourd’hui doit opérer avec les nouvelles générations des lecteurs et les versions des cartes de demain. Donc le magasinier emprunte des équipements du QG et il les distribue aux militaires au nom du QG . On recommande aussi d’utiliser un matériel standardisé : on veut une variété de fournisseurs de cartes et une multitude de fabriquants de lecteurs . le QG peut émettre une autre (parce qu’il a un dupliquât des informations de la carte perdue). La base de données du QG est bien dupliquée : une copie chez lui et l’autre distribuée sur les cartes à puces et sur les lecteurs « Wallets » . et il les fait sortir de son inventaire G et c’est au QG de les gérer. Puces : puisque cette application est militaire on va choisir une puce avec coprocesseur cryptographique (RSA ou ECC). Ces Wallets des magasiniers ne vont pas établir une liaison online avec la QG pour chaque transaction (il y en a des centaines par jour). main ils vont exécuter ces transactions Offline et ils vont établir la connexion Online périodiquement pour informer le QG de tout ce qui s’est passé (on appelle ça Stock and Forward). et si la base de donnée du QG est corrompue . la taille de 59 • . contempler le contenu de sa carte. Et l’officier logistique de la caserne peut ramasser les cartes et accéder à la lecture pour reconstituer la base de donnée perdue du QG. par simple insertion de sa carte dans un lecteur portable. Décisions : • Cartes : le PVC est le matériel plus répandu. Mais on va proposer l’ABS ou le PET pour des raisons écologiques. et un outillage de développement « developpement tool kit » pour concevoir « to design » l’application et la simuler avec un langage évolué et connu. G Pour le QG : il possède ∑ équipements qui sont distribués dans les R F différents magasins ∑ et sur toutes les cartes à puces ∑ . Recommandations : on recommande que les données de la carte soient accessibles à la lecture sans protection (seulement. l’authentification est nécessaire) et que l’écriture et la modification des données ne sont pas possibles qu’en présence du détendeur de la carte (card holder verification CHV) : un détendeur peut. et le moins chers. Si une carte est perdue. on peut la restituer à partir des données des Wallets ou à partir de l’ensemble des cartes à puces. le plus malléable pour le gaufrage.

Lecteur : les lecteurs EMV ont commencé a paraître ( cette année. Cette clé K. Ces deniers ne sont pas encore compatible EMV( MultOS vient de paraître cette année. une simulation sur un prototype fixera les idées. Machine virtuelle : pour des raisons académiques. • structure des fichiers : vous venez de recevoir un lot de cartes prépersonnalisées avec leur batch card contenant le master key MK. EFclés de chiffrement . De la rue a lancé ses lecteurs conformes EMV part I en Angleterre ) . EF clés chiff. Et un fichier personnel EF(3F03) accessible en lecture et protégé en écriture par Ks..ELJABI HASSAN Cartes à puces DEA la mémoire dépend du type d’authentification offfline choisie ( la statique nécessite une mémoire plus grande que la dynamique) et dépend du nombre d’application qu’on va mettre dans la carte. JavaCard ou SC/Windows. De toute façon. Celle de la plate-forme ne sera pas assurée que par MultOS. JavaCard 2 a toujours des problèmes d’ici la fin du siècle et SC/Windows ne sera pas commercialisé ce siècle et il se repose sur l’infrastructure PC/SC qui lui manque l’interface EMV). 60 . on va choisir EMV. EFcodes secrets (remplissez les descripteurs de fichiers). MF 3F00 EF(N°séri e) 3F02 EF (Ks) 3F01 Exemple de carte prépersonnalisée. Ça va assurer Interopérabilité physique et celle de l’application. Grade. • COS . 3F0 1 DIR A ADF 0200 application 1 EF(data ) 0201 EF codes sec. Masque. Avec cette clé Ks vous définissez votre fichier application ADF1 et tous les EFs qui en découlent EFdata. Prénom. MF 3F00 EF(N° série) EF (Ks) DDF1 0100 3F02 EFperson nel Nom. La clé système Ks de chaque carte est une diversification de MK avec le N° de série de la carte.. vous permettra de personnaliser la carte.

et s’il n’existe pas on doit remplir les 12 octets avec des zéros hexadécimaux. Et si vous aimez l’autre stratégie. Et si quelqu’un retire la carte au milieu de la transaction ! que se passe-t-il ? si votre stratégie est d’effacer la donnée du fournisseur et puis l’inscrire chez le receveur. on doit mettre les 2 octets « nombre » à 00 00h. traitement de risque à faire par l’émetteur (le terminal doit faire son traitement de risque par rapport aux transactions qu’il a exécuté avec toutes les cartes.personnelles (le terminal doit savoir remplir le fichier F) le registre AIP doit comporter les fonctions supportées par la carte : authentification dynamique. 12 octets pour « le numéro de série » et 2 octets pour le « nombre ».ELJABI HASSAN Cartes à puces DEA Carte personnalisée. On va convertir le code ASCII de ces chiffres et lettres en Hexadécimal. donc tout ce qui sort du terminal doit entrer dans la carte et inversement tout ce qui sorte de la carte doit entrer dans le terminal. Structure des données : Chaque équipement militaire a un numéro de code de 16 digits. les codes d’actions de l’émetteur à remplir dans le terminal. il faut que la transaction soit balancée immédiatement. alors le résultat d’un retrait de la carte est la perte de la donnée. CHV. A savoir que s’il existe un numéro de série . càd inscrire la donnée chez le receveur puis l’effacer de chez le fournisseur. le champs valeur V sera divisé en 3 partie : 16 octets pour « le numéro de code » . Le numéro de série de l’équipement (s’il existe) ne dépasse pas les 12 digits et peut comporter des lettres. la carte est supposée mise à jour). le pointeur des Records AFL doit comporter les SFI des fichiers données EFsdata et le numéro de fichier EF info. Par exemple : « 1234 Paris » devient 01 02 03 04 50 41 52 49 53. pas besoin de remplir ces codes dans la carte . le résultat sera un équipement figurant dans l’inventaire 61 . On va coder les données en TLV. Les registres EMV : on va remplir les registres définies par la spécification EMV par les paramètres de notre application : • • la liste PDOL doit comporter le N° de série du terminal et la référence du magasinier. • • L’application : Pour éliminer toute possibilité de fraude. car dans notre cas l’armée est l’émetteur et l’acquéreur en même temps. en effet la transaction se fait en présence des 2 parties (le client et le marchand).

une fois terminé .et s’il est d’accord il tape soigneusement son PIN. Ce tool kit peut être propriétaire dans notre cas. Conseil : utilisez un Flag associé à chaque équipement en cours de transfert. Test : Avec le Developpement tool kit . vous tripoter. telle qu’elle est affichée. 62 . Le programme que vous venez d’écrire émet la commande Verify pour comparer ce PIN à celui dans EF chv. faites exactement comme si ce terminal est un POS : le magasinier tape sur son clavier l’opération. read_recrd. pour tester votre prototype. vous simulez. write_record après avoir fait une commande select file. Pour éviter toute contrefaçon de la part du magasinier. N’hésitez pas à utiliser les commandes ISO telles que : update_record. Mais avec MultOS ça sera le langage C ou MEL.ELJABI HASSAN Cartes à puces DEA du fournisseur et dans celui du receveur. aura lieu. alors la modification du fichier. le militaire regarde bien tout ce qui est affiché . avec Javacard 2 ça sera le langage Java et avec SC/Wiondows ça sera visual basic. vous effacer le Flag. et si le résultat est positif et si le magasinier a déjà tapé son code secret (une autre commande Verify a déjà comparé ce code à celui existant dans EF code secret pour autoriser l’écriture) .

ELJABI HASSAN Cartes à puces DEA REFERENCES EMV ’96 version 3. PC/SC Draft 0. User guide CP8 BULL (TB100). Smart Cards La carte à mémoire PC et carte à puce Balance of power Dreifus. Gueule. FAQ (cryptography) RSA laboratory.inc 4 . France Telecom. Ovum.smartcardsys.Monk.0 june 30.Tewani. Electronic payement System O’Mahony.9 1997 (www.Peirce. MPCOS-EMV de Gemplus. 1996. Manuel de Référence schlumberger (cryptoflex OS).com).