Dchar-Amjad NFC Protocole-EMV

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche

Comment marche le NFC ?

Avant de parler du NFC, il faut faire un petit tour du coté du RFID qui englobe plusieurs types de puces et d'antennes. Ce qui différencie ces derniers c'est : Le type de codage des données, les méthodes de lecture et d’écritures ainsi que la distance nécessaire à la lecture de ces données.

La NFC, ou Near Field Communication (Communication dans un champ proche), est une technologie simple qui permet d'utiliser un téléphone portable, une carte ou un badge à des fins divers et varié . Un tag NFC peut être relié à des informations telles qu’une page Web, des réseaux sociaux et toutes sortes d'autres informations en général. Les autres domaines dans lesquels la NFC commence à évoluer sont le paiement, l'ouverture de porte avec des serrures sécurisées sans contact, la connexion à des ordinateurs et bien d'autres encore.

Contrairement au Bluetooth et au WiFi, la NFC permet de faire un lien entre une fonctionnalité virtuelle et un objet physique de tous les jours, facilement sans couplage préalable. Ce qui ouvre le champs à plusieurs applications mais aussi à de très gros problèmes de sécurité.

Protocoles d'échange

EMV

Europay Mastercard Visa, abrégé par le sigle EMV, est depuis 1995 le standard international de sécurité des cartes de paiement (cartes à puce). Il tire son nom des organismes fondateurs :

  • Europay International (absorbé par Mastercard en 2002)
  • MasterCard International
  • Visa International

La norme EMV spécifie l'interopérabilité entre les cartes EMV à puces et les terminaux de paiement EMV à travers le monde. Le passage à la Norme EMV sur les cartes de paiement apporte les deux avantages suivants :

  • Amélioration de la sécurité.
  • Un contrôle plus précis pour les transactions par carte bancaire «hors ligne».

A son époque, on le considérait comme un protocole d'échange fiable et sécurisé d’où son utilisation dans le payement NFC partout dans le monde. De nos jours ce protocole est remis en questions trop souvent, chaque année plusieurs failles sont découverte. On en détaillera un exemple dans le chapitre suivants ainsi que les différents moyens qui existent pour s'en prémunir.

EMV-TLS

C'est un protocole basé sur TLS ( preshared key "TLS-PSK" ) et EMV. Une carte compatible EMV est identifier par un numéro unique (PAN), contient une clé symétrique pour générer les cryptogrammes et au moins un certificat RSA, elle peut contenir aussi une clé privé RSA. Ce protocole permet de se protéger contre les attaques de type physhing et homme du milieu. Et les paramètres PSK (id, ctg, psk) sont stockés dans la puce.

     +-----------+ TLS-PSK +-------------+               +----------+
     |           |<------->|             | (PAN,EMV-CTG) |  ISSUER  |
     |   USER    | EMV-ID  |     WEB     | ------------> |   AUTH.  |
     |           | EMV-CTG |     SITE    |     OK        |  SERVER  |
     |           | EMV-PSK |             | <-----------  |          |
     +----+------+         +------+------+               +-----+----+
          !                       !                            !
      +---v--+                    ! DATABASE                +--+--+
      | EMV  |         +--------+-----+-------+             | HSM |
      |DEVICE|         | EMV-ID | PAN | Other |             +-----+
      +------+         +--------+-----+-------+

L'utilisateur peut choisir parmis 3 mode de chiffrement:

  • PSK: utilise un chiffrement symétrique pour l'authentification.
  • PSK-DHL: utilise Diffie-Hellman avec une clé partagé.
  • PSK-RSA: combine une authentification à clé public coté serveur avec une authentification à clé partagé.

Ce protocole est donc plus sure que le simple EMV, mais ce dernier est plus adapté pour les transactions bancaires en ligne.

Vulnérabilités

Les failles les plus dangereuse viennent du protocole EMV utilisé pour sécuriser l'échange entre la carte NFC et le terminal de payement. Le type de carte est aussi important puisque chaque carte implémente des protocoles légèrement différents :

PayWave créé par Visa qui se décline en :

  • MSD pour le sans-contact en mode piste (ISO)
  • qVSDC pour le sans-contact en mode puce (EMV)
  • VSDC pour le sans-contact en mode puce : ce mode est optionnel

PayPass créé par Mastercard qui se décline en :

  • MagStripe pour le sans-contact en mode piste (ISO)
  • M/Chip pour le sans-contact en mode puce (EMV)

Génération de nombres imprévisibles

Apparu en 2012, des chercheurs de l'université de Cambridge ont repéré des vulnérabilités dans le protocole EMV permettant le clonage de cartes bancaires. La faille réside dans la génération de nombres aléatoire correcte au niveau des DAB et des points de ventes, requis par le protocole EMV pour gérer les transactions.

Cette faille permet à une personne mal intentionné d'envoyer des demandes de transactions frauduleuses aux banques à partir de cartes piratées.

Dans le cas du Magstripe de Mastercard, cela fonctionne de la manière suivante :

  • Générer un CVV dynamique par le terminal de payment.
  • Envoie au processeur de payement pour le verifier.

Uns.png

L'idée est de générer tous les UN possible et de les mettre dans un dictionnaire que nous allons parcourir par la suite. On commence tous d'abord par définir la taille de l'UN:

Length of UN = NumBitsSet( Ktrack ) - Ttrack Ktrack : Le nombre de bit à 1 dans le « track map ». Ttrack : Le nombre de chiffres de l'ATC.

Les étapes à suivre pour cloner les transactions sont les suivantes:

  1. Lire et copier les données de la carte via un simple lecteur NFC
  2. Échanger l'ordre des bits dans la mémoire sans y accéder ( M/Ship ).
  3. Rejouer les transactions enregistrer au terminal.
  4. Vérifier l'UN retourner dans le terminal.


Dépassement du plafond autoriser

En 2014, des chercheurs de l'université de Newcastle ont repéré une énorme faille dans le protocole EMV permettant de dépasser le plafond de 20 euro ( en France ). Il suffit de faire la transaction dans une devise étrangère et le tour est joué, on peut donc atteindre un plafond de 999.999,99$ et le vérifier au près de l'autorité de payment.

Les chercheurs ont développé une application Android qui simule un terminal de paiement. Quand le smartphone arrive à proximité d’une carte NFC, elle génère automatiquement une transaction sans que le porteur ne s’en rende compte. Cela est possible car les transactions sans contact ne nécessitent pas de code PIN pour être validées. Cette transaction est certes créée, mais pas encore envoyée à la banque. Elle est d’abord stockée dans le terminal en mode offline. L’avantage, c’est que le pirate peut collecter tranquillement des transactions auprès de ses victimes et se focaliser sur la récupération des fonds dans un second temps.


Comment se prémunir des risques du NFC ?

De nouvelle faille sont découverte chaque année dans le protocoles EMV, il devient donc urgent de se prémunir, qu'il s'agit de notre carte bancaire sans contact ou notre carte de transport, ça constitue un réel danger ( vol, espionnage, ... ).

Plusieurs solutions existent, la première et la plus radicale c'est de ne pas utiliser le NFC dans les domaines sensibles ( carte bancaire, accès au bâtiment sécurisé ). La deuxième c'est l'utilisation de produits pulvériser d'aluminium qui bloquent les signaux RFID, ça peut être un étuis de carte,un portefeuille en aluminium ou simplement un billet qu'on place dans notre portefeuille. Il faut toutefois faire attention au marque, voici une liste de marque reconnu et testé :

  • Stop-RFID
  • Koruma
  • Safe Pocket


Conclusion

Bien que l'utilisation de cette technologie est ancienne, Les protocoles de sécurité restent trop vulnérable. De plus, changer le système mondial reviendrait beaucoup plus cher que les piratages, on peut donc dire que pour les autorités responsable, les dommages restent à un niveau acceptable.

Webographie

Draft TLS-EMV EMV analysis