Qu'est-ce que l'UID d'un tag, et peut-on le changer ?
L'UID est un identifiant inscrit dans le tag à la fabrication, dans une zone qu'un tag standard ne laissera jamais réécrire. Les lecteurs s'en servent pour distinguer un tag d'un autre pendant la sélection. Des tags dont l'UID est réinscriptible existent, et c'est précisément pourquoi l'UID n'est pas un justificatif de sécurité.
À quoi il sert
Son rôle d'origine est prosaïque : quand plusieurs tags se trouvent dans le même champ, le lecteur a besoin d'un moyen d'en adresser un. L'identifiant le permet, et la procédure d'anticollision s'en sert pour isoler un tag avant que le moindre échange réel ne commence.
Tout le reste de ce que l'on en fait est un détournement de ce mécanisme, et certains de ces détournements sont imprudents.
S'il peut être changé
Sur un tag standard, non. Il réside dans une zone programmée en usine, en lecture seule, et aucune application, aucun lecteur et aucune obstination ne la modifieront.
Il existe des tags dont le bloc d'identifiant est inscriptible. Ils se vendent ouvertement pour les essais et pour récupérer des systèmes d'accès où une carte a été perdue, et ils sont la raison pour laquelle le paragraphe précédent ne clôt pas le sujet. Leur existence n'est ni secrète ni exotique.
Pourquoi ce n'est pas un justificatif
Bien des systèmes d'accès fonctionnent en lisant l'identifiant et en le comparant à une liste. C'est simple à mettre en œuvre et cela ressemble à de l'identité.
Ce n'en est pas. L'identifiant est transmis en clair à tout ce qui alimente le tag : quiconque peut approcher un lecteur de votre badge un instant l'apprend. Et puisque des tags à identifiant inscriptible s'achètent, l'apprendre suffit à le reproduire.
Un système dont la sécurité repose sur l'identifiant est un système où la clé est imprimée sur la serrure. Cela peut convenir à un abri à vélos et à rien d'autre.
La distinction qui compte
Lire un identifiant prouve que quelque chose présentant cet identifiant se trouvait dans le champ. Cela ne prouve pas que l'objet est authentique, car l'authenticité exige que le tag démontre la connaissance de quelque chose qu'une copie n'aurait pas. C'est le rôle de l'authentification, et l'identifiant n'est pas de l'authentification.
À quoi l'employer à la place
Comme index, il est excellent. Suivre quel tag physique est sur quel équipement, distinguer un tag d'un autre dans un lot, rapprocher une lecture d'une ligne de base de données : tout cela est légitime et n'exige aucune confiance dans l'identifiant.
La règle qui sépare le bon usage du mauvais : il est correct d'employer l'identifiant pour retrouver quelque chose, et incorrect de l'employer pour décider que quelque chose est autorisé.
Là où un déploiement a réellement besoin de savoir qu'un tag est authentique, la réponse est une puce à authentification cryptographique, et l'écart de coût est faible au regard du coût de la découverte du problème plus tard.
Questions fréquentes
Quelle est la longueur d'un UID de tag ?
Elle varie selon la famille de puces, les identifiants de quatre et de sept octets étant tous deux courants sur les tags grand public. Tout système qui suppose une longueur fixe unique finira par rencontrer un tag qui le met en défaut : traitez la longueur comme variable.
Deux tags peuvent-ils porter le même UID ?
Ils sont censés être uniques dans l'allocation d'un fabricant, et les doublons issus de sources sérieuses sont rares. Les tags à identifiant inscriptible peuvent bien sûr être réglés sur n'importe quelle valeur, une raison de plus de ne pas tenir l'unicité pour une garantie.
L'UID change-t-il quand je formate ou réécris un tag ?
Non. Le formatage et l'écriture touchent la zone de contenu, pas l'identifiant programmé en usine. Un tag conserve son identifiant toute sa vie.
Peut-on lire l'UID sans application ?
Les deux plateformes l'exposent aux logiciels, et le système s'en sert pendant la sélection, que quoi que ce soit vous le montre ou non. Ce qui varie est le choix des applications de l'afficher ou non.