Le NFC et la norme ISO/IEC 14443

Le NFC réponds à la norme ISO/IEC 14443. Cette norme décrit plusieurs couches (de 1 à 4). L’objectif de cet article est de vous présenter simplement ces couches et comment est initialisée la communication NFC.

Les couches

Niveau  Dénomination Description
 1

Physical Layer

Cette couche décrit la partie physique du récepteur, la taille de son antenne.
2

Radio frequence signal interface

Cette couche traite de la fréquence à laquelle l’émetteur et le récepteur doivent fonctionner. Dans le cas du NFC c’est 13.56Mhz. On y parle aussi du signal, du débit de transmission etc… Il existe deux variantes A et B qui différent sur la modulation et l’encodage binaire utilisé.
3

Activation and anti-collision

Dans cette couche, on aborde la création de la communication entre l’émetteur et le récepteur et le principe d’anti-collision qui permet de gérer le cas de plusieurs récepteurs qui se trouveraient en même temps dans le champ magnétique.
4

Transmission protocol

Enfin, cette couche traite du protocole utilisé dans la transmission d’information. Y est décrit le format des données, la communication durant une transaction etc…

En action

Prenons donc le cas d’une carte sans contact (genre carte bleue) et d’un émetteur. Les deux doivent être compatible avec la norme ISO/IEC 14443 niveau 1 à 3 minimum.

A noter que l’émetteur est souvent appelé “PCD” pour “Proximity Coupling Device” et les cartes sans contacts “PICC” pour “Proximity Integrated Circuit Card”.

 

Voici en gros les étapes.

Connexion

Le lecteur émet un champ électromagnétique, lorsque le récepteur passe dans ce champ, l’énergie captée lui permet de s’alimenter et de répondre aux requêtes de l’émetteur (lecteur).

chip-antenna

 

C’est plutôt d’ordre matériel/physique et est donc couvert par les couches 1 et 2 de la norme. C’est cet apport d’énergie qui fait la particularité du NFC. Le récepteur n’a pas besoin d’une autre source d’énergie que celle apportée par le lecteur.

 

Activation

Cette étape est d’ordre logiciel et est donc couvert par les couches 3 et éventuellement 4 de la norme.

L’émetteur envoi une requête d’identification appelée “REQ” et attends une réponse appelée “ATQ”. Comme nous l’avons vu plus haut, il existe deux variantes de la norme A et B. L’émetteur ne pouvant pas identifier la variante à utiliser, il procède successivement à une requête REQA puis REQB.

Si le récepteur répond à la requête REQA avec une réponse ATQA, alors c’est une variante A, s’il répond à la requête REQB avec une réponse ATQB, alors c’est une variante B.

 

Une fois l’identification de la variante faite, l’émetteur doit identifier le type de récepteur et activer la carte.

Il procède à la boucle d’anti-collision (Anticollision Loop). Cette procédure permet en fait de lier l’émetteur à un seul récepteur. C’est important puisqu’il est possible d’avoir plusieurs récepteurs dans le champ magnétique de l’émetteur.

Séquence d'activation

A l’issue de la boucle anti-collision, l’émetteur est en possession de deux informations :

  • UID : “Unique ID” (on verra plus tard qu’il peut ne pas l’être)
  • SAK : “Select Aknowledge” qui permet d’identifier le type de carte.

Identification

Selon la valeur des bits du SAK, il est possible d’identifier si le récepteur supporte la couche ISO/IEC14443-4 ou pas (selon le cas le traitement sera différent).

Une fois la communication établie et le récepteur identifié, on utilise le protocole associé au récepteur pour communiquer avec lui. En mode ISO/IEC14443-3 ça sera un protocole propriétaire, en ISO/IEC14443-4 le protocole est défini par la norme.

Exemple d’échange

Les échanges sont toujours à l’initiative du PCD. Dans un futur article sur l’anti-collision nous détaillerons ces messages barbares :

A l’issue de cet échange, on voit que la carte utilisée est de type A, son identifiant est “02 03 0C 22”, son ATQA et son SAK indique que c’est une carte “SmartMX” (issue de la documentation NXP) et que cette carte respecte la couche 4 de la norme.

Conclusion

Pas très glamour ces normes, mais il est nécessaire de les comprendre un minimum surtout lorsque l’on commence à acquérir du matériel, et encore plus lorsqu’on le conçoit.

Il faut savoir qu’à part la norme ISO/IEC 14443 deux autres normes sont en jeux en NFC :

  • ISO/IEC 7816 qui est issue des cartes contact et qui à partir de ISO/IEC 7816-4 permet une interopérabilité entre les cartes contacts et certains récepteur NFC.

  • ISO/IEC 18092 qui est utilisé entre autre par les smartphones NFC pour en définir les modes de fonctionnement. 

Au préalable de l’explication de ces normes, je détaillerai la boucle anti-collision le prochain article et nous aborderons ensuite l’APDU.

 

Articles suivants :