
L'article examine les mythes et scénarios populaires de fraude au paiement sans contact en utilisant l'exemple d'un véritable terminal de point de vente, de cartes PayPass / payWave et de téléphones avec la fonction Google Pay / Apple Pay.
Sujets traités:
- Est-il vraiment possible de voler de l'argent en mettant mon terminal PDV dans ma poche? - Nous allons essayer de reproduire intégralement ce scénario de fraude du début à la fin, en utilisant un vrai terminal PDV et des cartes de paiement en conditions réelles.
- Quelle est la différence entre les cartes Apple Pay physiques et virtuelles? - comment la carte physique et le jeton Apple Pay sont liés, et pourquoi Apple Pay est beaucoup plus sûr qu'une carte ordinaire.
- Nous utilisons un renifleur NFC matériel (ISO 14443A) - nous utiliserons un appareil HydraNFC pour intercepter les données entre le terminal PDV et la carte. Considérez quelles données sensibles peuvent être extraites du trafic intercepté.
- Nous analysons le protocole EMV - quelles données la carte échange avec le terminal POS, le format de demande utilisé, les mécanismes de protection contre la fraude et les attaques par rejeu.
- Nous étudions les opérations sans carte (CNP, MO / TO) - dans quels cas en fait (!) Vous pouvez voler de l'argent d'une carte, en ne lisant que les détails sans contact, et dans lequel c'est impossible.
Attention!L'article décrit en détail le schéma hypothétique de la fraude, du début à la fin, à travers les yeux d'un fraudeur, afin de couvrir tous les aspects dans lesquels les mythes et les erreurs sont cultivés. Malgré le titre provocateur, la principale conclusion de l'article est que
les paiements sans contact sont assez sûrs et que les attaques contre eux prennent du temps et ne sont pas rentables .
Les matériaux de l'article sont présentés à titre informatif uniquement. Toutes les scènes de fraude sont mises en scène et exécutées avec le consentement des parties concernées. Tout l'argent déduit des cartes a été restitué à leurs propriétaires. Le vol de cartes de crédit est une infraction pénale et est punissable par la loi. Comment ça marche?
Pour commencer, considérons les concepts de base: tout mouvement d'argent à l'aide de cartes de paiement n'est possible que par des intermédiaires connectés au système de paiement, tels que VISA ou MasterCard. Contrairement aux virements entre particuliers, le débit d'argent de la carte n'est accessible qu'à une personne morale (commerçant) ayant un accord d'acquisition avec une banque.
Étapes de transaction lors du paiement via un terminal PDVL'illustration ci-dessus montre le schéma de paiement classique via un terminal POS. C'est cette séquence d'actions qui se produit lorsque, après le paiement à la caisse, vous attendez une confirmation au terminal.
- L'acheteur applique / détient / insère la carte dans le terminal PDV;
- Un terminal de point de vente transmet des données à une banque acquéreuse sur Internet;
- La banque acquéreuse via le système de paiement international (MPS) contacte la banque émettrice et demande si un titulaire de carte particulier peut payer pour l'achat;
- La banque émettrice confirme ou refuse l'achat, après quoi un bordereau est imprimé (deuxième chèque).
Il existe des exceptions à ce schéma, par exemple, les transactions hors ligne, nous les examinerons plus avant. De même, si la banque acquéreuse et la banque émettrice sont la même banque, les étapes 2 et 4 sont effectuées au sein de la même banque.
Vendeur (marchand) - une personne ou une organisation qui fournit des biens ou des services
La banque acquéreuse est une banque qui fournit au vendeur des services d'acceptation de paiement par carte bancaire. Dans cette banque, il y a généralement un compte bancaire du vendeur où l'argent débité de la carte est crédité.
Banque émettrice - banque qui a émis la carte. Il contient le compte du titulaire de la carte, à partir duquel l'argent est débité.
Le système de paiement international (MPS) est un système intermédiaire international entre les banques du monde entier qui permet aux banques d'effectuer des règlements entre elles sans conclure un accord avec chaque banque séparément. Toutes les banques liées au ministère des chemins de fer acceptent de travailler selon les mêmes règles, ce qui simplifie considérablement l'interaction. Par exemple, Visa, MasterCard, UnionPay, American Express,
MIR (non, MIR ne fonctionne pas à l'étranger).
Titulaire de carte - une personne qui a conclu un contrat de service de carte avec la banque émettrice.
Quelle est la différence entre une carte ordinaire d'Apple Pay ou de Google Pay?
La procédure de liaison d'une carte bancaire au système Apple Pay ou Google Pay en raison de l'incompréhensibilité du processus donne souvent lieu à des idées fausses, même parmi les informaticiens. J'ai entendu de nombreux mythes différents à propos de cette technologie.
Mythes Apple Pay populaires
- La carte est copiée sur le téléphone
Ce n'est pas le cas, la carte à microprocesseur contient une zone de mémoire protégée avec des informations cryptographiques qui ne peuvent pas être extraites après l'émission de la carte. De ce fait, une carte à puce ne peut en aucun cas être copiée. En toute justice, il faut dire que de telles attaques sont possibles, mais leur coût dépasse le montant total que la plupart des lecteurs de cet article dépenseront toute leur vie. - Chaque fois que le téléphone se connecte à Internet pendant le paiement
Google Pay / Apple Pay ne se connectent pas à Internet lors du paiement via un terminal PDV. Toutes les informations nécessaires sont stockées localement sur le téléphone. - Un nouveau numéro de carte (PAN) est généré pour chaque paiement
Il pourrait en être ainsi si vous lisez les communiqués de presse d'Apple sur la technologie Apple Pay. Mais c'est une interprétation erronée du concept de jeton. En fait, les détails de la carte virtuelle restent inchangés pendant longtemps, vous pouvez le vérifier par les derniers chiffres du numéro de carte dans le bordereau (chèque bancaire) lors du paiement des achats. - Lors du paiement via Apple Pay / Google Pay, des frais supplémentaires sont facturés
Ce n'est pas le cas, vous paierez exactement le montant indiqué sur l'étiquette de prix et selon les termes de votre accord avec la banque émettrice dont vous avez lié la carte. - L'argent peut être débité deux fois
Ce mythe s'applique non seulement à Google Pay / Apple Pay, mais aussi aux cartes bancaires ordinaires. Je pense que cela est dû aux systèmes de paiement des transports publics, dans lesquels le terminal déduit de l'argent du billet à chaque fois qu'il est présenté, de sorte que vous pouvez débiter deux fois ou plus si vous apportez la carte de manière inexacte. Dans le cas des terminaux de point de vente, ce risque n'existe pas, car le terminal cesse d'échanger avec la carte dès qu'il reçoit les données nécessaires.
Associer une carte physique à un jeton dans le téléphoneDes systèmes comme Apple Pay sont alimentés par la
spécification de tokenisation de paiement EMV . La procédure d'association d'une carte physique et d'un téléphone à Apple Pay n'a pas été décrite publiquement, nous analyserons donc le processus en fonction de données connues:
- Le fournisseur (Google, Apple, Samsung) reçoit des informations cartographiques;
- Par le biais du MPS, le fournisseur demande si cette carte (cette banque émettrice) prend en charge la Tokenisation EMV;
- Du côté MPS, une carte virtuelle (jeton) est générée, qui est téléchargée sur le stockage sécurisé du téléphone. Je ne sais pas exactement où la clé privée de la carte virtuelle est générée, qu'elle soit transmise sur Internet ou générée localement sur le téléphone, dans ce cas, cela n'a pas d'importance.
- Une carte à jeton virtuelle générée apparaît sur le téléphone, les opérations sur lesquelles la banque émettrice interprète comme des opérations sur la première carte physique. En cas de blocage de la carte physique, le jeton est également bloqué.
Apple Pay vous permet de lire les détails d'une carte virtuelle. Le numéro PAN et la date d'expiration diffèrent de la carte liée de la Alfa-Bank russe. Le BIN de la carte virtuelle (480099) est déterminé par la MBNA AMERICA BANK.Lors d'un paiement par téléphone, le terminal PDV voit une carte VISA ou MasterCard régulière et communique avec lui de la même manière qu'avec une carte physique. Une carte à jeton virtuelle contient tous les attributs d'une carte ordinaire: numéro PAN, date d'expiration, etc. Dans le même temps, le numéro de carte virtuelle et la période de validité diffèrent de la carte d'origine jointe.
Scénario 1 - Terminal POS régulier
Fraud de terminal de point de venteL'intrigue de fraude la plus populaire dans l'esprit des gens ordinaires: un fraudeur avec un terminal allumé est pressé contre eux dans la foule et radie de l'argent. Nous allons essayer de reproduire ce scénario dans la réalité.
Les conditions sont les suivantes :
- Le fraudeur a un terminal de point de vente ordinaire entièrement fonctionnel connecté à une banque acquéreuse, comme dans les magasins et les coursiers. Le firmware du terminal n'est pas modifié. Dans notre cas - Ingenico iWL250. Il s'agit d'un terminal de point de vente portable avec un modem GPRS qui prend en charge le paiement sans contact, fonctionne sur batterie et est entièrement mobile.
- Le fraudeur n'utilise pas de moyens techniques supplémentaires, uniquement un terminal PDV
- Les fonds débités sont crédités sur le compte courant du fraudeur, selon toutes les règles des systèmes bancaires
Entité légale

Tout d'abord, nous avons besoin d'une entité juridique avec un compte courant et une acquisition connectée. Comme de vrais escrocs, nous ne distinguerons rien en notre nom, mais nous essaierons d'acheter une entité juridique toute faite. la personne sur le site pour les mêmes escrocs. Pour ce faire, regardez les annonces sur la première page de Google pour "acheter ip" et "acheter ooo".
Offres de vente d'entreprises prêtes à l'emploi contre les fraudeurs (cliquable)Le prix d'une entreprise sur le marché noir avec un compte courant varie de 20 à 300 mille roubles. J'ai réussi à trouver plusieurs offres de LLC avec un terminal POS à partir de 200 mille roubles. Ces sociétés sont encadrées par des mannequins, et l'acheteur reçoit l'ensemble complet des documents, ainsi qu'une «carte cache» - il s'agit d'une carte bancaire liée au compte de règlement de la société fictive. Avec une telle carte, un fraudeur peut retirer de l'argent à un guichet automatique.
Pour simplifier, nous supposons que LLC + compte bancaire + acquisition et un terminal de point de vente coûteront au fraudeur 100 000 roubles . En fait plus, mais nous simplifierons la vie de notre fraudeur hypothétique, réduisant le coût de l'attaque. Après tout, plus le coût d'une attaque est faible, plus sa mise en œuvre est facile.
Volons de l'argent
Ainsi, le fraudeur a obtenu un terminal de point de vente et est prêt à se rendre dans un endroit bondé pour s'appuyer contre les victimes et voler de l'argent dans ses poches. Dans notre expérience, toutes les victimes ont été pré-informées de nos intentions, et toutes les tentatives d'annuler de l'argent ont été faites avec leur consentement. Dans les cas où les sujets n'avaient pas leurs propres cartes bancaires sans contact, on leur a demandé de mettre notre carte dans leur portefeuille. Auparavant, les sujets avaient découvert exactement où et comment ils stockaient leurs cartes, de sorte que le fraudeur savait à l'avance où se trouvait la carte sans contact dans le sac / la poche.
Vidéo: un fraudeur fait rage dans un centre commercialEn cas de radiation réussie, la transaction était annulée via le menu du terminal et l'argent était restitué sur le compte des sujets. Pendant toute la durée de l'expérience, nous avons essayé de «voler» de l'argent à 20 sujets dans le bâtiment du centre commercial et dans la rue. Le résultat du test est décrit ci-dessous.
Problème: limite de transaction sans code PIN
La limite du montant maximal de la transaction sans confirmation avec un code PIN peut être définie à la fois sur le terminal de point de vente lui-même (CVM Required Limit) et sur le côté de la banque. En Russie, cette restriction est égale à 1000 roubles.
UPD Dans les paramètres de la carte, le type d'autorisation Méthodes de vérification du titulaire de carte (CVM) peut être défini comme une signature sur le chèque. Dans ce cas, une transaction sans contact aura lieu pour tout montant sans code PIN.
Notre fraudeur décide de radier 999,99 roubles à la fois. Si vous êtes invité à réessayer d'annuler le montant inférieur à la limite dans un court laps de temps, il vous sera également demandé d'entrer le code PIN et, dans la plupart des cas, il ne sera pas possible d'annuler 999,99 roubles plusieurs fois de suite. Par conséquent, la stratégie la plus optimale ne sera pas plus d'une charge d'une carte.
En Russie, le montant maximum débité sans code PIN est de 1000 roubles.En fait, de nombreuses radiations d'un montant de 999,99 roubles sur une courte période peuvent déclencher le fonctionnement du système antifraude du côté de la banque acquéreuse, cette stratégie n'est donc pas optimale pour le fraudeur. Ainsi, dans la vraie vie, il devrait choisir des montants plus diversifiés, réduisant ainsi le revenu potentiel.
Soit dit en passant, de nombreux articles sur ce sujet en russe disent que vous pouvez définir manuellement votre propre limite sur les transactions sans contact sans code PIN. Je n'ai pas pu trouver une telle option dans les principales banques russes. Peut-être connaissez-vous cette possibilité? Il s'agit de paiements sans contact et non de transactions par puce et épingle.
Problème: plusieurs cartes dans le portefeuille
C'est un point important dans ce scénario d'attaque, car en réalité presque personne ne porte
une seule carte dans sa poche. Dans la plupart des cas, la carte est stockée dans le portefeuille avec d'autres cartes sans contact, telles que des billets de voyage ou d'autres cartes bancaires.
Plus précisément, mon terminal Igenico iWL250, lorsqu'il détecte plus d'une carte dans le champ d'action avec un SAK indiquant la prise en charge du protocole 14443-4, renvoie une erreur: «présenter une carte».
Mais tous les terminaux ne le font pas. Par exemple, les terminaux POS VeriFone Sberbank choisissent une carte aléatoire parmi plusieurs. Certains terminaux ignorent simplement toutes les cartes s'il y en a plusieurs, sans afficher de messages d'erreur.
Essayer de lire plusieurs cartes dans un portefeuille. Le terminal POS renvoie une erreur.Anti-collision ISO 14443-3
Lire une carte spécifique parmi plusieurs n'est pas une tâche facile au niveau physique. Pour résoudre ce problème, il existe un mécanisme d'anticollisions. Il vous permet de sélectionner une carte si une réponse a été reçue de plusieurs cartes à la fois. Il s'agit de la toute première étape pour établir le contact avec une carte sans contact dans le protocole ISO-14443A. À ce stade, le lecteur n'est pas en mesure de déterminer laquelle des cartes présentées est bancaire. La seule option est de choisir une carte plus ou moins similaire à une carte bancaire, en fonction de la réponse de SAK (Select Acknowledge).
Valeur en bits dans la réponse SAKAinsi, par exemple, la carte Troïka (norme Mifare) utilisée dans les transports publics de Moscou a une valeur de
SAK = 0x08 (b00001000) , dans laquelle le sixième bit est nul. Alors que pour toutes les cartes bancaires dans les réponses SAK, le sixième bit est 1, ce qui signifie la prise en charge du protocole ISO 14443-4.
Par conséquent, tout ce que le terminal peut faire lorsque plusieurs cartes sont détectées en même temps est d'exclure les cartes qui ne prennent pas en charge ISO 14443-4 et d'en choisir une similaire à la banque. La prise en charge du protocole ISO 14443-4, en passant, ne garantit pas que cette carte sera une carte bancaire, mais très probablement, dans le portefeuille d'une personne ordinaire, il n'y aura aucun autre type de cartes prenant en charge ISO 14443-4.
Organigramme du protocole anti-collisionD'expérience personnelle: malgré l'existence d'un protocole anti-collision, s'il y a au moins trois cartes sans contact dans votre portefeuille, il est
EXTRÊMEMENT difficile de lire
avec succès la carte souhaitée. La plupart des tentatives entraînent des erreurs de lecture. Il est encore plus difficile de le faire en courant, accroché aux poches et aux sacs de quelqu'un d'autre.
Cependant, nous considérerons que notre fraudeur a beaucoup de chance, et cette restriction ne le dérange pas.
Transactions hors ligne vs transactions en ligne
Dans des reportages effrayants, ils parlent d'escroqueurs avec des terminaux POS dans des voitures de métro, qui vous font de l'argent dans les poches en chemin. Ces histoires ne mentionnent pas d'où l'escroc a obtenu l'Internet mobile dans la voiture de métro. Peut-être que son terminal prend en charge les transactions hors ligne?
Les spécifications EMV autorisent les transactions hors ligne. Dans ce mode, le débit s'effectue sans confirmation en ligne de la banque émettrice. Cela fonctionne, par exemple, dans les transports publics à Moscou et à Saint-Pétersbourg. Afin de ne pas faire la queue à l'entrée du bus, pendant que le terminal complète la confirmation en ligne, il vous laisse entrer immédiatement sans vérifier si vous avez suffisamment d'argent sur votre compte pour payer le tarif. En fin de journée, lorsque Internet apparaît sur le terminal, les transactions signées sont envoyées à la banque émettrice. S'il s'avère qu'à ce moment vous n'avez pas d'argent pour payer le prix, la carte sera ajoutée à la liste des arrêts dans tous les terminaux de la ville. Vous pouvez rembourser la dette via votre compte personnel par numéro de carte.
En savoir plus sur le paiement du bus à Saint-Pétersbourg.
Personnellement, je n'ai pas pu obtenir de terminal POS prenant en charge cette fonction, donc dans le scénario avec le terminal POS «civil» habituel, nous ne considérerons pas la possibilité de débit hors ligne. Cela ne change rien, sauf que l'attaquant aura besoin d'Internet au terminal, donc l'attaque, par exemple, dans le métro, est beaucoup plus compliquée.
Il existe des modèles de terminaux qui prennent en charge le WiFi, et en théorie, notre fraudeur pourrait utiliser le WiFi dans le métro, ayant auparavant pris soin d'acheter un accès sans publicité pour l'adresse MAC de son terminal de point de vente afin que l'authentification n'ait pas besoin d'être effectuée via le portail captif, car sur le point de vente. le terminal ne peut pas faire cela.
Calculer le profit
Dans notre scénario, le coût de l'attaque était de 100 000 roubles. Cela signifie que pour au moins restituer les investissements, notre héros doit effectuer au moins 100 transactions de 1 000 roubles chacune. Imaginez qu'il était assez agile et courait dans la ville toute la journée, s'accrochant à tout le monde d'affilée, de sorte qu'à la fin de la journée, il avait réussi 120 radiations. Nous ne prendrons pas en compte la commission d'acquisition (en moyenne 2%), la commission d'encaissement (4-10%) et les autres commissions.
Peut-il encaisser de l'argent avec une carte liée à un compte courant?
En réalité, tout n'est pas si simple.
L'argent ne sera crédité sur le compte du fraudeur que dans quelques jours! Pendant ce temps, notre fraudeur devrait espérer qu'aucune des cent vingt victimes ne contestera la transaction, ce qui est extrêmement improbable. Par conséquent, en réalité, le compte du fraudeur sera bloqué avant même que l'argent lui soit crédité.
Si une personne a remarqué qu'un achat sur sa carte n'a pas été effectué, elle doit contacter la banque émettrice et déposer une réclamation. Il faut jusqu'à 30 jours pour examiner les opérations litigieuses en Russie et jusqu'à 60 jours pour les transactions effectuées à l'étranger. - -, - , .
, ()
Conclusion
Le coût d'une attaque dans notre scénario est de 100 000 roubles. En fait, il sera plusieurs fois plus élevé, donc le fraudeur aura besoin de beaucoup plus d'efforts pour réaliser un profit.Dans notre scénario, le fraudeur annule toujours 999,99 roubles, ce qui entraînera très probablement le fonctionnement du système antifraude du côté de la banque acquéreuse. En réalité, le fraudeur devra radier de plus petits montants.Afin de récupérer au moins les investissements, le fraudeur devra traiter plusieurs centaines de victimes. Si même une douzaine d'entre eux contactent la banque émettrice et contestent la transaction, le compte du fraudeur sera très probablement bloqué. Le scénario dans lequel la banque acquéreuse est en collusion avec le fraudeur est peu probable, car la licence pour travailler avec le MPS coûte beaucoup plus cher que tout profit potentiel de ce type de fraude.Sur les 20 sujets, seulement trois ont réussi à annuler l'argent de la carte, ce qui représente 15% du succès de toutes les tentatives. Ce sont ces cas artificiels quand il y avait une seule carte dans votre poche. Dans les cas avec un portefeuille et plusieurs cartes, le terminal a renvoyé une erreur. Dans un scénario avec un terminal qui utilise un firmware modifié et implémente un mécanisme anti-collision, le pourcentage de charges réussies peut être plus élevé. Cependant, même dans le cas de l'utilisation d'anti-collisions, en conditions réelles sur la course, il est si difficile de compter une carte parmi plusieurs afin que le débit réussi dans de telles conditions puisse être considéré comme de la chance. En réalité, la part des radiations réussies ne dépassera guère 10% du nombre de tentatives., , , . - , .
2 — POS-
Disons que notre escroc travaille à la caisse dans un magasin ou un coursier avec un terminal de point de vente mobile. Dans ce cas, il a la possibilité de capturer des données de carte, qui, dans certains cas, peuvent suffire à payer sur Internet.Tout d'abord, découvrons à quoi ressemble une transaction sans contact et quel type de données la carte échange avec un terminal de point de vente. Étant donné que nous sommes trop paresseux pour lire des milliers de pages de documentation EMV sans contact , nous interceptons simplement l'échange au niveau physique à l'aide du renifleur HydraNFC.Il existe une certaine différence entre la spécification EMV pour MasterCard PayPass et Visa payWave. Il s'agit de la différence de format de signature et de certaines données. Mais pour nous, ce n'est pas essentiel.Renifleur NFC
HydraNFC est un renifleur autonome entièrement open source ISO-14443A qui enregistre les commandes APDU interceptées sur une carte SD. L'antenne renifleur est située entre le terminal et la carte et capture passivement toutes les informations transmises.→ Site Web sur HydraBus et le bouclier HydraNFC→ Sources du firmware Démonstration d'interception de l'échange entre le terminal de point de vente et le téléphone avec Apple PayÀ l'avenir, je dois dire qu'à ce niveau, le paiement par téléphone et une carte en plastique ordinaire n'est pas différent. Pour un terminal de point de vente, il s'agit d'une carte VISA ordinaire. Cependant, payer par téléphone est beaucoup plus sûr que d'utiliser une carte physique, puis nous analyserons pourquoi.Analyse du protocole EMV
Voici à quoi ressemble le vidage enregistré lorsque vous payez pour du chocolat et une bouteille d'eau pour une valeur totale de 142,98 roubles avec Apple Pay:Données brutes reçues du renifleur (spoiler ouvert)
()R (READER) — POS-
T (TAG) — ( )
R>> 52
R>> 52
R>> 52
R>> 52
R>> 52
R>> 52
R>> 52
T<< 04 00
R>> 93 20
T<< 08 fe e4 ec fe
R>> 93 70 08 fe e4 ec fe dd 6e
T<< 20 fc 70
R>> 50 00 57 cd
R>> 26
R>> 52
T<< 04 00
R>> 93 70 08 fe e4 ec fe dd 6e
T<< 20 fc 70
R>> e0 80 31 73
T<< 05 78 80 70 02 a5 46
R>> 02 00 a4 04 00 0e 32 50 41 59 2e 53 59 53 2e 44 44 46 30 31 00 e0 42
T<< 02 6f 23 84 0e 32 50 41 59 2e 53 59 53 2e 44 44 46 30 31 a5 11 bf 0c 0e 61 0c 4f 07 a0 00 00 00 03 10 10 87 01 01 90 00 4b b3
R>> 03 00 a4 04 00 07 a0 00 00 00 03 10 10 00 bc 41
T<< 03 6f 31 84 07 a0 00 00 00 03 10 10 a5 26 9f 38 18 9f 66 04 9f 02 06 9f 03 06 9f 1a 02 95 05 5f 2a 02 9a 03 9c 01 9f 37 04 bf 0c 08 9f 5a 05 60 08 40 06 43 90 00 1d 66
R>> 02 80 a8 00 00 23 83 21 36 a0 40 00 00 00 00 01 42 98 00 00 00 00 00 00 06 43 00 00 00 00 00 06 43 18 09 18 00 e0 11 01 03 00 f9 14
T<< 02 77 62 82 02 00 40 94 04 18 01 01 00 9f 36 02 02 06 9f 26 08 d6 f5 6b 8a be d7 8f 23 9f 10 20 1f 4a ff 32 a0 00 00 00 00 10 03 02 73 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9f 6c 02 00 80 57 13 48 00 99 72 50 51 17 56 d2 31 22 01 00 00 05 20 99 99 5f 9f 6e 04 23 88 00 00 9f 27 01 80 90 00 af c8
R>> 03 00 b2 01 1c 00 c9 05
T<< 03 70 37 5f 28 02 06 43 9f 07 02 c0 00 9f 19 06 04 00 10 03 02 73 5f 34 01 00 9f 24 1d 56 30 30 31 30 30 31 34 36 31 38 30 34 30 31 37 37 31 30 31 33 39 36 31 36 37 36 32 35 90 00 a7 7b
Analysons séparément chaque ligne du vidage intercepté.R >> - données transmises par le POS-terminalT >> - données transmises par la carte (dans notre cas, un téléphone avec Apple Pay)14443-A Sélectionner
Au début de l'échange, le terminal établit une connexion avec la carte au niveau du canal. Pour ceux qui sont familiers avec les réseaux et le modèle OSI, il sera pratique de le présenter comme le niveau L2 et l'UID (Unique Identifier) de la carte comme l'adresse MAC de l'hôte.Dans la terminologie standard ISO-14443:
PCD (dispositif de couplage de proximité) est le nom du lecteur, dans notre cas, il s'agit d'un PIC-terminal
PICC (carte de circuit intégré de proximité) est une carte, dans notre cas, le téléphone joue ce rôle
Une différence importante entre une carte de paiement classique d'Apple Pay est que la carte est toujours lisible et ne vous permet pas de contrôler le processus de lecture. Il peut être lu de manière incontrôlée à travers les vêtements, tandis que le téléphone, tombant dans le champ d’action du lecteur, invite l’utilisateur à activer une carte virtuelle. Jusqu'à ce que l'utilisateur confirme, le téléphone ne transmet aucune donnée et le lecteur ne sait même pas qu'il y a une carte virtuelle à proximité.R>> 52 // WUPA (wake up)
R>> 52 // WUPA
R>> 52 // WUPA
R>> 52 // WUPA
R>> 52 // WUPA
R>> 52 // WUPA
R>> 52 // WUPA
T<< 04 00 // ATQA (Answer To Request type A)
R>> 93 20 // Select cascade 1 (Anti Collision CL1 SEL)
T<< 08 fe e4 ec fe // UID (4 bytes) + BCC (Bit Count Check)
R>> 93 70 08 fe e4 ec fe dd 6e // SEL (select tag 0x9370) + UID + CRC16
T<< 20 fc 70 // SAK (Select Acknowledge 0x20) + CRC16
R>> 50 00 57 cd // HALT (Disable communocaion 0x5000) + CRC16
R>> 26 // REQA
R>> 52 // WUPA
T<< 04 00 // ATQA
R>> 93 70 08 fe e4 ec fe dd 6e // SELECT
T<< 20 fc 70 // SAK
R>> e0 80 31 73 // RATS (Request Answer to Select 0xE080) + CRC16
T<< 05 78 80 70 02 a5 46 // ATS (Answer to select response)
Le terminal envoie constamment la commande de réveil 0x52 (WUPA) et dès que la carte apparaît dans le champ d'action, il répond avec la commande Answer To Request de type A (ATQA), dans notre cas, c'est 0x04 0x00 . La réponse ATQA peut varier selon les fabricants de puces.Après avoir reçu une réponse ATQA, le terminal commence une procédure de détection de collision pour déterminer s'il y a plus d'une carte dans le champ d'action. La commande 0x93 0x20 Select cascade level 1 (SEL CL1) demande à toutes les cartes du champ d'action de signaler la première partie de leur UID.La carte répond avec 0x08 0xFE 0xE4 0xEC 0xFE , les quatre premiers octets sont l'UID de la carte virtuelle Apple Pay et le contrôle du nombre de bits 0xFE (BCC) à la fin.Après avoir reçu les identifiants de carte, le lecteur accède à la carte spécifique avec la commande 0x93 0x70 (SELECT). Pour une équipe d'être carte UID 0x08 0xfe 0xe4 0xec + 0xfe la BCC + 0xdd 0x6E CRC16.La carte répond avec 0x20 Select Acknowledge (SAK) + 0xfc 0x70 CRC16.Si plusieurs réponses SAK sont reçues à cette étape, le lecteur peut réduire la longueur de l'UID dans la commande SELECT jusqu'à ce qu'une seule carte réponde. Cependant, comme indiqué ci-dessus, certains terminaux de point de vente refusent de continuer si des collisions sont détectées à ce stade, c'est-à-dire la présence de plusieurs cartes en même temps.UID 4, 7 10 . , , Apple Pay, UID 4 . , Apple Pay UID , , UID . , , , UID .
Le lecteur envoie la commande 0x50 0x00 HALT + 0x57 0xcd CRC16. Il s'agit d'une commande de terminaison.Ensuite, la procédure est répétée à nouveau, le lecteur réveille à nouveau la carte (WUPA), mais sans vérifier les collisions, SELECT est immédiatement exécuté. Pourquoi cela est fait - je ne sais pas, c'est peut-être un moyen plus fiable de déterminer les collisions.La deuxième fois, le lecteur envoie déjà la commande 0xE0 0x80 Request Answer to Select (RATS) + 0x31 0x73 CRC16.La carte répond 0x05 0x78 0x80 0x70 0x02 Réponse pour sélectionner la réponse (ATS) + 0xA5 0x46 CRC16.Répondre pour sélectionner- La réponse est similaire à la réponse à la réinitialisation (ATR) pour les cartes de contact. Il contient des informations sur la taille de trame maximale et les paramètres de couche de liaison.A ce stade, le niveau «canal» est terminé, puis l'échange commence sur un protocole de niveau supérieur, en fonction de l'application contenue sur la carte. L'opération SELECT est la même pour toutes les cartes sans contact de la norme ISO 14443A, y compris les étiquettes NFC, les tickets de transports en commun, etc.Demande d'applications disponibles - SELECT PPSE
Description officielle: Spécifications EMV sans contact - PPSE et gestion des applications pour l'élément sécuriséLe début de la communication avec une carte EMV se produit toujours en lisant le PPSE (Payment System Environment). Le terminal demande à la carte quelles sont les applications de paiement.Le plus souvent, il s'agit d'une seule application, comme dans notre exemple - VISA. Cependant, il existe des cartes avec plusieurs applications de paiement, par exemple, il existe des cartes MIR nationales spéciales avec deux applications de paiement à l'intérieur. Le système de paiement MIR ne fonctionnant pas à l'étranger, une deuxième application de paiement est intégrée à la carte, en fait une deuxième carte. Il peut s'agir d'une application de système de paiement JCB ou UnionPay. Ces cartes sont appelées cobaging.Commande APDU SELECT PPSE'00 A4 04 00 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 00'
00 A4 04 00 // select
0E // command data (14 )
32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 // command data 2PAY.SYS.DDF01
00 //
Répondre à SELECT PPSE'6F 23 84 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 11 BF 0C 0E 61 0C 4F 07 A0 00 00 00 03 10 10 87 01 01 90 00'
Pour plus de commodité, nous analyserons la réponse en utilisant l'analyseur en ligne du format TVL iso8583.info/lib/EMV/TLVs . La même réponse traitée par l'analyseur:
De tout cela, nous ne sommes intéressés que par l'identifiant de l'application de paiement (AID). Dans ce cas, cette valeur est A0000000031010 , c'est-à-dire Visa International.L'AID est marqué d'un marqueur 4F . Le deuxième bit après le jeton est la longueur des données qu'il contient. Bien que la longueur de l'AID puisse varier de 5 à 16 octets, dans la plupart des cas, elle est de 7 octets.AID Big List: eftlab.co.uk/knowledge-base/211-emv-aid-rid-pixQuelques AID populairesA0000000031010 Visa International
A0000000032020 Visa International
A0000000041010 Mastercard International
A0000000043060 Mastercard International United States Maestro (Debit)
Indicateur de priorité d'application - indique la priorité des applications de paiement. Par exemple, dans les cartes de cobaging de MIR qui contiennent plusieurs applications de paiement, ce champ indique laquelle des deux applications est prioritaire. Étant donné que nous n'avons qu'une seule demande de Visa International, elle pointe vers elle et il n'y a aucune priorité.Lancer l'application de paiement - SELECT AID'00 A4 04 00 07 A0 00 00 00 03 10 10'
00 A4 04 00 // select
07 // command data (7 )
A0 00 00 00 03 10 10 // AID Visa International
Après avoir sélectionné l'application de paiement nécessaire, le terminal la lance.PDOL (liste des objets de données des options de traitement)
'6f 31 84 07 a0 00 00 00 03 10 10 a5 26 9f 38 18 9f 66 04 9f 02 06 9f 03 06 9f 1a 02 95 05 5f 2a 02 9a 03 9c 01 9f 37 04 bf 0c 08 9f 5a 05 60 08 40 06 43 90 00'
Analysons la réponse avec l'analyseur
En réponse au lancement de l'application de paiement, la carte signale un ensemble de paramètres qu'elle attend de la part du terminal - PDOL (Processing Options Data Object List). Le terminal doit répondre dans le strict respect de cette séquence.Les PDOL pour différentes cartes peuvent varier. Le nombre total de paramètres PDOL est de plusieurs dizaines. Une liste complète des paramètres PDOL peut être trouvée ici .Examinons de plus près PDOL. La longueur indiquée après le marqueur est la longueur strictement attendue de la réponse du terminal à cette requête. Une réponse vide est remplie de zéros à la longueur souhaitée.Analyse des requêtes PDOL:9F 38 18 // PDOL. 18 (24 )
9F 66 ( 04) // Terminal Transaction Qualifiers (TTQ). .
9F 02 ( 06) //
9F 03 ( 06) //
9F 1A ( 02) // ISO3166-1
95 ( 05) // Terminal Verification Results
5F 2A ( 02) // , , ISO4217
9A ( 03) // YYMMDD
9C ( 01) //
9F 37 ( 04) //
Jusqu'à ce point, toutes les données transmises sont identiques pour toutes les transactions sur cette carte.Demande de facturation - OBTENIR DES OPTIONS DE TRAITEMENT
'80A8000023832136A0400000000001429800000000000006430000000000064318091800E011010300'
80 A8 00 00 // GET PROCESSING OPTIONS (GPO)
23 // (35 )
83 // PDOL-
21 // PDOL- (33 )
36 A0 40 00 // Terminal Transaction Qualifiers (TTQ)
00 00 00 01 42 98 // (142,98 )
00 00 00 00 00 00 //
06 43 // (643 - )
00 00 00 00 00 // Terminal Verification Results (TVR)
06 43 // (643 - russian ruble)
18 09 18 // (18 2018 )
00 //
E0 11 01 03 //
Cette réponse montre clairement comment le terminal, qui est situé en Russie, demande à être débité de la carte pour un montant de 142,98 roubles. Nous attirons l'attention sur le nombre aléatoire à la fin (E0110103). Il s'agit du paramètre 9F37 Unpredictable Number . Il s'agit de la première mention de la cryptographie. À l'avenir, ce numéro, ainsi que les données de transaction, la carte devra signer avec une signature cryptographique. Cela donne au terminal le contrôle de la pertinence de la signature de la carte et protège contre les attaques par rejeu.Réponse de la carte à GET PROCESSING OPTIONS
'7762820200409404180101009F360202069F2608D6F56B8ABED78F239F10201F4AFF32A00000000010030273000000004000000000000000000000000000009F6C02008057134800997250511756D23122010000052099995F9F6E04238800009F2701809000'
Cette réponse contient des champs de données spécifiques à VISA, j'ai donc utilisé un analyseur prenant en charge la spécification de paiement sans contact VISA (VCSP) .
Profil d'échange d'application (AIP) - contient des informations sur les paramètres de l'application de paiement. Dans notre cas, AIP est 00 40 . Considérez les valeurs de ce paramètre dans EMV 4.3 Book 3 .Dans notre cas, un bit est défini dans le deuxième octet, qui, selon ce tableau, est réservé pour une utilisation future (RFU). Qu'est-ce que cela signifie et quel est l'intérêt d'investir dans Apple Pay, je ne sais pas.AIP contient des informations importantes sur les méthodes d'authentification prises en charge (SDA, CDA, DDA) de paiement. Pourquoi dans mon cas tous ces drapeaux sont égaux à zéro - je ne comprends pas.Localisateur de fichiers d'application (AFL) - Contient des informations d'enregistrement SFI dans un AID spécifique. Sur la base de cette réponse, le terminal va générer une requête READ RECORD.Analysons plus en détail la réponse AFL: l'identificateur de fichier court (SFI) est 0x18. Ce paramètre est codé avec cinq bits au lieu de huit. Par conséquent, la valeur 0x18 (b00011000) est convertie en b00000011 et nous obtenons 0x3.Premier enregistrement = 1Dernier enregistrement = 1i.e. dans le "dossier" n ° 3, il y a des entrées de 1 à 1, c'est-à-dire une entrée.Le compteur de transactions d'application (ATC) est un compteur de transactions incrémentielles qui s'incrémente d'une unité chaque fois qu'une GET PROCESSING OPTIONS est demandée. Une fois la valeur 0xFFFF ou 0x7FFF atteinte, l'application de paiement sera définitivement bloquée. Je crois que cela est fait pour se protéger contre la force brute de la clé privée de la carte. Dans notre cas, on peut voir que cet iPhone avec Apple Pay a déjà été utilisé pour payer 518 (0x206) fois.Cryptogramme d'application (AC) - une signature cryptographique calculée par la carte à l'aide de sa clé privée. Cette signature est transmise avec le reste des données à la banque émettrice, et l'authenticité de la transaction est vérifiée sur sa base. La clé privée de la carte ne pouvant pas être (moyen accessible) extraite de la carte, cela élimine la possibilité de copier la carte.Issuer Application Data (IAD) - Contient des données propriétaires spécifiques à VISA. Je n'ai pas maîtrisé l'analyse de cette structure, aide.Card Transaction Qualifiers (CTQ) - Liste spécifique à VISA des spécifications de cartes prises en charge. Par exemple, est-il possible d'utiliser cette carte sans contact pour des transactions dans un guichet automatique ou non, et quel type de confirmation sera requis.
Données équivalentes de la piste 2 - Oppa!Ce champ contient le numéro de carte et la date d'expiration, plus de détails sur ces informations seront discutés plus tard.Indicateur de facteur de forme (FFI) - champ spécifique à VISA. Décrit le facteur de forme et les caractéristiques d'un appareil de paiement. Dans notre cas, il est clair qu'il s'agit d'un téléphone portable.Cryptogram Information Data (CID) - Je n'ai pas maîtrisé l'analyse de cette structure, aide.LIRE la requête ENREGISTREMENT DES DONNÉES
'00 b2 01 1c 00'
Le terminal envoie une demande de lecture des enregistrements reçus de l'AFL:
dans ce cas, à partir de l'octet 0x1C , lu comme deux valeurs, où les cinq premiers bits sont 0x18 (b000011) et sont SFI, et les trois bits suivants sont 0x04 (d100), et constituer le numéro d'enregistrement.Répondre à READ RECORD
'70375F280206439F0702C0009F19060400100302735F3401009F241D5630303130303134363138303430313737313031333936313637363235'
Contrôle d'utilisation des applications (AUC) - détermine s'il est autorisé à payer avec une carte à l'étranger et les types d'opérations autorisés.9F19 - quelque chose d'incompréhensible, apparemment - la TokenisationEMV de la liste d'objets de données d'authentification dynamique de données (DDOL) , la référence de compte de paiement (PAR) est un paramètre spécifique aux cartes à jetons (virtuelles). Je n'ai pas maîtrisé l'analyse de cette structure, aide.Que peut-on extraire d'une transaction interceptée?
Nous avons analysé un exemple spécifique du trafic intercepté d'une transaction sans contact Apple Pay avec une carte VISA liée. Le protocole MasterCard est légèrement différent, mais globalement similaire. D'après l'analyse, on peut voir que la transaction est protégée par crypto-signature et que le protocole est protégé contre une attaque par rejeu. Il existe un protocole de paiement sans contact obsolète en mode Bande magnétique (MSD), qui est beaucoup moins protégé contre les attaques par rejeu, mais dans cet article, je ne le démonterai pas, car, à ma connaissance, il n'est presque pas pris en charge dans la CEI, je me trompe peut-être.
À partir des données interceptées, vous pouvez extraire le numéro de carte (PAN) et la date d'expirationComme vous pouvez le voir, à partir du trafic intercepté, vous pouvez extraire le numéro de carte complet et la date d'expiration. Bien que CVV ne soit pas dans cette décharge, ces données sont déjà suffisantes pour payer dans certaines boutiques en ligne. Dans le cas d'une carte en plastique physique ordinaire, les données interceptées contiendront le même PAN et la même date d'expiration qui estampillée sur la carte elle-même!Paiement Internet sans CVV (CNP, MO / TO)
Dans mon article précédent «Nous utilisons Apple Pay et la carte Troïka comme passe pour travailler» sur ACS basé sur Apple Pay, j'ai été critiqué dans les commentaires, disant que n'ayant que les 10 derniers chiffres de la carte, vous pouvez voler de l'argent. Dans le vidage ci-dessus, non seulement le numéro complet de ma carte est indiqué, mais aussi la date d'expiration. Ces données suffisent à payer dans certains magasins sur Internet. Eh bien, essayez de le faire.
Le formulaire d'ajout de carte Amazon ne nécessite pas de CVVS'il s'agissait d'un numéro de carte physique, de l'argent pourrait en effet être volé, mais les données du jeton Apple Pay peuvent être utilisées UNIQUEMENT pour les opérations de client présent (CP) lorsque la carte signe la transaction avec une signature cryptographique. Ces données ne peuvent pas être utilisées pour le paiement sur Internet et d'autres opérations telles que Carte non présente (CNP), c'est-à-dire par téléphone ou par e-mail. Voilà!Pour tous ceux qui souhaitent vérifier cela, je vous informe que les détails du vidage Apple Pay intercepté ci-dessus sont actuellement pertinents et liés à une carte valide qui contient de l'argent. Au moment de la rédaction de ce document, cela représente 5 mille roubles. Je suggère d'essayer de les voler :)
Pourquoi Apple Pay est plus sûr qu'une carte ordinaire
Apple Pay vs carte sans contact ordinaire
- Apple Pay ( ) . POS-. , «» , , , , , . Apple Pay , , .
- — Apple Pay (13,56 ), , . . Apple Pay , .
- — Card not present (CNP), , .. Apple Pay .
- — (Cardholder name) . , , . Apple Pay .
. , . .
, Apple Pay . CNP- ( ) , .
: