Les cryptogrammes bancaires

Vous avez très certainement déjà saisi votre cryptogramme visuel sur Internet lors d’un achat sur la toile. Mais connaissez-vous l’utilité de ces 3 chiffres ? Il s’agit d’un élément de sécurité permettant de s’assurer que le payeur a, ou tout du moins a eu, la carte entre ses mains.

Ce que vous savez peut-être moins en revanche, c’est qu’il existe d’autres cryptogrammes renforçant la sécurité de la transaction intervenant lors de paiements en mode « piste », « puce », « sans contact », ou « à distance ».

Cet article fera un tour des différents cryptogrammes majeurs en expliquant leur fonctionnement. Cela vous permettra ainsi d’apprécier la sécurité d’une transaction bancaire et de comprendre, entre autres, pourquoi les logiciels de crack capables de deviner le cryptogramme visuel ne sont que pures fumisteries.

Les cryptogrammes

Les réseaux Visa et Mastercard ont défini une spécification commune au sujet des cryptogrammes :

  • Card Verification Value (CVV) chez Visa
  • Card Validation Code (CVC) chez Mastercard

D’autres réseaux ont mis en place leurs cryptogrammes (Discover, American Express, JCB). A l’exception du cryptogramme visuel d’American Express de 4 chiffres (CID), tous ces cryptogrammes sont sur 3 chiffres.

CVV2 / CVC2 : le cryptogramme visuel

Le cryptogramme visuel, situé obligatoirement au dos de la carte, est aussi connu sous le terme générique CVx2.

Le nom des cryptogrammes visuels pour les autres réseaux sont :

  • CID2 (Discover)
  • CID/4DBC (American Express)
  • CAV2 (JCB).

Ce cryptogramme est très souvent demandé lors d’un achat à distance (sur Internet, via téléphone, etc.). Pour les vendeurs français, le CVx2 a été rendu obligatoire en 2003.

Point d’attention : conserver secrètement ce code. Vous pouvez mettre une gommette dessus pour éviter tout regard indiscret de la part d’un commerçant lors d’un achat. Autre solution plus dégradante mais pas moins efficace : le grattage du cryptogramme. Cela vous protègera même en cas de perte ou vol de la carte.

CVV1 / CVC1 : le cryptogramme des transactions en mode piste

Le CVV1 / CVC1 est stocké dans la bande magnétique noire (track 1 et track 2) située au dos de la carte. Ce cryptogramme intervient lors d’une transaction faite en mode piste et permet de s’assurer qu’il n’y a pas eu de falsification des données de la piste et que donc elles ont bien été générées par la banque émetteur.

Il ne doit pas être confondu avec le CVx2. Ce sont deux cryptogrammes différents et n’ont pas la même utilité.

Point d’attention : si cela empêche l’altération des données de la piste, cela n’empêche pas la simple copie et donc la contrefaçon. Veuillez donc ne jamais quitter la carte des yeux. En effet, une copie des données de la piste est très rapide, et permettra la reproduction partielle de la carte.

iCVV / Chip CVC : le cryptogramme des données piste stocké sur la puce

Sur la puce, il y a un champ contenant l’ensemble des données de la piste, y compris le cryptogramme « piste ». Ce champ s’appelle le Track 2 Equivalent Data.

Pour des raisons de sécurité, le cryptogramme CVV1 / CVC1 n’a pas été recopié. En effet, une simple lecture de la piste aurait pu permettre de reconstruire intégralement la piste. A la place du cryptogramme CVV1 / CVC1 se trouve le cryptogramme iCVV / Chip CVC. Des précisions sur la génération de ce cryptogramme seront apportées ci-dessous.

dCVV / CVV3 / CVC3 : le cryptogramme des transactions en mode sans-contact « piste »

Les cryptogrammes précédents sont statiques. En effet, ils ne changent pas durant la vie de la carte et peuvent donc être copiés, puis rejoués. Fort de ce constat, Visa et Mastercard ont créé un cryptogramme dynamique, c’est-à-dire que ce cryptogramme sera différent à chaque transaction puisque calculé à la volée et prenant en compte un compteur de transaction (ATC : incrémenté de 1 à chaque transaction). Ainsi, le CVV3 /CVC3 n’est pas sensible à l’attaque par rejeu.

Ce cryptogramme, appelé CVV3 / CVC3, est utilisé pour les transactions sans contacts en mode piste. Pas de risque donc qu’une personne malveillante intercepte les données émises lors d’une transaction sans-contact et les rejoue pour débiter votre compte.

Génération des cryptogrammes

Les cryptogrammes sont le résultat cryptographique d’un chiffrement symétrique (DES pour les connaisseurs) entre plusieurs éléments comme le numéro de la carte, la date d’expiration et le code service. La clé utilisée pour chiffrer les cryptogrammes est la Card Verification Key (CVK).

