Aller au contenu

ARQC : Authorization Request Cryptogram

Cryptographie

ARQC : Authorization Request Cryptogram, cryptogramme de demande d'autorisation, calculé par la puce d'une carte bancaire selon le standard EMV (Europay, Mastercard, Visa). « Le sceau que la puce appose sur les données d'une transaction pour que la banque puisse vérifier que c'est bien la vraie carte qui demande ce paiement-là », par analogie avec la signature au bas d'un chèque, à ceci près qu'elle change à chaque fois et qu'on ne peut pas la recopier en s'appliquant.

Calcul : La puce calcule un code d'authentification de message à partir d'une clé dérivée de sa clé secrète, propre à chaque carte et connue de la banque émettrice, et de données comme le montant, la devise, la date, le compteur de transactions de la carte et un nombre imprévisible fourni par le terminal. Selon les cartes, l'algorithme repose sur le triple DES ou sur AES.

Vérification : La banque émettrice recalcule le cryptogramme dans son HSM et compare. Si tout concorde, elle peut renvoyer à la carte un cryptogramme de réponse (ARPC, Authorization Response Cryptogram) prouvant à son tour son identité. La puce produit d'autres cryptogrammes dans d'autres cas : TC (Transaction Certificate) pour une transaction acceptée, AAC (Application Authentication Cryptogram) pour un refus.

Le point faible : Le cryptogramme ne vaut que par l'imprévisibilité des données qu'il couvre. Des chercheurs de l'université de Cambridge ont montré vers 2012 que certains terminaux produisaient des nombres « imprévisibles » parfaitement prévisibles, ce qui permettait de faire calculer à l'avance des cryptogrammes valides et de les rejouer plus tard (attaque dite de pré-jeu) : la cryptographie était impeccable, le hasard beaucoup moins.

Ce qui arrive si on s'en passe

Une banque émettrice qui ne vérifie pas réellement l'ARQC, ou qui accepte des transactions en se contentant des données de la piste magnétique, autorise des paiements avec des cartes clonées que le cryptogramme aurait trahies. Un terminal qui fournit un nombre imprévisible faible ou un compteur mal contrôlé permet de rejouer des cryptogrammes collectés à l'avance. Et une clé maîtresse d'émetteur manipulée hors d'un HSM expose d'un coup toutes les cartes qui en dérivent, ce qui transforme un incident de sécurité en problème de comptabilité nationale.

Explication de la marmotte

Quand on paie avec une carte à puce, la puce ne se contente pas d'envoyer le numéro de la carte. Elle calcule un petit code secret, appelé cryptogramme, à partir du montant, de la date, d'un compteur et d'un nombre aléatoire donné par le terminal, en utilisant une clé cachée dans la puce. La banque, qui connaît cette clé, refait le calcul et vérifie que le résultat est le même. Comme le code change à chaque achat, quelqu'un qui l'intercepte ne peut pas le réutiliser pour un autre paiement.

Où ce terme est utilisé

← Tout le glossaire