Une faille dans la carte chip-and-PIN ?

En 2010, une équipe britannique avait démontré la faisabilité technique de contourner la protection liée au code confidentiel des cartes à puce EMV en se munissant simplement d’un mini-ordinateur et d’un FGPA. Cette attaque avait été légèrement minimisé sous prétexte que le dispositif n’était pas discret. Et pourtant en mai 2011, le GIE Cartes Bancaires a signalé l’utilisation de plusieurs cartes bancaires françaises volées et utilisées en Belgique. Une enquête policière a été menée et a abouti à l’arrestation des fraudeurs. Par ailleurs, la justice a ordonné une analyse forensique de ces cartes afin de mieux comprendre la fraude. Comment cet exploit est rendu possible ? La carte bancaire EMV qu’on prétendait infaillible est-elle finalement juste bonne à mettre à la poubelle ou a-t-elle encore de belles années devant elle ? Lisez la suite pour tout savoir.

Note : cet article se contente d’expliquer fonctionnellement l’attaque. Aussi omettrons-nous des détails techniques jugés non pertinentes pour la compréhension afin d’empêcher toute exploitation de cet article à des fins malveillantes.

Lors d’un paiement chez un commerçant avec l’aide d’une carte bancaire EMV,  plusieurs mécanismes de sécurité interviennent. Les 2 principales, et qui ont notamment contribué au succès de la carte à puce au détriment de la carte à piste, sont l’authentification des données de la carte et la vérification du porteur.

Rappel sur l’authentification des données et la vérification du porteur

Authentification des données de la carte

L’authentification des données permet au point accepteur (TPE par exemple) de s’assurer qu’il s’agit d’un support authentique et qu’il a été émis par une banque. Cette étape est donc très efficace contre la contrefaçon. Il existe 3 méthodes d’authentification des données : SDA (statique et donc obsolète), DDA (dynamique) et CDA (combiné).

Nous considèrerons par la suite que le protocole utilisé est le DDA.

Pour plus de détails sur cette étape, vous pouvez consulter cet article.

Vérification du porteur

La vérification du porteur permet au point accepteur de s’assurer que le payeur correspond au titulaire de la carte, autrement dit le porteur. Plusieurs méthodes de vérification sont possibles comme la signature et le code confidentiel (PIN offline ou PIN online). L’ordre de préférence de ces méthodes relève de la stratégie de l’émetteur et est inscrite dans la puce dans la donnée CVM List. Cette sécurité complète l’étape précédente en empêchant l’utilisation d’une carte EMV légitime volée.

Pour plus de détails sur cette étape, vous pouvez consulter cet article.

Alors tout va bien dans le meilleur des mondes ?

Malheureusement non. En effet, certaines données à l’instar de la méthode de vérification du porteur utilisé ne sont pas signées permettant de fait, une altération de celles-ci sans que le destinataire ne s’en rende compte. Aussi est-il possible de faire croire au terminal que le PIN est correct et que donc la méthode choisie est PIN offline, et à la carte qu’il n’y a pas eu de PIN utilisé et que donc la méthode choisie est la signature. La non-détection du subterfuge par la carte et le TPE est exploitée malicieusement par les fraudeurs.

Ces derniers ont considérablement miniaturisé la preuve de concept (POC) de l’équipe de chercheurs britanniques (Steven. J. Murdoch, Ross Anderson, Saar Drimer et Mike Bond) puisqu’ils ont remplacé l’ordinateur et le FGPA par une simple puce issue d’une carte programmable.

Description de l’attaque sur le DDA

Au préalable, les fraudeurs volent une carte EMV authentique avec pour but de débiter le compte du titulaire. La carte étant authentique, elle passera allégrement l’étape d’authentification des données. Pour le code confidentiel, ils utilisent une carte à puce programmable. La puce sera posée sur celle de la carte volée afin d’être au contact du lecteur de cartes. C’est donc elle qui sera sollicitée par le TPE et qui décidera quand appeler la carte volée. Il s’agit de la technique Man-in-the-middle.

La puce factice est programmée de sorte à ce qu’elle réponde systématiquement « que oui le code est bon » et ce, quel qu’il soit. Yes card quand tu nous tiens… Techniquement parlant, la puce répondra « 90 00 » lorsque le TPE lui enverra le message VERIFY PIN suivi du code confidentiel. Pour le reste, la puce sera passe-plat. Elle se contentera de transmettre les messages du TPE à la carte volée et vice versa, à 2 exceptions près (cf. ci-dessous).

Il faut savoir aussi que le terminal opère également une gestion du risque. Il demande, entre autres, à la carte depuis combien de transactions l’émetteur n’a pas été contacté. Pour cela, il lui demande l’ATC (Application Transaction Counter) qui est un compteur de transaction et le tag Last Online Transaction Register qui est un registre stockant l’ATC de la dernière autorisation online. Le terminal fait ensuite la différence entre ces deux informations et la compare avec des données locales (Lower Consecutive Offline Limit) afin de mettre à jour la TVR le cas échéant dans le but de plaider un traitement online de l’autorisation.

Contourner le PIN
Cinématique d’une transaction EMV lors de l’attaque

 

La carte EMV est alors cassée ?

Tout d’abord, la carte EMV n’est pas forcément bâtie sur le modèle chip-and-PIN. De plus, le mode d’authentification des données le plus sécurisé (CDA) permet d’annihiler ce type de fraude. En effet, cette méthode impose une signature de plusieurs données (celles du PDOL et du CDOL1 / CDOL2) en toute fin de transaction empêchant toute altération des données signées. Aussi est-il important que le résultat du contrôle lors de la vérification du porteur fasse partie de ces données afin de détecter cette fraude.

L’implémentation du CDA est d’autant plus urgente que cette attaque, existant depuis longtemps, est miniaturisée au point de la rendre invisible aux yeux des commerçants. En cas de fraude, le titulaire de la carte aura d’ailleurs la plus grande peine à se faire rembourser puisque le ticket mentionne l’usage du PIN… Heureusement pour nous, le GIE CB a fait son travail puisque la plupart des cartes semblent embarquer le CDA et que tous les terminaux évolutifs supportent depuis la mise en place du bulletin CB v13.

2 commentaires à propos de “Une faille dans la carte chip-and-PIN ?”

  1. Bonjour,

    est-il possible d’avoir une distinction claire des éléments suivants ainsi que leur rôle (PIN, PIN Block, PIN offest et PVV). De ce que je sais et de mon expérience le PIN soit le Personal Identification Number correspond au Code confidentiel. Le PVV est créé à partir du HSM. Merci de m’apporter une assistance et une clarification.
    Olivier

    • Olivier,
      PIN = Personal Identification Number = Code confidentiel => pour vérifier l’identité du porteur
      PIN Block : Avant de chiffrer le PIN, il est encodé dans un format appelé PIN Block.
      PIN Offset : Cela permet au porteur de choisir son PIN. Il s’agit de la différence entre le PIN naturel et le PIN choisi par le porteur.
      PVV = PIN Verification Value. Il s’agit du résultat du chiffrement du PIN Block selon la méthode VISA.
      En espérant que ce soit plus clair.
      Kévin

Laisser un commentaire

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

*