Online Store

NT4H NTAG® 424 DNA Tag Read/Write Software

Source code examples in C programming language

Die auf dieser Seite erläuterten Software-Quellcodebeispiele beziehen sich auf NFC NTAG® DNA-Technologielösungen. Sein Hauptzweck ist das Schreiben und Lesen von NTAG 413 DNA- und NTAG 424 DNA-Tags, d.h. NXP NTAG®®® Typ 4 Tag.

Diese Tags sind vollständig konform mit:

  • ISO/IEC 14443, alle Teile 1 bis 4, ISO/IEC 7816-4 Dateiauswahl und APDU-Handhabung sowie passives Ziel gemäß ISO/IEC18092
  • 7-Byte UID (nach ISO/IEC 14443 – 3)
  • NFC Forum Tag 4 Typ technische und NDEF-Datenstrukturkonfiguration

Der Hauptgrund für die Wahl der NTAG 424 DNA-Tags unter allen NTAG-Familientypen® ist jedoch die erweiterte Sicherheitsunterstützung. NTAG® 424 DNA-Tags bieten fortschrittliche Sicherheitsmethoden, wie zum Beispiel:

  • Standard-AES-128-Kryptographie für Authentifizierung/Secure Messaging oder LRP-umschlossener AES-Betrieb für noch stärkere Angriffsresistenz
  • Gegenseitige 3-Pass-Authentifizierung für den Zugriff auf die geschützte Datendatei
  • Sichere eindeutige NFC-Nachricht (SUN)
  • Inkrementelle NFC-Taps-Zähler
  • Einfache, CMAC- und verschlüsselte Kommunikation (konfigurierbar)
  • ECC-basierte NXP-Originalitätssignatur
  • On-Chip-Montage von Artikel-URLs mit flexiblen ASCII-Spiegeln.

Dementsprechend beinhaltet unser Softwarebeispiel die Funktionen für alle NTAG® 424 DNA-Sicherheitsprotokolle und Optionsimplementierungen.

Docs & Software Download

Software-Übersicht

Software-Funktionen:

  • Abrufen und Bearbeiten von Dateieinstellungen
  • UID abrufen
  • Zufällige ID festlegen
  • AES-Schlüssel ändern
  • Lineares Lesen/Schreiben (ASCII & HEX)
  • Dreistufiger Authentifizierungsmodus
  • SDM (Secure Dynamic Message) Lesen/Schreiben
  • Holen Sie sich den SDM-Lesezähler
  • Speichern Sie den AES-Schlüssel im Lesegerät
  • Lesegerät sperren/entsperren
  • Erweiterte Reader-Optionen (geben Sie den COM-Port des Readers, die IP-Adresse, das SN usw. an)

Verfügbare Programmiersprachen:

  • C (Konsole)
  • C# (grafische Benutzeroberfläche)

Unterstützte Betriebssysteme, Plattformen und Umgebungen:

  • Plattformübergreifend

Unterstützte Tags, Etiketten, Karten:

  • NXP NTAG® 21x (210, 213, 215, 216, Tag Tamper)
  • NXP NTAG® 4xx DNA (413, 424)

Empfohlene Hardware:

  • μFR Nano
  • μFR Nano Online
  • μFR Klassisch
  • μFR Klassische CS
  • μFR Vorschub
  • μFR XL

nt4h source coe software

 

Software Beatmung Beschreibung
UFR-Beispiele-C-NT4H

Console C-Quellcodebeispiel für die Implementierung von nt4h-Tags mit NFC-RFID-Lesegeräten der μFR-Serie.  

ufr-beispiele-c_sharp-nt4h

GUI C# Quellcode Beispiel f nt4h Tags Implementierung mit μFR Serie NFC RFID-Lesegeräten.

Software manual

1. NT4H Software – C-Konsole – Reader Open

Herunterladen: ufr-examples-c-nt4h

Der NT4H ist für eine NXP NTAG® neue Tags Serie Manipulation vorgesehen. Diese Serie umfasst NTAG 413 DNA und NTAG® ®424 DNA. NTAG® 424 DNA ist vollständig kompatibel mit dem NFC Forum Type 4 Tag IC. Es unterstützt den kryptografischen AES-128-Betrieb und eine neue Secure Unique NFC (SUN) -Nachricht. NXP empfiehlt nicht, NTAG 413 DNA-Tags für neue Projekte zu verwenden, da der verfügbare NTAG®® 424 DNA bessere Sicherheitsfunktionen bietet.

