La première fonction d’un tag RFID est de pouvoir identifier sans ambiguïté l’objet auquel il est attaché. Quel format des identifiants faut-il alors mettre en place ? Comment protéger les données ? Quelle règles de sécurité doit-on respecter ?
RFID UHF : Mémoire et encodage
Memory Bank 01 (EPC)
Lors d’un inventaire, tous les tags présents dans le champ du lecteur et sélectionnés par commandes d’initialisation vont systématiquement retourner le contenu de la mémoire EPC (Electronic Product Code). Cette mémoire contient normalement l’identifiant unique de l’objet auquel est attaché le tag. Cet identifiant, également appelé UII (Unique Item Identifier), est généralement construit à partir d’identifiants de produits auxquels on ajoute un numéro de série (on prend souvent l’exemple du Serial Global Trade Identification Number (SGTIN) codé sur 96 bits mais il existe bien d’autres formats disponibles).
Une fois encodé par l’utilisateur de la puce, cet identifiant doit généralement être protégé en écriture (de manière permanente (PERMALOCK) ou protégé par un mot de passe (LOCK).
Memory Bank 10 (TID)
Dès sa sortie de fonderie, la puce RFID est « tatouée » grâce à un numéro d’identification gravé par le fabricant : le TID (Tag Identifier). Cet identifiant donne des informations sur le fabricant, le modèle de puce. Il est très souvent sérialisé ce qui rend le TID unique. Ce numéro est généralement protégé en écriture ce qui le préserve de toutes modifications une fois en service.
Memory Bank 00 (Reserved)
C’est dans cette zone mémoire que l’on stocke les deux mots de passe (sur 32 bits) utilisés dans le protocole UHF (ISO/IEC 18000-63 ou EPC Class1 Gen2, connus également sous le nom de RAIN RFID). Le premier mot de passe (ACCESS) permet de protéger en lecture ou en écriture les autres banques mémoire du tag. Le second (KILL) permet d’activer la fonction KILL, fonction qui rend un tag définitivement incapable de répondre aux commandes d’un lecteur. Pour pouvoir être activée, la fonction KILL a besoin d’avoir un mot de passe non nul. Pour désactiver cette fonction de manière permanente, il est donc fortement recommandé d’encoder ce mot de passe à 0 et d’empêcher toute écriture (PERMALOCK du mot de passe KILL).
Memory Bank 11 (User)
Cette banque de mémoire est optionnelle (toutes les puces RFID n’en possède pas une et la taille peut varier d’un modèle de puce à l’autre). Elle permet à différents utilisateurs, ayant les droits de lecture et/ou d’écriture de venir lire ou ajouter des informations complémentaires dans le tag. Il faut veiller à ce que le format des informations écrites dans cette zone soit standardisé afin d’éviter tout problème de décodage. Beaucoup d’utilisateurs préfèrent écrire ces données dans une base de données externe adressée par le code EPC (qui sert alors de pointeur vers les enregistrements de la base). D’autres, comme les acteurs de l’aéronautique, ont structuré les données suivant un standard accepté par l’ensemble de la profession (ATA Spec 2000).