Professional Documents
Culture Documents
Contexte de la norme
EMVCo LLC was formed February 1999 by Europay International, MasterCard International and Visa International to manage, maintain and enhance the EMV Integrated Circuit Card Specifications for Payment Systems. With the acquisition of Europay by MasterCard in 2002 and JCB International joining the organization in 2005, EMVCo is currently operated by JCB International, MasterCard International, and Visa International. EMVCo's primary role is to manage, maintain and enhance the EMV Integrated Circuit Card Specifications to ensure interoperability and acceptance of payment system integrated circuit cards on a worldwide basis. EMVCo is also responsible for a type approval process that defines test requirements and test cases that are used for compliance testing. This testing ensures that single terminal and card approval processes are developed at a level that will allow cross payment system interoperability through compliance with the EMV specifications. Source : http://www.emvco.com
Structure de lorganisation
Spcifications EMV
Plusieurs parties
Integrated Circuit Card (ICC) Specifications for Payment Systems Version 4.1, mai 2004 Book 1 Application Independent ICC to terminal Book 2 Security and Key Management Book 3 Application Specification Book 4 Cardholder, Attendant, and Acquirer
6 samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -
Dploiement EMV
En 2005, il y avait : 176 millions cartes EMV sur 550 millions de cartes circulant en Europe
Raisons de la migration
Liability shift les cots induits par une fraude lecteur ou terminal seront pris en charge par les banques (metteurs de la carte) ou les commerants dont les matriels ne seraient pas conformes EMV
10
Spcifications EMV
Spcifications EMV: -bases sur la norme ISO/IEC 7816 -doivent tre lues conjointement avec la norme ISO Si des dfinitions fournies dans EMV sont diffrentes de la norme ISO alors les dfinitions de la norme EMV remplacent celles de lISO Ces spcifications doivent tre utilises par : -Les fabricants de ICC et de terminaux -Les concepteurs de systmes de paiement -Les institutions financires qui implantent des applications financires sur ICC
11
Book 11: :Application Independent ICC to Terminal Book Application Independent ICC to Terminal
Interface Requirements Interface Requirements
12
Book1 : la carte
13
Normalisation parfaite
Quel que soit le fabricant de la carte puce, celle-ci doit tre lue par nimporte quel distributeur dans le monde Pour garantir cette interoprabilit, la normalisation concerne au moins 3 points: -Des paramtres physiques : taille de la carte, position de la puce et ses contacts -Des paramtres lectriques : tension dalimentation, niveaux lectriques utiliss -Des paramtres logiciels qui dfinissent le mode de dialogue avec la carte (commandes)
14
Caractristiques mcaniques
La carte doit tre opaque aux rayons UV (la puce insensible aux rayons UV) La carte doit rsister aux dtriorations de sa surface la carte doit protger la puce lors de manipulation de stockage lors dune utilisation normale La zone des contacts doit rsister la pression cause par une bille dacier de 1,55 mm de diamtre applique avec une force intrieure 1,5 N. La puce doit rsister aux rayons X La carte ne doit pas tre endommage par un champ magntique statique de 79 500 A/tr.m. etc.
15
16
Valeurs en mm
17
Vcc: tension lectrique (5 V) RST: cest le reset , initialise le microprocesseur (warm reset) cold reset = coupure et rtablissement de lalimentation CLK: signal dhorloge car pas dhorloge sur la carte GND: masse Vpp: utilis dans les anciens modles pour avoir une autre source dalimentation I/O: utilis pour le transfert des donnes et des commandes entre la carte et le terminal. La communication est half-duplex.
18 samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -
20
Dans le terminal, il y a un circuit dinterface (IFD: InterFace Device): Connexion de la carte (ICC) et activation de ses contacts par le circuit dinterface Reset de la carte Rponse au reset ou ATR (Answer to Reset) manant de la carte Dialogue entre la carte et lapplication via le circuit dinterface dsactivation des contacts par le circuit dinterface Retrait de la carte
21
ATR (Answer To Reset): Ds que la carte est mise sous tension, elle envoie un message de rponse dinitialisation appel ATR, il peut atteindre une taille maximale de 33 octets. Il indique lapplication cliente les paramtres ncessaires pour tablir une communication avec elle. Paramtres envoys par la carte : - Le protocole de transport ; - La vitesse de transmission des donnes ; - etc.
22
23
Caractristiques de lATR
LATR est la rponse de la carte au reset du terminal lATR au minimum = 2 octets, au maximum = 33 octets Transmission en mode asynchrone semi-duplex La frquence dhorloge comprise ente 1 et 5 MHz pour permettre nimporte quel lecteur de lire le 1er caractre Communication entre le lecteur et la carte via la ligne bidirectionnelle I/O
24
25
26
Caractre de format
appel aussi caractre T0 2me caractre de lATR compos de : -Partie Y1 (b8 b5) -Partie K (b1 b4) facultative (nest pas normalise, caractres dhistorique) K
Y1
(=6x) (=Ex) Prsence ou non de TA1 Prsence ou non de TB1 Prsence ou non de TC1 Prsence ou non de TD1
28 samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -
29
Caractre TA1 1
30
31
32
Caractre TD1 1
Code le caractre TA2, TB2, TC2 et TD2 (bits poids forts) bits de poids faible (numro du protocole utilis T=1) TD1 est absent si protocole utilis est T=0
protocole =(81)
33
372 F
1 D
TCK prsent si protocole 0 dans TD1 TCK = valeur de sorte quun Ou exclusif entre les octets de T0 (inclus) et TCK (inclus) soit nul
34
Mcanisme propos depuis lexistence de la norme ISO 7816-3 en 1999 Implant plus rcemment dans les cartes Ide : changer de vitesse au cours des changes pour augmenter la scurit en brouillant les simples amateurs de piratage Les cartes dialoguent 9600 bits/s pendant lATR (vitesse connue de tout port srie RS232 facilite la ralisation despions)
35
Caractre TA2 2
Si caractre TA2 existe => il indique les conditions de ngociation
36
Le terminal rejette une ATR qui contient TB2 (cense contenir Vpp) TC2 est dfini pour le protocole T=0 TC2 dfinit le temps qui spare le bit start de deux caractres successifs manant de lICC ou bien de lICC et du terminal (work waiting time) Le terminal rejette une ATR qui contient TC2=00 Le terminal accepte une ATR qui contient TC2=0A Le terminal rejette une ATR qui contient toute autre valeur pour TC2
37
Caractres TD2 2
LATR ne doit pas contenir TD2 si T=0 est utilis LATR doit contenir TD2 = '31' si T=1 est utilis, indiquant que TA3 et TB3 sont prsents et que le protocole T=1 doit tre utilis.
38
39
Protocoles de transport
Bass sur les protocoles T=0 ou T=1 dfinis dans lISO 7816-3 et 4 Diffrents niveaux : Couche physique (mme couche pour les deux protocoles) Couche liaison de donnes (gestion derreurs, options spcifiques pour les deux protocoles) Couche de transport (terminal transport layer) Couche application
40
Protocoles TPDU
Il existe deux protocoles T=0 et T=1 (T=0 le plus utilis) Protocole T=0 (TPDU : Transmission Protocol Data Unit) - est de type caractre -mode de fonctionnement de type commande/rponse -Le terminal est linitiateur des changes
41
Les changes
Elle dfinit les messages APDU (Application Protocol Data Units) utiliss par les cartes pour communiquer avec le terminal.
42
Commande APDU Entte obligatoire CLA INS P1 P2 Lc Corps optionnel Data field Le
CLA (1 octet): Classe dinstructions --- indique la structure et le format pour une catgorie de commandes et de rponses APDU INS (1 octet): code dinstruction: spcifie linstruction de la commande P1 (1 octet) et P2 (1 octet): paramtres de linstruction Lc (1 octet): nombre doctets prsents dans le champ donnes de la commande Avec Le=0, - Si cde dcriture => pas de donnes utiles - Si cde de lecture => la cde doit retourner 256 octets de donnes utiles Data field (octets dont le nombre est gal la valeur de Lc): une squence doctets dans le champ donnes de la commande
43
C-APDU
44
Data field (longueur variable): une squence doctets reus dans le champ donnes de la rponse SW1 (1 octet) et SW2 (1 octet): Status words (Mots dtat)tat de traitement par la carte
45
Exemples de cartes
Champ de la commande APDU CLA INS Valeurs
00 = cartes Mono (porte-monnaie en France), Mastercard, Visa 20 = vrification du PIN, B0 = Lecture B2 = Lecture de record D0 = criture DC = criture de record A4 = Slection du rpertoire (directory) C0 = Demander une rponse (get an answer) paramtres contenant des adresses lire longueur prvue pour la rponse ou bien longueur de largument de linstruction contient Lc octets (octets crire, PIN vrifier, etc.)
P1, P2 Lc Data
46
Couche Application
47
48
Protocole T=1
Protocole ambitieux Protocole peu utilis Protocole plus proche du modle OSI change de blocs structurs
49
50
La gestion des fichiers dune carte ICC La gestion des fichiers dune carte ICC
51
52
53
Identification par SFI ( Short File Identifier) - Les SFI sont utiliss pour slectionner des AEF. - Chaque AEF dune application est identifi par un SFI 5 bits ayant des valeurs entre 1 et 30. - Un SFI doit tre unique dans une application
54
READ RECORD
Lit les enregistrements dun fichier structure linaire (bas sur les enregistrements) LICC retourne lenregistrement
55
56
Application identifier (AID) National registered application Proprietary application identifier provider (RID) extension (PIX) 5 octets 0 to 11 octets
57
SELECT
La commande SELECT sert slectionner le PSE, le DDF ou bien lADF. Lexcution de cette commande initialise le chemin PSE, DDF ou ADF Les AEFs correspondants sont slectionns laide de leur SFI. La rponse cette commande retourne le FCI (File Control Information).
58
SELECT Application
Consiste crer une liste dapplications que supporte le terminal (appele candidate list) Slectionner lapplication excuter partir de la liste en utilisant lAID En comparant les AIDs, le terminal compare les AIDs des applications ct terminal avec ceux des applications ct ICC
59
Slection finale
Si plusieurs applications sont supportes, le terminal doit permettre la slection au dtenteur de la carte comme dcrit dans 1 ou bien fait la slection lui-mme comme dcrit dans 2 1 : si une liste est prsente au dtenteur de la carte, elle doit tre prsente selon un ordre de priorit avec lapplication la plus prioritaire dabord 2 : le terminal peut choisir lapplication sans laide du dtenteur de la carte (dans ce cas, le terminal choisit lapplication de plus grande priorit)
60
Objectifs
Le terminal doit tre capable de travailler avec tous les ICC supportant des PSE Conformit avec la norme ISO Les ICCs doivent tre capables de supporter des applications multiples, pas uniquement des applications de paiement
61
Book 22: :Security and Key Management Book Security and Key Management
62
63
Mcanismes dauthentification
Processus SDA : Static Data Authentication consiste pour le terminal vrifier une donne signe mise dans la carte durant sa personnalisation
Processus DDA : Dynamic Data Authentication en plus dun authentification statique, vrifie si la carte possde un secret dlivr par lmetteur de la carte
64
65
66
SDA : la personnalisation
Pendant la phase de personnalisation, la carte reoit les informations suivantes:
Le nom du porteur, le numro de la carte ou encore la date limite de validit de celle-ci (nots Information). une valeur dauthentification (not VA), signature RSA dInformations gnre avec la partie prive de la cl de lmetteur (VA=SigEpriv(Information) le certificat de lmetteur (Ecert) contenant sa cl publique signe par une autorit de certification le code PIN transmis au porteur de cette carte.
67
SDA : la lutilisation
Avant toute transaction : la carte fournit au terminal Informations, le certificat Ecert de la banque mettrice, ainsi que la valeur dauthentification VA le terminal vrifie Ecert avec la cl publique de lautorit de certification (CApub) et vrifie VA avec la cl publique de la banque mettrice le terminal demande lutilisateur le code PIN et le transmet (en clair) la carte pour quelle le vrifie.
68
69
DDA : la personnalisation
Pendant la phase de personnalisation, la carte reoit les informations suivantes:
Le nom du porteur, le numro de la carte ou encore la date limite de validit de celle-ci (nots Information). une paire de cls RSA (Cpub, Cpriv) un certificat (Ccert) contenant Cpub signe par lmetteur le certificat de lmetteur (Ecert) contenant sa cl publique Epub signe par une autorit de certification le code PIN transmis au porteur de cette carte.
70
DDA : la lutilisation
Avant toute transaction : la carte fournit au terminal Informations, le certificat Ecert de la banque mettrice, et son certificat Ccert le terminal gnre une valeur alatoire Talea et lenvoie la carte la carte gnre une valeur alatoire Calea. Puis, elle signe Talea et Calea avec sa cl prive Cpriv. Elle envoie le rsultat de la signature et Calea au terminal. le terminal vrifie Ecert avec CApub et vrifie Ccert avec Epub. Puis, il vrifie la signature des alas avec Cpub. le terminal demande lutilisateur le code PIN et le transmet (chiffr par Cpub) la carte pour quelle le vrifie. Le code PIN est dabord concatn avec deux nouvelles valeurs alatoires fournies par la carte et le terminal, afin dviter les attaques par rejeu.
71 samia.bouzefrane@cnam.fr - CEDRIC ( CNAM) -
La transaction est finalise en ligne ou hors ligne, choix fait par la carte ou le terminal selon une politique de gestion de risques : slection alatoire validation en ligne pour n validations hors ligne en fonction du montant de la transaction en fonction du montant cumul des transactions dj effectues hors ligne ou dun plancher fix par le marchand.
72
73
Drivation de la cl de transaction
74
75
Authentification CDA
CDA : Combined Data Authentication, variante de DDA utilise TC inclut TC dans le bloc de donnes sign par la carte Si la transaction doit tre approuve en ligne, le terminal envoie la banque mettrice le cryptogramme gnr par la carte (ARCQ Authorization ReQuest Cryptogram). La banque le vrifie et gnre un cryptogramme rponse (ARPC Authorization ResPonse Cryptogramm) envoy la carte via le terminal Le terminal redemande alors la carte de lui gnrer un certifcat de transaction qui inclut lautorisation de la banque.
76
77
Informe lICC que le traitement dune nouvelle transaction va commencer Obtient de la carte le profile dchange et la liste des fichiers utiliser durant la transaction : Opration effectue aprs la slection de lapplication
78
Le terminal lit les donnes contenues dans les fichiers de la carte Le terminal utilise Read Record Opration effectue aprs lopration Initiate Application Processing
79
Processing restrictions
Vrification : - du numro de version de lapplication - de lApplication Usage Control - des dates dexpiration de lapplication
80
81
Cardholder Verification
La carte doit tre capable de supporter au moins une mthode de vrification de dtenteur de carte (CVM: Cardholder Verification Method). Ceci doit tre spcifi dans le profile dchange envoy par la carte. Le terminal doit utiliser cette mthode.
82
Codes CVM
83
PIN Verification
La vrification du PIN - peut se faire en ligne ou hors ligne selon les valeurs de CVM - peut ncessiter le chiffrement du PIN - peut tre complte par une signature manuelle
84
Mcanismes utilises pour viter la fraude : - floor limit checking :vrification dinformations relatives la transaction sur le terminal (numro de compte, montant de la transaction, date de la transaction, etc.) - velocity checking : vrifier que les transactions effectues hors ligne seront compltes en ligne. - algorithmes de gestion des risques propres lmetteur de la carte
85
Comme consquence la gestion des risques : - la carte peut dcider de complter la carte en ligne ou hors ligne ou rejette la transaction. - la carte peut dcider denvoyer un message lmetteur de la carte pour linformer dune situation exceptionnelle.
86
Online/Script Processing
Online Processing : sert sassurer que lmetteur de la carte peut rviser, autoriser ou rejeter les transactions. Script Processing : ne fait pas partie de lapplication - Ensemble de commandes adresses la carte (exemple dblocage du PIN)
87
88
- APPLICATION BLOCK (post-issuance command) - APPLICATION UNBLOCK (post-issuance command) - CARD BLOCK (post-issuance command) - EXTERNAL AUTHENTICATE - GENERATE APPLICATION CRYPTOGRAM - GET CHALLENGE - GET DATA - GET PROCESSING OPTIONS - INTERNAL AUTHENTICATE - PIN CHANGE/UNBLOCK (post-issuance command) - READ RECORD - VERIFY
89
Sur Internet
Lutilisation des 16 chiffres visibles de la carte nest pas un protocole de paiement sr. Ce numro 16 chiffres nest plus imprim sur les facturettes 9 chiffres sont encore inscrits sur les facturettes et correspondent peu prs lala choisi par la banque. => possibilit de reconstituer le numro entier En 2001, un cryptogramme a t rajout et imprim uniquement sur la carte, appel CVV (Card Verification Value) chez Visa et CVC (Card Validation Code) chez MasterCard Ce code est gnr par la banque partir des informations bancaires du client et de donnes secrtes de la banque Ce code ne peut tre reconstruit car lalgorithme est secret Depuis 2004, le cryptogramme doit tre demand par tout site marchand en plus du numro de la carte afin de valider toute transaction distance auprs de la banque mettrice. Ce numro nest crit nulle part sauf sur la carte.
90
Conclusion
Lauthentification DDA nest pas obligatoire et DDA est plus robuste mais plus chre En France, la majorit des cartes aujourdhui supportent DDA Lauthentification SDA : Code PIN envoy en clair Cl RSA de 1984 bits mais la donne dauthentification peut tre lue sans prsentation de code Aujourdhui, il manque des liens entre lauthentification, la vrification du code PIN et la gnration de TC : les requtes envoyes par le terminal peuvent tre interceptes en forgeant des rponses envoyer Nouvelle tendance de paiement : paiement sans contact (ISO 14443) => nouveaux systmes, nouveaux protocoles et nouvelles failles
91
Bibliographie
1. Technology for smart cards: architecture and programmers guide, Zhiqun Chen, Addison Wesley, sept. 2000 2. Les Cartes puce: thorie et mise en uvre, Christian Tavernier, 2me dition, Ed. Dunod, 2007. 3. Normes EMV : http://www.emvco.com 4. Cours sur la carte puce et la norme EMV par Pierre Paradinas (CNAM) 5. Magazine MISCH, Hors Srie, Cartes puce : dcouvrez leurs fonctionnalits et et leurs limites, paru en novembre 2008. 6. Magzine Linux, Hors Srie, Cartes puce, paru en octobre 2008.
92