Que peut on lire sur une carte bancaire?
En réalité, pas grand chose, en tout cas pas grand chose de clair. Nous allons retrouver les informations tel que le PAN présent sur la devanture, votre nom ainsi que la date d’expiration. Concrètement, voici un log commenté d’une transaction avec carte bancaire. Le log a été obtenu en réalisant une transaction avec un lecteur PCSC et en utilisant l’outil :.
Je déconseille fortement d’utiliser votre carte bancaire pour faire ce test. Tout d’abord, nous ne savons pas si les données sont stockées avec cet outil. De plus ceci est totalement illégal. Avant d’utiliser ceci, nous avons supprimé les données sensibles de la carte.
On commence par sélectionner l’application bancaire présente sur la carte à notre disposition
00 A4 04 00 07 A0000000041010 |
Et la réponse commentée :
6F File Control Information (FCI) Template 84 Dedicated File (DF) Name A0000000041010 A5 File Control Information (FCI) Proprietary Template 50 Application Label O V E R S I M A P P 9F12 Application Preferred Name O V E R S I M A P P 87 Application Priority Indicator 02 5F2D Language Preference f r e n 9F11 Issuer Code Table Index 01 BF0C File Control Information (FCI) Issuer Discretionary Data DF60 Unknown tag 0B28 9F4D Log Entry 0B28 90 00 : Successful |
On demande ensuite le Get Processing Option. Cette commande initialise la transaction bancaire.
C’est à ce moment que les compteurs de transactions de la cartes sont incrémentés.
Terminal : 80 A8 00 00 02 8300
La carte répond
77 Response Message Template Format 2 82 Application Interchange Profile (AIP) 3800 94 Application File Locator (AFL) 08010201 10010300 18010201 90 00 : Successful |
L’AIP décrit les paramètres de sécurité de la carte. Il sont décrit dans l’EMV Book 3.
L’AFL liste l’ensemble des enregistrement que l’on a le droit de lire dans la carte.
Lecture des records :
Terminal : 00 B2 01 0C 17
70 EMV Proprietary Template 57 Track 2 Equivalent Data 1122334455667788D15031111111111111111F 90 00 : Successful |
Le track 2 equivalent data est une copie des données de la piste magnétique.
On a ici le PAN : 1122334455667788 et la date d’expiration 1503 (mars 2015).
Terminal : 00 B2 02 0C 17
70 EMV Proprietary Template 5F20 Cardholder Name O V E R S I M P L E . F R 9F1F Track 1 Discretionary Data 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 00 : Successful |
Terminal : 00 B2 01 14 96
On retrouve à l’intérieur la clé publique de la banque signée par l’autorité de certification.
Dans le cas de notre carte, il s’agit de Mastercard.
Terminal : 00 B2 02 14 56
70 EMV Proprietary Template 8F Certification Authority Public Key Index 01 92 Issuer Public Key Remainder 94AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 9F32 Issuer Public Key Exponent 03 9F47 Integrated Circuit Card (ICC) Public Key Exponent 03 9F48 Integrated Circuit Card (ICC) Public Key Remainder BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 9F49 Dynamic Data Authentication Data Object List (DDOL) 9F3704 90 00 : Successful |
On retrouve là encore des clés de signatures. Cependant on remarque aussi la présence
du tag 9F49 qui désigne les donnés que requiert la carte pour générer une signature RSA.
La carte demande dans cet exemple un nombre aléatoire de 4 octets.
Terminal : 00 B2 03 14 97
Ce record contient la clé publique de la carte signée par la banque.
Terminal : 00 B2 01 1C 58
70 EMV Proprietary Template 5F25 Application Effective Date 130301 5F24 Application Expiration Date 150330 5A Application Primary Account Number (PAN) 1122334455667788 5F34 Application Primary Account Number (PAN) Sequence Number 00 9F07 Application Usage Control FF00 8E Cardholder Verification Method (CVM) List 000000000000000042514403010302031E031F03 9F0D Issuer Action Code – Default B840FD8000 9F0E Issuer Action Code – Denial 0010000000 9F0F Issuer Action Code – Online B860FD9800 5F28 Issuer Country Code 0250 9F4A Static Data Authentication Tag List 82 90 00 : Successful |
La CVM list décrit la manière dont peut être authentifiée le porteur de la carte.
(Code pin, signature etc…)
Les action codes décrivent la politique de sécurité de la carte. Ainsi, c’est en fonction
de ces codes qu’elle choisit de refuser une transaction, d’aller en ligne demander à
sa banque ou bien de l’accepter directement sans aller en ligne.
Les cartes d’étudiants vont généralement systématiques interroger la banque alors que
les cartes plus haut de gamme se valident les transactions en offline.
Terminal : 00 B2 02 1C
70 EMV Proprietary Template 8C Card Risk Management Data Object List 1 (CDOL1) 9F02069F03069F1A0295055F2A029A039C019F37049F35019F45029F4C089F3403 8D Card Risk Management Data Object List 2 (CDOL2) 910A8A0295059F37049F4C08 9F08 Application Version Number 0002 90 00 : Successful |
Le record qui va nous permettre de terminer la transaction. Dans celui se trouve
les donnés que la carte requiert pour générer le cryptogramme qui valide la
transaction.
70 EMV Proprietary Template 8C Card Risk Management Data Object List 1 (CDOL1) 9F02069F03069F1A0295055F2A029A039C019F37049F35019F45029F4C089F3403 8D Card Risk Management Data Object List 2 (CDOL2) 910A8A0295059F37049F4C08 9F08 Application Version Number 0002 90 00 : Successful |
Dans le premier generate application cryptograme la carte demande 43 octets de donnés. Nous
les remplierons avec des zéros. Dans la réalité on y retrouve la date, le montant, etc…
80 AE 40 00 2B 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000 |
Nous indiquons que nous souhaitons approuver la transaction directement. La carte devrait répondre
qu’elle refuse la transaction car le code pin n’a pas était validé. Ceci n’est pas forcément vrai.
En effet, la carte peut répondre qu’elle accepte la transaction. La preuve ci dessous :
77 Response Message Template Format 2 9F27 Cryptogram Information Data 40 9F36 Application Transaction Counter (ATC) 0042 9F26 Application Cryptogram 1122334455667788 9F10 Issuer Application Data 4F56455253494D504C452E46520000000000 90 00 : Successful |
Le cryptogram Information Data (CID) indique 40, ce qui signifie que la carte a approuvé la
transaction. Bien entendu ceci ne marche que parce que nous avons judicieusement choisi
de mettre un montant égal à 0;
Il est inutile de penser que la sécurité des carte bancaires
est à remettre en question. Il est toujours bien plus facile de braquer le sac à main
d’une personne âgée que de pirater des cartes bancaires.