Wie liest ein Server die Kennung, die ein Tag in seine URL spiegelt?
Als Teil der angefragten Adresse. Ein Chip mit Spiegelung schreibt seine Kennung, und auf manchen Chips seinen Lesezähler, als hexadezimale Zeichen in die URL, an einer Stelle, die beim Einstellen des Tags gewählt wurde. Der Server zieht sie heraus, prüft ihre Länge und ihre Zeichen, und behandelt sie als Behauptung darüber, welcher Tag gelesen wurde, nicht als Beweis.
Was den Server erreicht
Der Chip fügt die Zeichen ein, während der Tag gelesen wird, das Telefon empfängt also eine URL, die sie bereits enthält, und die Seite zur eigenen URL erklärt, warum das gleich beschriebene Tags unterscheidbar macht. Der Server empfängt eine gewöhnliche Anfrage für diese URL.
Er empfängt sie nur, wenn das Telefon den Link öffnet. Ein iPhone, das einen Tag im Hintergrund liest, zeigt eine Mitteilung, die angetippt werden muss, und ab Android 17 zeigt ein Android-Telefon ebenfalls eine, laut der Seite zum Verhalten von Android. Wer sie übergeht, hat den Tag gelesen, ohne dass der Server davon erfährt.
Der Zähler führt seine eigene Rechnung. Auf einem NTAG213 zählt er beim ersten Lesen hoch, nachdem der Tag ins Feld kommt, laut seinem Datenblatt auf wakdev.com, ob eine Anfrage folgt oder nicht, Lücken zwischen den Werten, die ein Server empfängt, sind also normal: Die Seite zu wechselnden Codes nennt es Drift.
Die Werte herausziehen
Wo die Zeichen landen, wird beim Einstellen des Tags entschieden, durch die Einstellungen der Spiegelung, die das Datenblatt des Chips beschreibt. Legen Sie sie in einen benannten Abfrageparameter oder einen festen Abschnitt des Pfades der URL, die auf den Tag geschrieben wird, und lesen Sie die Anfrage über diesen Namen aus, nicht durch das Zählen von Zeichen ab dem Anfang der Adresse.
Die Kennung eines NTAG213 ist sieben Bytes lang, laut demselben Datenblatt, sie kommt also als vierzehn hexadezimale Zeichen an; sein Zähler ist 24 Bit lang, sechs Zeichen. Ein Chip einer anderen Familie hat andere Längen, und Code nimmt sie aus dem Datenblatt dieses Chips statt vom ersten Tag, dem er begegnet ist.
Prüfen vor dem Gebrauch
Jeder kann die URL eintippen, die Werte sind also Eingaben wie alle anderen. Prüfen Sie die Länge und dass jedes Zeichen hexadezimal ist, vergleichen Sie ohne Rücksicht auf Groß- und Kleinschreibung, und weisen Sie alles andere zurück, bevor es eine Datenbankabfrage oder ein Protokoll erreicht, das jemand lesen wird.
Eine gültige Form sagt nichts über die Existenz. Schlagen Sie die Kennung im Verzeichnis der ausgebrachten Tags nach, dem Nachhalten, welcher Tag was trägt, und behandeln Sie eine unbekannte Kennung als unbekannt, nicht als neuen Tag, der anzulegen wäre.
Wo die Kennung zu einem Gegenstand gehört, den eine Person trägt, etwa einem Ausweis, wird die Aufzeichnung zu Daten über diese Person, und die Seite zum Datenschutz behandelt, was daraus folgt.
Warum sie nichts beweist
Die gespiegelte Kennung ist für jeden lesbar, der den Tag antippt, und die URL, die sie trägt, lässt sich ohne den Tag kopieren und erneut senden. Die Seite zur eigenen URL sagt es deutlich: Sie erkennt, sie authentifiziert nicht.
Ein bloßer Zähler fügt wenig hinzu. Ein Server, der sich den höchsten für jede Kennung gesehenen Wert merkt, kann eine unverändert erneut gesendete alte URL zurückweisen, aber jeder kann eine höhere Zahl eintippen, und wer den Tag hält, liest eine frische, die Grenze, die die Seite zu wechselnden Codes beschreibt.
Ein Beweis braucht einen Wert, den der Server kryptografisch prüfen kann. Der NTAG 424 DNA fügt einen AES-CMAC ein, der aus seiner Kennung und einem 24 Bit langen Zähler abgeleitet wird und sich auf dem Server prüfen lässt, laut seinem Datenblatt auf wakdev.com. Wie er zu prüfen ist, gehört in die Unterlagen dieses Chips, und was der Prüfende halten muss, zur Seite zur Prüfung.
Häufige Fragen
Warum tragen zwei Anfragen denselben Wert des Zählers?
Dieselbe URL wurde zweimal geöffnet, ohne ein neues Lesen, durch ein Neuladen oder eine Kopie des Links. Ein neues Lesen des Tags hätte einen neuen Wert erzeugt.
Warum springt der Zähler zwischen zwei Anfragen?
Der Tag wurde gelesen, ohne dass der Link geöffnet wurde, und der Zähler zählt bei jedem Lesen hoch. Die Seite zu wechselnden Codes nennt das Drift.
Ist die gespiegelte Kennung eindeutig?
Sie ist die Werkskennung, innerhalb der Zuteilung des Herstellers als eindeutig gedacht und für jeden lesbar. Sie erkennt einen Tag, sie authentifiziert keinen.
Kann ein Server einen echten Tag von einer kopierten URL unterscheiden?
Mit einer bloßen Spiegelung nicht. Es braucht einen Chip, der einen kryptografischen Wert einfügt, etwa den CMAC des NTAG 424 DNA, und einen Server, der den Schlüssel hält.