Durch das Starten der Anwendung wird eine Konsole mit einem Ausdruck des Home-Menüs geöffnet.
Wenn Sie Ihre Hardwaretreiber ordnungsgemäß installiert haben, können Sie den Leseranschluss öffnen, indem Sie eine der verfügbaren Optionen auswählen:

  • Option 1 – Der Reader-Port wird mit Standardoptionen (automatische Erkennung) geöffnet (wird normalerweise für einen einzelnen USB-Reader verwendet, der an den Host angeschlossen ist)
  • Option 2 – Der Reader-Port wird mit manuell konfigurierbaren Parametern geöffnet: reader_type, port_name, port_interface und Argument.

D NFC SDK ufr examples c nt4h master win64 release nt4h c example.exe 27 08 2020 13 36 18

2. NT4H Software – C-Konsole – Hauptmenü

Hier ist der Simple Reader Open-Modus Showcase. 
Wählen Sie den Menüpunkt 1. öffnet den Leseranschluss und stellt die Kommunikation mit dem Gerät her. Wenn die Kommunikation hergestellt ist, zeigt die Konsole das Hauptmenü mit allen aufgelisteten Softwarefunktionen an. 

D NFC SDK ufr examples c nt4h master win64 release nt4h c example.exe 27 08 2020 13 37 35

2.1 NT4H Software – C-Konsole – Dateieinstellungen abrufen

Die erste Funktion, Dateieinstellungen abrufen, zeigt die ausgewählten Dateieinstellungen an. Geben Sie je nach verwendetem Tag 1 -2 für NTAG413 und 1-3 für NTAG 424 ein.

Der NTAG413 verfügt über zwei Standarddatendateien:

  • Dateinummer 1 bezieht sich auf die Capability Container-Datei (32 Byte),
  • Dateinummer 2 bezieht sich auf die NDEF-Datei (128 Bytes).

Der NTAG424 verfügt über drei Standarddatendateien:

  • Dateinummer 1 bezieht sich auf die Capability Container-Datei (32 Byte),
  • Dateinummer 2 bezieht sich auf die NDEF-Datei (256 Bytes),
  • Dateinummer 3 bezieht sich auf die proprietäre Datei (128 Bytes),
  • Die Anzahl der zurückgegebenen Parameter ist variabel.

Wenn es sich bei der aktuellen Datei um eine Standarddatendatei mit AES Secure Messaging handelt, gilt Folgendes:

  • Dateityp
  • Kommunikationsmodus
  • Dateizugriffsrechte.

nt4h c set file settings1 1

EXAMPLE 1

Beispiel für die Dateigröße:

  • Dateinummer = 3 (NTAG424 proprietäre Datei)
  • Kommunikationsmodus Status verschlüsselt (0x03)
  • Sicheres dynamisches Messaging ist deaktiviert
  • Die Schlüsselnummer zum Lesen ist 2, die Schlüsselnummer für das Schreiben ist 3,
  • Die Schlüsselnummer für Lesen/Schreiben ist 3,
  • Die Schlüsselnummer für die Einstellungen zum Ändern der Datei lautet 0,
  • Die Dateigröße beträgt 128 Bytes.

nt4h c get file settings

EXAMPLE 2

Wenn es sich bei der aktuellen Datei um eine Standarddatendatei mit sicherem dynamischem Messaging handelt, enthält sie weitere Daten.

Beispiel:

  • die Dateinummer ist 2 (NDEF-Datei),
  • Secure Dynamic Messaging aktiviert ist,
  • Lese- und Schreibzugriff ist kostenlos (Schlüssel 0x0E),
  • die Dateigröße beträgt 256 Bytes,
  • Die UID-Spiegelung ist aktiviert,
  • SDM-Lesezähler aktiviert ist,
  • SDM Reading Counter Limit ist deaktiviert,
  • der verschlüsselte Datenteil der Datei aktiviert ist,
  • die Schlüsselnummer für SDM Meta Read ist 2 (UID, SDM-Lesezähler, PICC-Daten, MAC),
  • Der verschlüsselte Datenteil der Dateischlüsselnummer ist 2.
  • SDM-Lesezähler kann ohne Authentifizierung lesen,
  • PICC Data Offset (Encrypted UID and SDM Reading Counter) ist 49,
  • der MAC-Eingangsoffset 86 beträgt,
  • der verschlüsselte Datenteil des Datei-Offsets 86 ist,
  • der verschlüsselte Datenanteil der Dateilänge 32 beträgt,
  • MAC Offset ist 124.

nt4h c set file settings

2.2 NT4H Software – C-Konsole – Dateieinstellungen festlegen

Um die Dateieinstellungen hinzuzufügen, wählen Sie die zweite Menüoption. Aufgrund einer großen Anzahl von Parametern gibt es zwei Funktionen für Dateiparametereinstellungen.

nt4h c set file settings1

EXAMPLE 1

nt4h c set file settings2

Standard-Datendatei:

  • Dateinummer 3 (proprietäre Datei),
  • der aktuelle Kommunikationsmodus verschlüsselt ist,
  • Der Wert Change Key ist 0.

Neue Einstellungen sind:

  • Einfacher Kommunikationsmodus,
  • Lesen Sie Schlüssel 2,
  • Schreibschlüssel 3,
  • Lese-/Schreibtaste 3,
  • Ändern Sie die Taste 0,
  • den Authentifizierungsmodus "Bereitgestellter Schlüssel".

 

 

 

 

 

 

EXAMPLE 2

nt4h c set file settings2

Secure Dynamic Messaging-Datei:

  • das Aktenzeichen 2 ist,
  • Kommunikationsmodus Plain,
  • Read Key ist 14,
  • Schreibschlüssel ist 14,
  • Read/Write Key ist 14,
  • Der Wert des Änderungsschlüssels ist 0,
  • Die UID-Spiegelung ist aktiviert,
  • SDM-Lesezähler aktiviert ist,
  • SDM-Lesezähler deaktiviert ist,
  • der verschlüsselte Datenteil der Datei aktiviert ist,
  • SDM Meta Read Key ist 2,
  • SDM-Datei gelesen ist 2,
  • SDM Reading Counter Key ist 2,
  • Verschlüsselter PICC-Datenoffset 49,
  • MAC-Eingangsdaten-Offset 86,
  • der verschlüsselte Datenteiloffset 86,
  • MAC-Offset 124.

2.3 NT4H Software – C-Konsole – UID abrufen (nur NTAG 424)

Wenn Sie NTAG® 424-Tags mit aktiviertem Authentifizierungssicherheitsmodus verwenden, wählen Sie die Menüoption 3. zeigt die Tag-UID an.

Die Funktion gibt die 7-Byte-UID der Karte zurück. Es ist nützlich, wenn die Optionen Zufällige ID aktiviert sind. Eine gültige Authentifizierung mit jedem Kartenschlüssel ist erforderlich.

nt4h c get uid

2.4 NT4H Software – C-Konsole – Zufällige UID festlegen (nur NTAG® 424)

NTAG® 424 DNA ermöglicht zusätzliche Tag-Sicherheit durch die zufällige UID-Einstellung (Menüpunkt 4).
Die Funktion "Zufällige UID festlegen" ersetzt die eindeutige 7-Byte-UID durch die zufällige 4-Byte-UID. Folglich gibt das Tag bei jedem Lesevorgang eine zufällige 4-Byte-UID zurück. Das Tag gibt jetzt eine zufällige 4-Byte-ID anstelle einer eindeutigen 7-Byte-ID zurück.
Diese Funktion erfordert die Master-Key-Authentifizierung (Nummer 0).

Warnung: Dieser Vorgang ist irreversibel!

nt4h c get uid example1 1

2.5 NT4H Software – C-Konsole – AES-Taste ändern

 

nt4h c change aes keyMenüpunkt 5 erlaubt den AES-Schlüsselwechsel.
Diese Funktion erfordert die Master-Key-Authentifizierung (Nummer 0).
Geben Sie den neuen AES-Schlüssel ein, indem Sie die 16 hexadezimalen Bytes eingeben.
Wenn es sich bei dem zu ändernden Schlüssel nicht um einen Hauptschlüssel handelt, ist der vorherige Schlüsselwert obligatorisch.
 
 
 
 

EXAMPLE 1

Beispiel für AES-Schlüsseländerungen:

  • Schlüssel Nummer 4.
  • Wert des Anwendungshauptschlüssels 0x00000000000000000000000000000000
  • Alter Schlüssel 4 Wert 0x00000000000000000000000000000000
  • Neuer Key 4-Wert 0x11111111111111111111111111111111.

nt4h c change aes key

2.6 NT4H Software – C-Konsole – Linear Read

Die Funktion "Lineares Lesen" umfasst den einfachen, macked- und verschlüsselten Lesemodus. Auch die Authentifizierung beim Lesen von Inhalten im Modus "Bereitgestellter Schlüssel" und im Modus "Interner Schlüssel" ermöglicht den Zugriff auf Inhalte, wenn das Tag geschützt ist. Andernfalls können entsperrte Tag-Inhalte ohne Eingabe des Schlüssels gelesen werden (Option: Keine Authentifizierung). Die Konsole zeigt den Inhalt, der im ausgewählten Authentifizierungsmodus lesbar ist, als hexadezimal und die ASCI-Notation an.

2.6.1 NT4H Software – C-Konsole – Linear Read

Die lineare Lesefunktion umfasst den einfachen Mac-Modus (Message Authentication Code) und den verschlüsselten Lesemodus. Auch die Authentifizierung beim Lesen von Inhalten im Modus "Bereitgestellter Schlüssel" und im Modus "Interner Schlüssel" ermöglicht den Zugriff auf Inhalte, wenn das Tag geschützt ist. Andernfalls ist auf entsperrte Tag-Inhalte zugegriffen, ohne den Schlüssel eingeben zu müssen (Option: Keine Authentifizierung). Die Konsole zeigt den Inhalt, der im ausgewählten Authentifizierungsmodus lesbar ist, als hexadezimal und die ASCI-Notation an.

Die Funktion liest in der Datei aufgezeichnete Daten aus. Erforderliche Parameter sind:

  • Aktenzeichen
  • Die Lese- oder Lese-/Schreibzugriffstaste,
  • Kommunikationsmodus,
  • Authentifizierungsmodus (wenn der Leseschlüssel 14 ist, wählen Sie die Option Keine Authentifizierung),
  • Startadresse (0 – max. Adresse),
  • Datenlänge.

nt4h c linear read function

2.7 NT4H Software – C-Konsole – Linear Write

Wie bei der Linear Read-Funktion ermöglicht die Linear Write-Funktion drei Kommunikationsmodi und das hexadezimale oder ASCII-Format auch für das Schreiben von Inhalten. Außerdem gilt der ausgewählte Authentifizierungsmodus für den aufgezeichneten Inhalt. 

Die Funktion schreibt Daten in die Datei. Erforderliche Parameter sind:

  • Aktenzeichen
  • Die Lese- oder Lese-/Schreibzugriffstaste,
  • Kommunikationsmodus,
  • Authentifizierungsmodus (wenn der Leseschlüssel 14 ist, wählen Sie die Option Keine Authentifizierung),
  • Startadresse (0 – max. Adresse),
  • Geben Sie die Daten im ASCII- oder hexadezimalen Format ein.

nt4h c linear write

2.8 NT4H Software – C-Konsole – Secure Dynamic Message Read

Das Secure Dynamic Messaging (SDM) auf NT4H DNA-Tags aktiviert die SUN-Funktion. Es bezieht sich auf den Text (ASCII) in der NDEF-Nachricht.
Um die Secure Dynamic Message Read-Funktion anzuwenden, aktivieren Sie die Datei Secure Dynamic Message. Setzen Sie außerdem den Lesezugriff auf frei (Taste 14 – Keine Authentifizierungsoption).

nt4h c sdm read

2.9 NT4H Software – C-Konsole – Sicheres Schreiben dynamischer Nachrichten

Aktivieren Sie wie beim Secure Dynamic Message Read für die Secure Dynamic Message Write-Funktion die Datei Secure Dynamic Message. Setzen Sie außerdem den Lesezugriff auf frei (Taste 14 – Keine Authentifizierungsoption).

nt4h c sdm write

2.10 NT4H Software – C-Konsole – Holen Sie sich den SDM-Lesezähler

Der Secure Dynamic Message Reading Counter ist nur vorhanden, wenn die Datei SDM aktiviert ist. Die Authentifizierung ist abhängig von der Zugriffseinstellung für den SDM-Lesezähler der Datei erforderlich oder nicht.

nt4h c get sdm reading counter

 

2.11 NT4H Software – C-Konsole – AES-Schlüssel im Lesegerät speichern

Das Reader-Gerät kann 16 AES-Schlüssel mit den Indexwerten 0-15 speichern. Dies bedeutet, dass der Schlüsselindex ein beliebiger Wert zwischen 0 und 15 sein kann.

EXAMPLE 1

Das Beispiel zeigt, wie der Schlüssel mit dem Wert 0 x 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 nt4h c store aes key into the reader

EXAMPLE 2

Der im Lesegerät gespeicherte AES-Schlüssel ist standardmäßig entsperrt.

Sie können den gespeicherten Schlüssel mit einem beliebigen 8-Byte-Passwort sperren.

Beispiel:
Passwort ist 12345678nt4h c store aes key into the reader password

EXAMPLE 3

Falls der gespeicherte Schlüssel passwortgeschützt (gesperrt) ist, müssen Sie ihn entsperren, indem Sie sein 8-Byte-Passwort angeben.

Beispiel:
Passwort ist 12345678

nt4h c store aes key into the reader password unlock

Dieses Handbuch stellt das Softwarebeispiel in der Programmiersprache C vor. Dennoch enthält die gesamte zugehörige Quellcode-Software in anderen Programmiersprachen die gleichen Funktionen. Wo erreichbar, wurde eine GUI entwickelt.
Bitte überprüfen Sie unser GitLab-Repository auf verfügbare Quellcode-Beispiele in anderen Programmiersprachen.