lundi 25 juillet 2016

Fonctionnement des cartes à puce hybrides à NFC

Nous avons vu dans un précédent article comment fonctionne une carte à puce standard. C’est très intéressant de le savoir, sauf que beaucoup de cartes récentes sont hybrides : on voit la présence d’une puce, mais elles fonctionnent aussi en sans contact.
C’est le cas notamment des pass navigo, des cartes bancaires sans contact, de la carte MOBIB (équivalent du NAVIGO à Bruxelles), des cartes SNCF des militaires, etc.

Ces cartes sont équipées d’une puce qui sait fonctionner dans les 2 environnements : avec contact et sans contact.
Avec contact, on a vu que c’est le lecteur qui apporte l’alimentation, l’horloge et le reset à chaud. La communication se fait elle sur une patte précise, le lecteur initiant chaque échange et la carte à puce ne faisant que répondre (pour éviter les collisions).

En mode sans contact, cela fonctionne quasiment de la même manière. A partir du moment où la carte est approchée du lecteur, elle baigne dans un champ électromagnétique sous forme d’une porteuse à 13.56 Mhz accompagnée de 2 sous-porteuses.
La carte NFC comporte une antenne accordée sur la fréquence de 13.56 Mhz. Cette fréquence a été choisie car elle permet de se contenter d’une antenne de taille très réduite (2 à 3 tours de cuivre associés à un petit condensateur de quelques pico-farads), donc facilement noyable dans le plastique d’une carte à puce, et surtout car elle permet un débit de communication en bauds qui est … plus élevé que le débit obtenu avec un lecteur de carte à puce !
La porteuse à 13.56 Mhz du lecteur passe dans un redresseur limiteur de tension et alimente la puce en énergie électrique.
Cette même porteuse passe dans un circuit récupérateur d’horloge, qui génère un signal d’horloge pour la puce (à partir de la fréquence de la porteuse).
Un circuit modulateur/démodulateur est capable de décoder les deux sous-porteuses modulées (ou de moduler les 2 sous-porteuses si c’est la puce qui parle). Ces circuits peuvent gérer de la modulation d’amplitude, de fréquence ou de phase.
Ainsi équipée, la puce se croirait presque dans son environnement « à contact » habituel, la vitesse en plus (dans le domaine des transports, comme NAVIGO, il n’est pas rare d’observer un échange de 6 APDU en moins de 140 ms).
Presque, car il y a quelques petites différences. Citons notamment le fait que la carte n’envoie pas un ATR dès qu’elle reçoit l’alimentation électrique : elle attend que le lecteur envoie un WUPA ou WUPB (Wake Up Type A ou type B. Cf norme ISO 14443), et à ce moment-là seulement elle répond par un ATQA ou ATQB (Answer to ReQuest de type A ou B), équivalent d’un ATR.
Citons également le fait que, contrairement au mode contact dans lequel une seule carte peut rentrer à la fois dans le lecteur, en mode sans contact plusieurs cartes peuvent se retrouver dans le champ électromagnétique du lecteur. Le protocole doit donc savoir gérer les collisions.
Bien sûr, les cartes hybrides ont un logiciel adapté à leur côté dual. Les cartes bancaires, par exemple, ne disposent que du fichier 1PAY.SYS.DDF01 si elles sont uniquement avec contact, alors qu’elles disposent en plus du fichier 2PAY.SYS.DDF01 lorsqu’elles gèrent également le sans contact.
Autre différence entre le sans et avec contact : en "sans contact" on ne peut pas taper son code PIN (c’est le but du sans contact). Donc la sécurité est forcément amoindrie, comme on peut le voir dans cette vidéo, qui montre que le sans contact appliqué à la carte bancaire est une hérésie (c’est un avis perso).
Publié par Alan Cartman le 25 juillet 2016

Aucun commentaire: