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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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.