Espionner une transaction avec carte à puce

On aime bien les défis, et quand il s’agit de monter un projet, du hardware jusqu’à la couche applicative, on est toujours partant.
Nous étions à la recherche d’un outil capable de comprendre le protocole ISO7816. Cette norme est celle qui régit les transactions entre une carte à puce et un lecteur. Bien que cela existe sur le commerce, ils sont souvent réservés à des professionnels et donc hors de prix.

Associé à notre école, disposant de ressources assez intéressantes autour d’architecture à base de microcontroleurs pic32, il était tout à fait concevable de réaliser un espion bas niveau.

Conception

Afin de concevoir cet espion il est au préalable nécessaire de concevoir une sonde. Cette sonde a le format d’une carte à puce (à savoir le format ISO7816). On peut aussi trouver le schéma dans l’EMV Book 1. Celui ci sera réalisé sur un PCB dans la version finale.
Pour la phase de développement, j’ai choisi une platine de chez Selectronic : Carte d’étude SMARTCARD ISO7817 pastillée

A ce module s’ajoute un connecteur pour carte à puce : Connecteur pour carte à puce contact NO

On soude le tout et on obtient ceci :

Ce n’est pas très esthétique mais ça fonctionne correctement. Vous remarquerez les deux condensateurs de 47pif rajoutés entre les signaux à observer et la masse afin de filtrer les signaux que l’on va espionner.

La prochaine partie concernera la manière de mettre en place l’environnement de développement MPLAB X et l’environnement de simulation.