Come fa un server a leggere l'identificatore che un tag rispecchia nel suo URL?
Come parte dell'indirizzo richiesto. Un chip con il rispecchiamento scrive il proprio identificatore, e su certi chip il contatore, dentro l'URL come caratteri esadecimali, in una posizione scelta quando il tag è stato configurato. Il server li estrae, ne verifica lunghezza e caratteri, e li tratta come un'affermazione su quale tag sia stato letto, non come una prova.
Che cosa raggiunge il server
Il chip inserisce i caratteri mentre il tag viene letto, quindi il telefono riceve un URL che già li contiene, e la pagina dell'URL unico spiega perché questo rende distinguibili tag scritti in modo identico. Il server riceve una richiesta ordinaria per quell'URL.
La riceve solo se il telefono apre il collegamento. Un iPhone che legge un tag in background mostra una notifica che va toccata, e da Android 17 anche un telefono Android ne mostra una, secondo la pagina del comportamento di Android. Chi la ignora ha letto il tag senza che il server ne sappia nulla.
Il contatore tiene il proprio conto. Su un NTAG213 si incrementa alla prima lettura dopo che il tag entra nel campo, secondo la sua scheda su wakdev.com, che una richiesta segua o no, quindi i salti fra i valori che un server riceve sono normali: la pagina dei codici rotanti la chiama deriva.
Estrarre i valori
Dove finiscono i caratteri si decide quando il tag viene configurato, con le impostazioni di rispecchiamento che la scheda del chip descrive. Mettili in un parametro di richiesta con un nome o in un segmento fisso del percorso dell'URL scritto sul tag, e analizza la richiesta per quel nome, non contando i caratteri dall'inizio dell'indirizzo.
L'identificatore di un NTAG213 è di sette byte, secondo la stessa scheda, quindi arriva come quattordici caratteri esadecimali; il suo contatore è di 24 bit, sei caratteri. Un chip di un'altra famiglia ha altre lunghezze, e il codice le prende dalla scheda di quel chip invece che dal primo tag incontrato.
Verificare prima di usare
Chiunque può digitare l'URL, quindi i valori sono ingressi come tutti gli altri. Verifica la lunghezza e che ogni carattere sia esadecimale, confronta senza badare alle maiuscole, e rifiuta tutto il resto prima che raggiunga un'interrogazione di base di dati o un registro che qualcuno leggerà.
Un formato valido non dice nulla sull'esistenza. Cerca l'identificatore nel registro dei tag installati, il conto di quale tag porti cosa, e tratta un identificatore sconosciuto come sconosciuto, non come un tag nuovo da creare.
Dove l'identificatore appartiene a un oggetto che una persona porta con sé, come un badge, il registro diventa un dato su quella persona, e la pagina della protezione dei dati copre quello che segue.
Perché non dimostra nulla
L'identificatore rispecchiato è leggibile da chiunque avvicini il tag, e l'URL che lo porta si può copiare e riutilizzare senza il tag. La pagina dell'URL unico lo dice chiaro: identifica invece di autenticare.
Un contatore semplice aggiunge poco. Un server che ricorda il valore più alto visto per ciascun identificatore può rifiutare un vecchio URL riutilizzato così com'è, ma chiunque può digitare un numero più alto, e chi ha il tag in mano ne legge uno fresco, il limite che la pagina dei codici rotanti descrive.
Una prova vuole un valore che il server possa verificare crittograficamente. L'NTAG 424 DNA inserisce un CMAC AES derivato dal proprio identificatore e da un contatore di 24 bit, verificabile dal lato del server, secondo la sua scheda su wakdev.com. Come verificarlo appartiene alla documentazione di quel chip, e che cosa debba tenere chi verifica alla pagina della verifica.
Domande frequenti
Perché due richieste portano lo stesso valore di contatore?
Lo stesso URL è stato aperto due volte senza una nuova lettura, da un ricaricamento o da una copia del collegamento. Una nuova lettura del tag avrebbe prodotto un valore nuovo.
Perché il contatore salta fra una richiesta e l'altra?
Il tag è stato letto senza che il collegamento venisse aperto, e il contatore si incrementa a ogni lettura. La pagina dei codici rotanti chiama questo deriva.
L'identificatore rispecchiato è unico?
È l'identificatore di fabbrica, pensato per essere unico dentro l'assegnazione del costruttore, e leggibile da chiunque. Identifica un tag, non lo autentica.
Un server sa distinguere un tag autentico da un URL copiato?
Non con un rispecchiamento semplice. Ci vuole un chip che inserisca un valore crittografico, come il CMAC dell'NTAG 424 DNA, e un server che tenga la chiave.