Bon nombre de distributeurs automatiques bancaires (DAB) et de point de vente (TPV) ne parviennent pas à générer correctement les nombres aléatoires requis par le protocole EMV pour authentifier de façon sûre les demandes de transaction, a affirmé une équipe de chercheurs de l'Université de Cambridge au Royaume-Uni. L'utilisation d'algorithmes défectueux pour générer des nombres aléatoires rend ces dispositifs de paiement vulnérables aux attaques "pré-play" qui permettent aux criminels d'envoyer des demandes de transactions frauduleuses aux banques à partir de cartes piratées.

La norme EMV (Europay, MasterCard et Visa) nécessite l'utilisation de cartes de paiement comprenant des circuits intégrés capables de remplir des fonctions cryptographiques spécifiques. Les appareils EMV ont besoin de produire ce que l'on appelle des "nombres imprévisibles" (UNS) pour chaque demande de transaction afin que les émetteurs de cartes puissent vérifier la provenance de ces demandes. Les anciennes versions de la spécification EMV n'avaient pas fourni d'instructions claires sur la façon dont ces nombres aléatoires devaient être générés. "Si vous êtes un programmeur, vous pouvez mettre en oeuvre un dispositif similaire pour tromper les banques", a déclaré Ross Anderson, professeur d'ingénierie en sécurité informatique à l'Université de Cambridge et l'un des auteurs de l'article.

"Nous avons étudié des DAB acquis sur eBay"

Pour parvenir a recréer un tel algorithme, les chercheurs ont analysé les UNS générés pendant plus de 1 000 transactions par 22 différents distributeurs automatiques de billets et 5 terminaux présents dans des point de vente au Royaume-Uni. Ils ont également étudié des distributeurs automatiques de billets acquis sur eBay pour inspecter leurs algorithmes de génération d'UNS.

Lorsqu'un dispositif de paiement veut initier une transaction il en envoie les détails - le montant, la devise, la date, etc - à la carte EMV insérée dans le lecteur de carte avec l'UN généré à la volée. La carte utilise une clé de cryptage secrète qui est conservé en toute sécurité sur la puce pour calculer un cryptogramme de demande d'autorisation (ARQC) à partir des données de transaction et de l'UN. Le dispositif de paiement envoie ensuite ce cryptogramme avec le PIN crypté et l'UN sous forme de texte brut à la banque émettrice pour vérification. La banque déchiffre le ARQC et valide les informations. Il compare également les UNS se trouvant à l'intérieur du cryptogramme avec le texte reçu. Si tout correspond, la banque traite la transaction et l'autorise.

Un type d'attaque qui ne laisse pas de trace


Si les pirates ne peuvent pas prédire à quoi ressemblera l'UN d'un modèle particulier de distributeurs automatiques de billets ou de terminal de paiement, ils peuvent néanmoins forcer des cartes authentiques à calculer l'ARQC d'une transactions future pour l'utiliser ensuite avec des clones de cartes à puce