Online Store

NT4H NTAG® 424 DNA Tag Read/Write Software

Source code examples in C programming language

Gli esempi di codice sorgente del software spiegati in questa pagina si riferiscono alle soluzioni tecnologiche NFC NTAG® DNA. Il suo scopo principale è quello di scrivere e leggere NTAG® 413 DNA e NTAG® 424 DNA tag, cioè NXP NTAG® Type 4 Tag.

Questi tag sono pienamente conformi a:

  • ISO/IEC 14443, tutte le parti da 1 a 4, selezione dei file ISO/IEC 7816-4 e gestione APDU e target passivo conforme a ISO/IEC18092
  • UID a 7 byte (secondo ISO/IEC 14443 – 3)
  • NFC Forum Tag 4 Tipo di configurazione tecnica e della struttura dati NDEF

Tuttavia, il motivo principale per scegliere i tag NTAG® 424 DNA tra tutti i tipi di famiglia NTAG è il suo supporto di sicurezza avanzato. I tag DNA NTAG® 424 offrono metodi di sicurezza avanzati, come ad esempio:

  • Crittografia AES-128 standard per l'autenticazione/messaggistica sicura o funzionamento AES con wrapping LRP per una resistenza agli attacchi ancora più forte
  • Autenticazione reciproca a 3 passaggi per accedere al file di dati protetto
  • Messaggio NFC univoco sicuro (SUN)
  • Contatore di rubinetti NFC incrementali
  • Comunicazione semplice, CMAC e crittografata (configurabile)
  • Firma di originalità NXP basata su ECC
  • Assemblaggio su chip di URL di elementi con mirror ASCII flessibili.

Di conseguenza, il nostro esempio di software include le funzioni per tutti i protocolli di sicurezza NTAG® 424 DNA e l'implementazione delle opzioni.

Docs & Software Download

Panoramica del software

Funzioni del software:

  • Ottenere e modificare le impostazioni dei file
  • Ottieni l'UID
  • Imposta ID casuale
  • Cambia chiave AES
  • Lettura/scrittura lineare (ASCII & HEX)
  • Modalità di autenticazione a tre livelli
  • Lettura/scrittura SDM (Secure Dynamic Message)
  • Ottieni il contatore di lettura SDM
  • Memorizzare la chiave AES nel lettore
  • Blocca/sblocca il lettore
  • Opzioni avanzate del lettore (specificare la porta COM del lettore, l'indirizzo IP, l'SN e così via)

Linguaggi di programmazione disponibili:

  • C (console)
  • C# (GUI)

Sistemi operativi, piattaforme e ambienti supportati:

  • Multipiattaforma

Tag, etichette, schede supportati:

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

Hardware consigliato:

  • μFR Nano
  • μFR Nano Online
  • μFR Classico
  • μFR Classico CS
  • μFR Advance
  • μFR XL

nt4h source coe software

 

Software respiratorio Descrizione
ufr-esempi-c-nt4h

Esempio di codice sorgente della console C di implementazione dei tag nt4h con lettori RFID NFC serie μFR.  

ufr-esempi-c_sharp-nt4h

Esempio di codice sorgente GUI C# per implementazione di tag nt4h con lettori RFID NFC serie μFR.

Software manual

1. Software NT4H – Console C – Lettore aperto

Scarica: ufr-examples-c-nt4h

L'NT4H è destinato alla manipolazione di una nuova serie di tag NXP NTAG®. Questa serie include NTAG® 413 DNA e NTAG ®424 DNA. NTAG® 424 DNA è pienamente conforme all'NFC Forum Type 4 Tag IC. Supporta l'operazione crittografica AES-128 e un nuovo messaggio SECURE Unique NFC (SUN). NXP sconsiglia l'uso di tag DNA NTAG® 413 per nuovi progetti poiché NTAG® 424 DNA disponibile offre migliori funzionalità di sicurezza.