Pour éviter que tous les cryptogrammes soient égaux, le code service utilisé lors de la génération des cryptogrammes sera remplacé par une valeur arbitraire (sauf pour le CVV1 / CVC1). Pour :

  • CVx2 : le code service est remplacé par « 000 »
  • iCVV / Chip CVC : le code service est remplacé par « 999 ».

La clé CVK est celle de la banque émetteur. Seule cette dernière a connaissance de ce secret. La CVK est donc très importante puisqu’elle est la clé de voute des cryptogrammes de votre carte. Inutile de dire qu’elle est très bien protégée et est différente pour chaque banque. Bref, c’est sécurisé.

Les cryptogrammes d’application

ARQC : Authorisation ReQuest Cryptogram

Lors d’une transaction EMV (en mode puce) on-line, c’est-à-dire lorsque la carte bancaire et le terminal ont décidé de faire une demande d’autorisation, la carte calculera un cryptogramme ARQC (cf. paragraphe ci-dessous) et l’enverra au Serveur d’Autorisation Emetteur (SAE). Ce dernier vérifiera l’ARQC pour s’assurer qu’il s’agit bien d’une carte authentique et non d’une carte copiée.

La puce de la carte héberge dans sa zone secrète (zone de la mémoire interdite en lecture / écriture) des clés symétriques (IMKac dans le cas présent) permettant de signer certaines données d’une transaction comme le montant, un nombre aléatoire, etc. Cet ARQC et ses données seront envoyés au SAE qui, connaissant ce secret, vérifiera, la cohérence entre l’ARQC et les données. Ainsi, l’émetteur a la garantie que la puce possède bien la bonne clé et par conséquent qu’elle est authentique.

Note : par souci de simplicité, on a volontairement omis le mécanisme de dérivation des clés renforçant la sécurité.

ARPC : Authorisation ResPonse Cryptogram

J’y reviendrai plus en détail au cours d’un prochain article, mais dans la réponse à l’ARQC, le SAE peut communiquer à la carte un script EMV permettant la mise à jour de certaines données de la puce. Il est donc important que la carte s’assure que la réponse est bien celle de sa banque.

La carte peut donc authentifier également la réponse de la banque. Le SAE va pour cela générer un cryptogramme de réponse. Ce cryptogramme, appelé ARPC, sera vérifié par la puce de la carte.

Conclusion

J’espère que cet article vous aura permis de mieux comprendre les mécanismes de sécurité intervenant lors d’une transaction. D’autres éléments viennent également renforcer la sécurité d’une transaction, et feront l’objet d’un prochain billet.

0 commentaires à propos de “Les cryptogrammes bancaires

  1. Rétroliens : La pré-autorisation (cas du DAC / PLBS) | Monétique

  2. Bonjour Kévin,
    Il y a des petites erreurs sur le calcul de l’ARQC. Celui-ci est réalisé et vérifié avec des clés symétriques (IMK AC). Les clés RSA et les certificats (CB, Visa, MCI) sont utilisés pour l’authentification Off-line.

    Bravo pour votre site…

    FA

  3. Bonjour Kevin,
    Félicitation pour votre article très bien rédigé.
    vous dites que la clé CVK pour le calcul du CVV1 ou CVV2 est différente pour chaque banque? je pensais qu’il y avait une clé pour VISA et une clé pour MASTERCARD, mais pas une par banque.

    Enfin, pour une banque donnée, la clé CVK est elle la même selon si on calcul le CVV1 ou le CVV2? ( seul le service code change ( 201 ou 000 ))

    Merci
    John

    • Bonjour John,

      Merci pour ces compliments.
      Oui, il y a bien une clé pour les réseaux. Mais il ne s’agit pas de la CVK.
      Pour le calcul du CVV1/CVV2, c’est bien la même clé qui est utilisée. C’est d’ailleurs pour cette raison que le code service change.
      Cdlt,

      Kévin

  4. Bonjour,
    je suis pour ma part un peut novice sur ces sujets mais avec une question précise. Le déploiement des carte a CVV dynamique est lancé, petit à petit des cartes avec un CVV écrit avec de l’encre magnétique vont apparaitre. Savez vous comment vont être géré les fonctionnalités de PLBS (ex : empreinte de carte pour caution, assurance « no show » dans les hotels ) avec ces cartes ? l’empreinte effectuée ne pourra pas être utilisé pour executer un débit a posteriori pusique le CVV aura changé ! des idées ?
    merci

    • Bonjour Hani,
      Cela dépend des informations que vous souhaitez avoir sur ce cryptogramme ? Cela peut être dans les spécifications EMV, dans les spécifications des réseaux, voir des banques…
      Kévin

Laisser un commentaire

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

*