Faille dans les cartes Visa

Une news qui n’a pas dû vous échapper tant elle a fait couler d’encre le mois dernier : « la carte Visa peut se faire hacker en 4 secondes ». Comme souvent, des raccourcis sont pris afin de rendre les titres accrocheurs ! Mais qu’en est-il vraiment ? Lisez la suite.

Cette vulnérabilité a été mise au jour dans le cadre d’un travail universitaire mené par Mohammed Aamir Ali, Budi Arief, Martin Emms et Aad van Moorsel.

Contrairement à ce qu’on pourrait penser en lisant le titre, ce n’est pas la carte elle-même qui a fait l’objet d’un piratage. Cela aurait été le cas s’il avait été question, par exemple, de récupérer le code PIN stocké sur la puce, ou de fabriquer une yes card. Ce qui n’est absolument pas le cas. En revanche, cette vulnérabilité permet tout de même la récupération de la date d’expiration et le cryptogramme visuel à partir d’un numéro de carte.

Dans un premier temps, nous résumerons donc l’attaque des universitaires puis, nous donnerons notre avis sur leur travail par rapport aux spécificités françaises.

Résumé de l’attaque

Note : dans la suite, nous laisserons volontairement de côté l’adresse postale, utilisée dans l’attaque, mais qui n’apporte rien pour la compréhension, afin de rendre la lecture plus aisée.

L’attaque est rendue possible car tous les formulaires de paiement sur internet ne demandent pas les mêmes informations. Ainsi, si certains sites demandent bien le numéro de carte, la date d’expiration et le cryptogramme visuel, d’autres se contentent des deux premières données. Même si ces derniers sont rares, il n’en faut pas moins pour implémenter une attaque.

Récupération d’un numéro de carte

Cela n’est pas l’objet de la recherche, mais la récupération d’un numéro de carte est chose aisée. Le commerçant chez qui vous faites vos courses possède souvent sur sa facturette le numéro de la carte. Mais il est également possible de prendre une photo furtive d’un client en train de payer devant vous, de lire les données en NFC si sa carte est sans contact, etc.

Note : en lisant les données en NFC de la carte, en plus du numéro de carte, vous récupérerez également  la date d’expiration.

Obtention de la date d’expiration

Puisque la date d’expiration des cartes respecte le format MMAA et que les cartes ont une durée de vie de 5 ans maximum, cela fait 5 années et 12 mois, soit 60 valeurs à tester pour deviner la date d’expiration.

Il suffit donc se rendre sur un site non 3D Secure ne demandant pas le cryptogramme (ils sont rares, certes, mais il en suffit d’un pour que la forteresse s’effondre !) et d’essayer toutes les combinaisons. Dès que le site répond favorablement, la date d’expiration est trouvée.

Obtention du cryptogramme visuel

Même principe ! Le cryptogramme visuel est souvent sur 3 positions, donc 1 000 possibilités.

Il suffit de se rendre sur un site demandant le numéro de carte, la date d’expiration et le cryptogramme visuel et de tester toutes les combinaisons. Dès que le site répond favorablement, le cryptogramme visuel est trouvé.

Cela fonctionne-t-il vraiment ?

Une autre faiblesse vient rendre cette attaque possible. Selon nos doctorants, il n’y aucun contrôle sur le nombre d’autorisations refusées suite à une date d’expiration ou un cryptogramme faux. Aucun contrôle chez les banques et aucun contrôle chez Visa (MasterCard a implémenté ce contrôle rendant cette attaque inopérante sur les cartes adossées au réseau du même nom).

À noter que les contrôles chez les commerçants sont inefficaces car l’attaquant peut changer d’adresse IP, utiliser un autre site web, etc.

Quelles solutions ?

Les doctorants voient 2 solutions empêchant cette attaque : standardisation ou centralisation.

Note : les auteurs parlent également de 3D Secure pour se protéger de l’attaque mais qu’elle n’est pas suffisamment adoptée par les commerçants. [NDLR : ce n’est pas anormal, n’oublions pas que le 3D Secure est une solution de protection des commerçants, pas des porteurs…]

La standardisation des données demandées par les commerçants empêcherait le forçage de la date d’expiration ou du cryptogramme puisqu’il faudrait alors tester, 60 * 1 000 = 60 000 valeurs.

La centralisation des contrôles au niveau des réseaux sur le nombre de demandes d’autorisation refusées pour cryptogramme erroné au niveau des réseaux permettrait de bloquer efficacement les attaques.

L’avis du site

La standardisation ne réglerait pas le problème, elle rendrait juste la tâche plus ardue aux attaquants. De plus, imposer une standardisation des données à tous les commerçants du monde est un vœu pieux ! Et refuser la demande d’autorisation sous prétexte qu’un champ est manquant n’est pas viable parce que non compatible avec l’écosystème monétique (par exemple le cryptogramme ne doit pas être donné dans le cas des transactions récurrentes, par sécurité justement…).