L'avvio dell'applicazione apre una console con una stampa del menu principale.
Se i driver hardware sono stati installati correttamente, sarà possibile aprire la porta del lettore selezionando una delle opzioni disponibili:

  • Opzione 1 – La porta del lettore si apre utilizzando le opzioni predefinite (rilevamento automatico) (solitamente utilizzate per un singolo lettore USB collegato all'host)
  • Opzione 2 – La porta del lettore si apre utilizzando parametri configurabili manualmente: reader_type, port_name, port_interface e argomento.

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

2. Software NT4H – Console C – Menu principale

Ecco la vetrina della modalità Simple Reader Open. 
Selezione dell'opzione di menu 1. aprirà la porta del lettore e stabilirà la comunicazione con il dispositivo. Quando la comunicazione viene stabilita, la console visualizza il menu principale con tutte le funzioni software elencate. 

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

2.1 Software NT4H – Console C – Ottieni le impostazioni dei file

La prima funzione, Ottieni impostazioni file, visualizza le impostazioni dei file selezionate. A seconda del tag utilizzato, digitare 1 -2 per NTAG413 e 1-3 per NTAG 424.

NTAG413 dispone di due file di dati standard:

  • Il file numero 1 si riferisce al file Capability Container (32 byte),
  • Il file numero 2 si riferisce al file NDEF (128 byte).

NTAG424 dispone di tre file di dati standard:

  • Il file numero 1 si riferisce al file Capability Container (32 byte),
  • Il numero di file 2 si riferisce al file NDEF (256 byte),
  • Il file numero 3 si riferisce al file proprietario (128 byte),
  • Il numero di parametri restituiti è variabile.

Se il file corrente è un file di dati standard con messaggistica sicura AES, si applica quanto segue:

  • Tipo di file
  • Modalità di comunicazione
  • Diritti di accesso ai file.

nt4h c set file settings1 1

EXAMPLE 1

Esempio di dimensione del file:

  • Numero file = 3 (file proprietario NTAG424)
  • Stato della modalità di comunicazione cifrato (0x03)
  • La messaggistica dinamica protetta è disabilitata
  • Il numero chiave per la lettura è 2, il numero chiave per la scrittura è 3,
  • Il numero chiave per la lettura/scrittura è 3,
  • Il numero di chiave per modificare le impostazioni del file è 0,
  • La dimensione del file è 128 byte.

nt4h c get file settings

EXAMPLE 2

Se il file corrente è un file di dati standard con messaggistica dinamica sicura, contiene più dati.

Esempio:

  • il numero del file è 2 (file NDEF),
  • La messaggistica dinamica sicura è abilitata,
  • l'accesso alla lettura e alla scrittura è gratuito (0x0E chiave),
  • la dimensione del file è 256 byte,
  • UID Mirroring è abilitato,
  • Il contatore di lettura SDM è abilitato,
  • Il limite del contatore di lettura SDM è disabilitato,
  • la parte Dati crittografati del file è attivata,
  • il numero chiave per SDM Meta Read è 2 (UID, contatore di lettura SDM, dati PICC, MAC),
  • la parte Dati crittografati del numero di chiave del file è 2.
  • Il contatore di lettura SDM può leggere senza autenticazione,
  • L'offset dei dati PICC (UID crittografato e contatore di lettura SDM) è 49,
  • l'offset di ingresso MAC è 86,
  • la parte dati crittografati dell'offset del file è 86,
  • la parte dati crittografati della lunghezza del file è 32,
  • MAC Offset è 124.

nt4h c set file settings

2.2 Software NT4H – Console C – Impostazione delle impostazioni dei file

Per aggiungere le impostazioni del file, selezionare la seconda opzione di menu. A causa di un gran numero di parametri, ci sono due funzioni per le impostazioni dei parametri del file.

nt4h c set file settings1

EXAMPLE 1

nt4h c set file settings2

File di dati standard:

  • File numero 3 (file proprietario),
  • la modalità di comunicazione corrente è crittografata,
  • Il valore di Modifica chiave è 0.

Le nuove impostazioni sono:

  • Modalità di comunicazione semplice,
  • Tasto di lettura 2,
  • Tasto di scrittura 3,
  • Chiave di lettura/scrittura 3,
  • Cambia chiave 0,
  • la modalità di autenticazione con chiave fornita.

 

 

 

 

 

 

EXAMPLE 2

nt4h c set file settings2

File di messaggistica dinamica sicura:

  • il numero del file è 2,
  • Modalità di comunicazione Plain,
  • La chiave di lettura è 14,
  • La chiave di scrittura è 14,
  • La chiave di lettura/scrittura è 14,
  • Il valore di Cambia chiave è 0,
  • UID Mirroring è abilitato,
  • Il contatore di lettura SDM è abilitato,
  • Il contatore di lettura SDM è disabilitato,
  • la parte Dati crittografati del file è attivata,
  • SDM Meta Read Key è 2,
  • La lettura del file SDM è 2,
  • La chiave del contatore di lettura SDM è 2,
  • Offset dati PICC crittografati 49,
  • Mac Input Data Offset 86,
  • la parte di dati crittografati Offset 86,
  • Mac Offset 124.

2.3 Software NT4H – Console C – Ottieni UID (solo NTAG 424)

Se si utilizzano tag NTAG® 424 con la modalità di protezione dell'autenticazione abilitata, l'opzione di menu 3. visualizzerà il tag UID.

La funzione restituisce l'UID a 7 byte della scheda. È utile se le opzioni ID casuale sono attivate. È richiesta un'autenticazione valida con qualsiasi chiave della carta.

nt4h c get uid

2.4 Software NT4H – Console C – Imposta UID casuale (solo NTAG® 424)

NTAG® 424 DNA consente una maggiore sicurezza del tag tramite l'impostazione casuale dell'UID (opzione di menu 4).
La funzione Imposta UID casuale sostituisce l'UID univoco a 7 byte con l'UID casuale a 4 byte. Di conseguenza, il tag restituisce un UID casuale a 4 byte su ogni lettura. Il tag ora restituisce un ID casuale a 4 byte anziché un ID univoco a 7 byte.
Questa funzione richiede l'autenticazione Master Key (numero 0).

Attenzione: questa operazione è irreversibile!

nt4h c get uid example1 1

2.5 Software NT4H – Console C – Cambia tasto AES

 

nt4h c change aes keyL'opzione di menu 5 consente il cambio di tasto AES.
Questa funzione richiede l'autenticazione Master Key (numero 0).
Immettere il nuovo tasto AES digitando i 16 byte esadecimali.
Se la chiave da modificare non è una chiave master, il valore della chiave precedente è obbligatorio.
 
 
 
 

EXAMPLE 1

Esempio di modifica della chiave AES:

  • Chiave numero 4.
  • 0x00000000000000000000000000000000 del valore della chiave master dell'applicazione
  • Vecchia chiave 4 valore 0x00000000000000000000000000000000
  • Nuovo valore chiave 4 0x11111111111111111111111111111111.

nt4h c change aes key

2.6 Software NT4H – Console C – Lettura lineare

La funzione Lettura lineare include la modalità di lettura semplice, macked e crittografata. Inoltre, l'autenticazione di lettura del contenuto in modalità Chiave fornita e in modalità Chiave interna consente l'accesso al contenuto se il tag è protetto. In caso contrario, il contenuto del tag sbloccato può essere letto senza immettere la chiave (opzione: Nessuna autenticazione). La console visualizzerà il contenuto leggibile nella modalità di autenticazione selezionata come esadecimale e la notazione ASCI.

2.6.1 Software NT4H – Console C – Lettura lineare

La funzione di lettura lineare include la modalità di lettura semplice, mac (Message Authentication Code) e crittografata. Inoltre, l'autenticazione di lettura del contenuto in modalità Chiave fornita e chiave interna consente l'accesso al contenuto se il tag è protetto. In caso contrario, il contenuto del tag sbloccato è accessibile senza immettere la chiave (opzione: Nessuna autenticazione). La console visualizzerà il contenuto leggibile nella modalità di autenticazione selezionata come esadecimale e la notazione ASCI.

La funzione legge i dati registrati del file. I parametri richiesti sono:

  • Numero del file,
  • La chiave di accesso di lettura o lettura/scrittura,
  • Modalità di comunicazione,
  • Modalità di autenticazione (se Chiave di lettura è 14, selezionare l'opzione Nessuna autenticazione),
  • Indirizzo di avvio (0 – indirizzo massimo),
  • Lunghezza dei dati.

nt4h c linear read function

2.7 Software NT4H – Console C – Scrittura lineare

Come per la funzione Linear Read, la funzione Linear Write consente tre modalità di comunicazione e il formato esadecimale o ASCII anche per la scrittura di contenuti. Inoltre, la modalità di autenticazione selezionata si applica al contenuto registrato. 

La funzione scrive i dati nel file. I parametri richiesti sono:

  • Numero del file,
  • La chiave di accesso di lettura o lettura/scrittura,
  • Modalità di comunicazione,
  • Modalità di autenticazione (se chiave di lettura è 14, selezionare l'opzione Nessuna autenticazione),
  • Indirizzo di partenza (0 – indirizzo massimo),
  • Inserisci i dati in formato ASCII o esadecimale.

nt4h c linear write

2.8 Software NT4H – Console C – Lettura dinamica sicura dei messaggi

Il Secure Dynamic Messaging (SDM) sui tag DNA NT4H abilita la funzione SUN. Si riferisce al testo (ASCII) nel messaggio NDEF.
Per applicare la funzione Secure Dynamic Message Read, abilitare il file Secure Dynamic Message. Inoltre, impostare l'accesso in lettura su gratuito (chiave 14 – Opzione nessuna autenticazione).

nt4h c sdm read

2.9 Software NT4H – Console C – Secure Dynamic Message Write

Come per la lettura sicura dinamica dei messaggi, per la funzione Secure Dynamic Message Write, abilitare il file Secure Dynamic Message. Inoltre, impostare l'accesso in lettura su gratuito (chiave 14 – Opzione nessuna autenticazione).

nt4h c sdm write

2.10 Software NT4H – Console C – Ottieni contatore di lettura SDM

Il contatore di lettura dinamica sicura dei messaggi esiste solo se il file SDM è abilitato. L'autenticazione è o non è richiesta, a seconda dell'impostazione di accesso del contatore di lettura SDM del file.

nt4h c get sdm reading counter

 

2.11 Software NT4H – Console C – Memorizza la chiave AES nel lettore

Il dispositivo Reader può memorizzare 16 tasti AES con valori di indice da 0 a 15. Ciò significa che l'indice Key può avere un valore compreso tra 0 e 15. Nell'esempio viene illustrato come archiviare la chiave con un valore 0 x 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

EXAMPLE 1

nt4h c store aes key into the reader

EXAMPLE 2

La chiave AES memorizzata nel lettore è sbloccata per impostazione predefinita.

È possibile bloccare la chiave memorizzata con qualsiasi password a 8 byte.

Esempio:
La password è 12345678

nt4h c store aes key into the reader password

EXAMPLE 3

Nel caso in cui la chiave memorizzata sia protetta da password (bloccata), è necessario sbloccarla fornendo la sua password a 8 byte.

Esempio:
La password è 12345678

nt4h c store aes key into the reader password unlock

Questo manuale presenta l'esempio di software nel linguaggio di programmazione C. Tuttavia, tutto il software di codice sorgente correlato in altri linguaggi di programmazione contiene le stesse funzioni. Dove possibile, è stata sviluppata una GUI.
Si prega di controllare il nostro repository GitLab per esempi di codice sorgente disponibili in altri linguaggi di programmazione.