2017-01-31 4 views
1

Je réalise actuellement un projet dans lequel je souhaite utiliser mon téléphone Windows 10 avec NFC pour lire le numéro UID/numéro de série d'une carte à puce afin de trouver l'ID de une personne. La carte que j'essaye d'obtenir l'UID/numéro de série est un NXP MIFARE DESFire EV1. L'identifiant que je cherche est imprimé sur la carte et j'ai réussi à y accéder en utilisant le téléphone de mon ami avec une application Android ce qui signifie que le numéro est accessible bien que je ne sache pas comment.Obtention du numéro UID/numéro de série d'une carte NXP MIFARE DESFire EV1

Je peux envoyer des commandes APDU à la carte mais je ne sais pas laquelle utiliser pour obtenir le numéro UID/série que je recherche.

Quelles commandes APDU dois-je envoyer à la carte pour obtenir l'ID? L'identifiant que je cherche est de 7 octets.

+0

Désolé, la lecture des cartes non-smart dépend fortement des services de traduction du lecteur et vous n'en avez pas mentionné. Vous pouvez trouver un point de départ dans [cette question] (http://stackoverflow.com/q/12174000/1435475). – guidot

Répondre

1

En général, la récupération de paramètres tels que l'identifiant anti-collision (UID) des cartes sans contact dépend beaucoup du lecteur et des couches d'abstraction entre le lecteur et votre application. Par exemple, sur Android il existe une méthode simple getId() pour obtenir l'identifiant anti-collision d'une puce NFC/carte à puce sans contact.

Cependant, pour MIFARE DESFire, il existe également un moyen d'obtenir ce paramètre au moyen d'APDU. Vous pouvez simplement envoyer une commande VERSION GET pour les informations de version interroger (et l'UID de la carte):

 
C-APDU: 90 60 0000 00 
R-APDU: 04 01 YY 01 00 ZZ 05 91AF 

C-APDU: 90 AF 0000 00 
R-APDU: 04 01 01 01 04 ZZ 05 91AF 

C-APDU: 90 AF 0000 00 
R-APDU: XXXXXXXXXXXXXX UUUUUUUUUU VV WW 9100 

La valeur XXXXXXXXXXXXXX est l'UID de la carte (ou tous les zéros si la carte est en identifiant anti-collision aléatoire mode).

Notez qu'il existe même un analyseur pour les informations de version MIFARE DESFire here (comme ThomasRS souligné dans un commentaire).

+1

Fonctionne parfaitement. Merci beaucoup pour votre temps précieux. Vous n'avez aucune idée de l'utilité pour moi et pour les autres. Je ne t'oublierai jamais – ZakFS

+2

Parser sur https://github.com/skjolber/external-nfc-api/blob/master/externalNFCClient/src/main/java/com/skjolberg/nfc/desfire/VersionInfo.java – ThomasRS