La centralisation au niveau des réseaux paraît séduisante de prime abord mais attention aux cartes co-badgées comme les cartes CB Visa. Il suffit qu’un des deux réseaux n’implémente pas ce scénario pour impacter l’autre…

Pour ma part, j’opterais plutôt pour un contrôle au niveau du serveur d’autorisation émetteur des banques (en supposant que ce ne soit pas déjà le cas auprès des banques testées…). N’oublions pas que ce sont les banques qui sont responsables en cas de fraude. Bien sûr, cela ne doit pas dédouaner les réseaux de renforcer leurs mesures sécuritaires à leur niveau (et ils le font tous à l’aide de scoring calculé en temps réel), mais elle ne doit pas se substituer aux contrôles anti-fraudes de l’émetteur. Par ailleurs, ce n’est pas le réseau qui décide de refuser la demande d’autorisation de son propre chef, mais la banque qui peut éventuellement donner délégation au réseau de la refuser dans certains cas de fraude.

Le papier des universitaires, aussi intéressant soit-il, ne mentionne pas auprès de combien d’émetteurs différents l’attaque a été menée. Cela aurait été très intéressant, afin de connaître si juste une banque n’a pas implémenté ce contrôle ou si toutes l’ont omis. De plus, l’article ne parle, a priori que de cartes, britanniques. Mais quid de la France ? Un article complémentaire sera donc publié pour répondre à ces questions. Vous verrez, cela n’est pas si dramatique qu’il n’y paraît. Et puis, au pire, il y a toujours la Motion code ou l’IDCod.

7 commentaires à propos de “Faille dans les cartes Visa

  1. ‘Cela fonctionne-t-il vraiment ?

    Une autre faiblesse vient rendre cette attaque possible. Selon nos doctorants, il n’y aucun contrôle sur le nombre d’autorisations refusées suite à une date d’expiration ou un cryptogramme faux. Aucun contrôle chez les banques et aucun contrôle chez Visa (MasterCard a implémenté ce contrôle rendant cette attaque inopérante sur les cartes adossées au réseau du même nom).’

    C’est faux, travaillant dans un service Monétique d’une banque française, 3 tentatives erronés du cryptogramme grille la carte (au même titre que le code pin erroné).

    • Bonjour,
      Ce n’est qu’un résumé du papier des universitaires. Je suis d’accord avec vous que cette attaque dépend grandement des contrôles implémentés par les émetteurs. Et sur ce point, les doctorants ne donnent malheureusement aucune précision…
      3 tentatives erronés du cryptogramme grille la carte (au même titre que le code pin erroné).
      Cela dépend de la politique de la banque. Mais, je suis surpris par le fait que dans certaines banques, cela grille la carte. Généralement, 3 PIN faux grillent l’application EMV, tandis que 3 CVx2 erronés grillent un compteur pendant quelques jours sur la boîte noire (temporaire).
      Cdlt,
      Kévin

      • Bonjour,
        Effectivement 3 CVX2 erronés grillent un compteur et non la puce. Ce compteur est remis à zéro au bout de quelques jours ou sur action de la banque.
        Une carte bloquée CVX2 fonctionnera donc en paiement chez un commerçant.
        Cdt

  2. Effectivement, selon les contrôles implémentés au niveau de la banque émettrice, la multiplication de tentatives autorisations échouées devraient incrémenter un compteur pour griller la carte.
    Le nom des banques testées ainsi que leur solution CMS serait très utile.
    De toutes les façons, le contrôle a implémenté est tellement simple (si nombre auth sur CNP auto > 5, bloquer la carte/alertes/3d secure/2 facteur etc ) que c’est plus une alerte qu’autre chose.
    Pour info, en dehors de la France/GB, la plupart des pays ont implémenté une solution 2 factors rendant ce type d’attaque caduque.
    Enfin, en plus du contrôle implémenté chez la banque émettrice, ce contrôle devrait aussi l’être chez les réseau (Visa, CB etc) tout comme MC le fait déjà.
    crdlt
    Nabyl

    • Bonsoir Nabyl,
      Merci pour votre message intéressant.
      Néanmoins, quelques précisions :
      Cela ne grillera pas la carte. 3 CVx2 faux bloqueront juste toutes les transactions se basant sur ce cryptogramme (donc MoTo, VAD, …). Donc, le porteur pourra toujours utiliser sa carte pour les transactions piste/puce.
      Au niveau des actions, ce n’est pas l’émetteur qui va réactiver le contrôle du 3D Secure. C’est plutôt le commerçant (s’il est suffisamment gros pour négocier) qui décide s’il souhaite activer ce contrôle ou non.
      Dans le cas de la lutte contre la fraude a posteriori, c’est effectivement une alerte qui doit être prise en compte. Mais, en temps réel, il doit y avoir un blocage systématique (au moins temporaire) pour éviter ce genre d’attaque. On compense le faible nombre de combinaisons par une mesure technique.
      Concernant les 2 factors, j’ignorais que c’était autant démocratisé à l’étranger. Mais, la France devrait tendre également vers ce système.

      Cordialement,
      Kévin

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*