Que reçoit réellement un terminal de paiement ?
De quoi acheminer l'opération vers la bonne banque et une valeur prouvant que la carte a participé à cet achat précis. La carte est un petit ordinateur qui décide quoi répondre, pas un stockage que le terminal lit, et cette distinction explique pourquoi l'échange ne se réemploie pas.
Un ordinateur, pas un stockage
Le modèle mental qui crée la confusion est celui d'une carte comme d'un contenant que le terminal ouvrirait. Sous ce modèle, tout ce qui est dedans est exposé à qui le lit.
Le modèle exact est celui d'une carte comme d'un petit ordinateur exécutant une application. Le terminal demande, l'application décide de ce qu'elle répond et refuse le reste.
Tout le reste en découle. Une carte ne se lit pas, elle s'interroge, et elle garde le droit de réponse.
Ce qui traverse, dans les grandes lignes
Des informations d'acheminement, pour que l'opération atteigne l'établissement qui a émis la carte.
Une valeur calculée pour cette opération, qui prouve que la carte y a pris part et ne peut pas être produite sans elle.
Des données sur l'opération elle-même, assemblées par le terminal plutôt que fournies par la carte.
Les champs exacts, leurs noms et ceux qui sont obligatoires sont spécifiés dans les spécifications EMV sans contact publiées par EMVCo, et c'est cette spécification plutôt que cette page qui fait autorité.
Ce qui ne traverse pas
Les clés à l'intérieur de la carte, qui n'en sortent en aucune circonstance et qui sont la raison pour laquelle la valeur de l'opération ne peut pas être falsifiée.
Tout ce dont l'application de paiement n'est pas tenue de répondre, ce qui représente bien plus qu'on ne le suppose et comprend une bonne part de ce qu'on imagine qu'une carte transporte.
Et rien du tout vous concernant en tant que personne au-delà de ce que l'émetteur y a mis, puisqu'une carte ne garde aucun historique des endroits où elle est passée.
Pourquoi la distinction compte
Parce qu'elle explique pourquoi capter un échange n'équivaut pas à capter une carte, et pourquoi toute la catégorie des attaques par rejeu échoue.
Elle explique aussi pourquoi une application ordinaire sur un téléphone obtient si peu d'une carte de paiement : l'application n'est pas un terminal, et la carte répond en conséquence.
Prenez NFC Tools. Sur iOS, elle demande un iPhone 7 ou un modèle ultérieur sous iOS 15.6 au minimum, et l'application doit être lancée manuellement. La lecture en arrière plan est disponible à partir de l'iPhone XS et XR.
Et elle pose la bonne attente pour qui construit avec le NFC : la couche du paiement est un système fermé avec ses propres règles, voisin du monde des tags plutôt que partie de lui.
Questions fréquentes
Le terminal lit-il mon numéro de carte ?
Il reçoit ce que l'application de paiement répond, c'est-à-dire ce que les réseaux exigent pour l'acheminement et la preuve. La carte n'est pas simplement lue.
Les clés de la carte sont-elles envoyées ?
Non. Elles restent à l'intérieur de la puce, et c'est pourquoi la valeur qui prouve l'opération ne peut être produite par rien d'autre.
Pourquoi une application sur mon téléphone voit-elle si peu ?
Parce qu'elle n'est pas un terminal, et que l'application de paiement répond en conséquence. C'est délibéré plutôt qu'une limite.
La carte sait-elle où elle est passée ?
Non. Une carte ne garde aucune trace de son propre historique, donc il n'y a rien de tel qu'un terminal puisse obtenir.