Vous êtes sur la page 1sur 14

Machine Translated by Google

Mode  d'emploi :  NTAG  424  DNA
Boîte  à  outils  d'initialisation  et  de  validation
Version :  2023­05­15  r1

Aperçu 2

Architecture  du  système 2

Installation  du  composant  serveur 3

Initialisation  des  tags  à  l'aide  du  PC  et  du  lecteur  USB  NFC 4

Lecteurs  USB  NFC  compatibles 4

Instructions  d'utilisation 4

Initialisation  des  balises  à  l'aide  d'un  smartphone  Android  ou  iOS 6

Vérification  des  balises  NFC 8
Introduction 8

Mise  en  œuvre  recommandée 9

Appel  de  l'API  de  validation  depuis  le  backend  de  votre  application  Web dix

Fonctionnalités  optionnelles  dans  Tag  Setup  PC 11
Identifiant  de  lot 11
Fichier  de  données  personnalisé 11

Fonctionnalités  optionnelles  dans  l'application  NFC  Developer  (en  mode  version  complète) 12
Identifiant  de  lot   12

Données  personnalisées  à  stocker  sur  la  balise   12

Paramètres  de  configuration  du  serveur  (fichier .env)   12

Remarques  de  sécurité 14

R&D  ITSEC  |  https://itsecrnd.com/
1
Machine Translated by Google

Aperçu
Ce  progiciel  est  conçu  pour  permettre  une  initialisation  et  une  validation  rapides  et  simples  des  produits  NTAG  424  
DNA  et  NTAG  424  DNA  TagTamper.

Architecture  du  système
Ce  progiciel  contient  deux  composants :

•  Composant  serveur :  binaires  dont  le  nom  commence  par  «  nfcdev­  » ;  Expose  l'API  HTTP
pour  la  validation  des  balises  et  coordonne  également  le  processus  d'initialisation  des  balises.  La  plupart  des  
paramètres  sont  configurés  à  ce  niveau,  y  compris  les  clés  d'autorisation ;
•  Composant  client :  Binaire  nommé  commençant  par  «  tag­setup­pc  » ;  Interconnecte  votre
Lecteur  NFC  USB  avec  le  composant  Serveur,  permettant  ainsi  d'initialiser  de  nouvelles  balises  NFC ;

Schéma  simplifié  de  l'architecture  du  système.

Alternativement,  le  programme  Tag  Setup  PC  et  le  lecteur  USB  NFC  pourraient  être  remplacés  par  un  smartphone.

Architecture  système  alternative.

Les  deux  configurations  représentées  sont  décrites  plus  en  détail  dans  les  sections  suivantes  de  ce  document.

R&D  ITSEC  |  https://itsecrnd.com/
2
Machine Translated by Google

Installation  du  composant  serveur
1.  Veuillez  télécharger  le  binaire  "nfcdev"  approprié  pour  votre  système  d'exploitation  cible.
Actuellement,  ce  binaire  est  fourni  en  trois  variantes :  nfcdev­win.exe  (Windows  x86_64),  
nfcdev­macos  (Mac  OS  x86_64)  et  nfcdev­linux  (Linux  x86_64).

2.  Installez  le  serveur  Redis.  Cette  base  de  données  simple  est  nécessaire  pour  maintenir  certains  éléments  de  base
des  informations  sur  vos  balises.

Linux  (Ubuntu  ou  Debian) :  apt­get  update  &&  apt­get  install  redis­server

Autres  systèmes  d'exploitation :  veuillez  suivre  le  guide  officiel :  https://
redis.io/docs/getting­started/installation/

3.  Lancez  le  binaire  nfcdev.  Il  devrait  afficher  les  informations  d'utilisation  contenant  une  liste  de
commandes  possibles.

./nfcdev

4.  Lancez  l'assistant  de  configuration  nfcdev.  Il  vous  posera  quelques  questions  puis  générera  un  
nouveau  fichier  de  configuration  pour  vous.

./nfcdev  init

5.  Après  avoir  terminé  l'assistant  d'initialisation,  votre  configuration  sera  stockée  dans  le  fichier .env.  
Veuillez  sauvegarder  ce  fichier,  car  il  contient  votre  clé  d'authentification  de  balise.
Si  vous  perdez  cette  clé,  vous  ne  pourrez  plus  valider  vos  tags !

6.  Veuillez  ouvrir  le  fichier .env  et  notez  les  valeurs  suivantes :  
SETUP_AUTH_TOKEN,  SDM_AUTH_TOKEN.  Nous  aurons  besoin  de  ces  valeurs  dans  les  
sections  suivantes  de  ce  guide.

7.  Veuillez  lancer  le  serveur  d'initialisation  et  de  validation  des  balises :

./serveur  nfcdev

Par  défaut,  cette  commande  démarrera  deux  serveurs  HTTP :

Tag  Initialization  Server :  port  8082
API  de  validation  des  balises :  port 8085

Veuillez  garder  cette  commande  en  cours  d'exécution.

R&D  ITSEC  |  https://itsecrnd.com/
3
Machine Translated by Google

Initialisation  des  tags  à  l'aide  du  PC  et  du  lecteur  USB  NFC

Lecteurs  USB  NFC  compatibles
Les  modèles  d'appareils  suivants  ont  été  testés  avec  le  logiciel  client  et  fonctionnent  correctement :

•  ACS  ACR122U  •  
ACS  ACR1252
•  ACS  ACR1281U­C1  •  
Identiv  uTrust  3700  F  •  
Identiv  uTrust  3720  F

Instructions  d'utilisation
1.  Veuillez  télécharger  le  binaire  tag­setup­pc*.jar.

2.  Assurez­vous  que  Java  JRE  est  installé.  La  version  minimale  prise  en  charge  est  Java  8.  Si  
vous  n'avez  pas  Java  JRE,  veuillez  suivre  les  instructions  officielles  de  votre  système  
d'exploitation :  https://www.java.com/pl/download/manual.jsp

3.  Veuillez  connecter  le  lecteur  USB  NFC  à  votre  ordinateur.  Assurez­vous  également  que  les  pilotes  
appropriés  sont  installés  sur  votre  système  d'exploitation.  Veuillez  vous  référer  au  manuel  
d'utilisation  de  votre  lecteur  si  vous  rencontrez  des  problèmes  avec  l'appareil  lui­même.

4.  Veuillez  lancer  le  binaire  tag­setup­pc*.jar.  Si  cela  ne  fonctionne  pas,  veuillez  essayer  de  le  faire
depuis  la  ligne  de  commande :

java  ­jar  <nom  de  fichier  exact>.jar

R&D  ITSEC  |  https://itsecrnd.com/
4
Machine Translated by Google

5.  Le  programme  doit  afficher  la  fenêtre  de  configuration  initiale :

Dans  le  champ  « Adresse  du  serveur  principal »,  veuillez  saisir  l'adresse  HTTP  à  laquelle  votre  serveur  
nfcdev  (Tag  Initialization  Server,  port  par  défaut :  8082)  peut  être  joint.  L'URL  doit  se  terminer  par /
setup .

Dans  le  champ  "Auth  code",  veuillez  entrer  la  valeur  de  SETUP_AUTH_TOKEN  (provenant  du  fichier  
de  configuration  de  votre  serveur).

Les  options  restantes  sont  décrites  dans  les  sections  suivantes  de  ce  document,  elles  sont  facultatives  
et  peuvent  initialement  être  laissées  vides.

6.  Veuillez  cliquer  sur  [OK]  pour  démarrer  le  processus  d'initialisation.  Après  un  démarrage  réussi,  la  fenêtre  
principale  du  programme  apparaît :

R&D  ITSEC  |  https://itsecrnd.com/
5
Machine Translated by Google

7.  Veuillez  placer  le  tag  NFC  sur  votre  lecteur  afin  de  l'initialiser.  Une  fois  le  programme
l'arrière­plan  deviendra  vert,  le  processus  de  programmation  est  terminé  avec  succès  et  vous  
pouvez  retirer  l'étiquette.

8.  Veuillez  noter  qu'il  est  possible  de  programmer  plusieurs  balises  NFC  au  cours  de  la  même  session.
Il  vous  suffirait  de  taper  des  balises  NFC  consécutives  sur  le  lecteur,  une  par  une.

Initialisation  des  balises  à  l'aide  d'un  smartphone  Android  ou  iOS
Alternativement,  vous  pouvez  utiliser  l'application  mobile  afin  d'initialiser  vos  tags  NFC.
Dans  un  tel  cas,  vous  n'auriez  pas  besoin  d'avoir  accès  à  l'ordinateur  personnel.  Vous  n'aurez  également  
besoin  d'aucun  dispositif  de  lecture  NFC,  car  ce  rôle  sera  joué  par  le  smartphone  lui­même.

1.  Veuillez  installer  l'application  NFC  Developer  depuis  Google  Play  ou  App  Store.

2.  Basculez  vers  votre  serveur  et  générez  un  code  QR  spécial  qui  vous  permettrait  de  coupler  
l'application  NFC  Developer  avec  votre  serveur.  Veuillez  exécuter  la  commande  suivante :

nfcdev  deeplink  ­­output  terminal  ­­server­address  http://<  IP  de  votre  serveur  
>:8082/setup

Après  une  exécution  réussie,  la  commande  affichera  le  code  QR  sur  votre  terminal.
Alternativement,  vous  pouvez  lancer  la  commande  avec  le  commutateur  ­­output  html  pour  générer  
un  fichier  HTML  avec  le  code  QR.

R&D  ITSEC  |  https://itsecrnd.com/
6
Machine Translated by Google

3.  Basculez  sur  votre  smartphone,  ouvrez  l'application  appareil  photo  et  scannez  le  code  QR.
Une  fois  que  vous  accédez  au  contenu  numérisé,  le  smartphone  doit  automatiquement  
ouvrir  l'application  NFC  Developer.  L'application  passera  du  "mode  démo"  au  "mode  version  
complète"  et  sera  automatiquement  couplée  avec  votre  serveur.

L'interface  de  l'application  NFC  Developer  après  son  couplage  avec  votre  serveur  privé.

4.  Veuillez  appuyer  sur  le  bouton  "WRITE  NFC  TAG"  et  appuyez  sur  votre  tag  NFC  afin  de
programmez­le.  Les  champs  restants  sont  facultatifs  et  seront  décrits  dans  d'autres  sections  
de  ce  document.

R&D  ITSEC  |  https://itsecrnd.com/
7
Machine Translated by Google

Vérification  des  balises  NFC

Introduction
Vos  balises  NFC  programmées  renverront  l'URL  que  vous  avez  configurée  dans  l'assistant  de  
configuration  initiale  avec  le  paramètre  dynamique  ajouté  à  la  toute  fin.

L'URL  configurée  est  stockée  dans  le  paramètre  NDEF_URL  du  fichier .env  de  votre  serveur.

Exemples  d'URL  dynamiques  
Par  exemple,  si  votre  URL  configurée  était  https://example.com/scanned,  vos  balises  renverront  des  URL  
dynamiques  uniques  au  format  suivant :

http://example.com/scanned?e=« paramètre  dynamique »

Par  exemple,  la  première  analyse  renverrait :  
http://example.com/scanned?e=6179CF2DB5E2C406159967A16CD0C7DD58741  
2462BB89FEB6378F0EB8B88F7124CEDDEA63C6885C9

Alors  que  la  deuxième  analyse  et  chaque  analyse  consécutive  renverront  une  valeur  encore  
différente,  
par  exemple :  http://example.com/scanned?e=3540037FC823E191157A1E4E40E264DD9C78E  
4274BFDABF35935D6D8454B2B33710E7F7B97A7BCC1

L'ensemble  du  "paramètre  dynamique"  est  crypté  et  un  tiers  n'est  pas  en  mesure  de  déduire  une  
quelconque  information  en  l'analysant.

R&D  ITSEC  |  https://itsecrnd.com/
8
Machine Translated by Google

Mise  en  œuvre  recommandée
Votre  NDEF_URL  (l'URL  physiquement  programmée  sur  les  balises)  doit  pointer  vers  votre  
application  Web  principale.  Votre  application  Web  principale  doit  appeler  en  interne  l'API  nfcdev  
Validator  afin  de  déchiffrer  et  de  valider  le  paramètre  dynamique.  L'API  Validator  renverra  
une  simple  réponse  JSON

Workflow  de  validation  recommandé.

R&D  ITSEC  |  https://itsecrnd.com/
9
Machine Translated by Google

Appel  de  l'API  de  validation  depuis  le  backend  de  votre  application  Web
Par  défaut,  le  binaire  nfcdev  exposera  l'API  de  validation  sur  le  port  8085.  Cette  API  offre  un  point  de  
terminaison  HTTP  unique  qui  accepterait  le  paramètre  dynamique  chiffré  et  renverrait  un  JSON  avec  le  
résultat  de  la  validation  et  la  liste  des  paramètres  extraits.

L'API  de  validation  est  protégée  à  l'aide  de  SDM_AUTH_TOKEN,  qui  est  stocké  dans  la  configuration  
de  votre  serveur.

Exemple  de  script  Python  pour  interagir  avec  l'API  de  validation  nfcdev
importer  des  
demandes  d'importation  json

SDM_AUTH_TOKEN  =  'D14E144C1D7AC070E44D9A7EB4B28CC9'

def  validate_dynamic_param(dynamic_param):  res  =  
requests.get('http://localhost:8085/api/validate?e='  +  dynamic_param,  headers={'Authorization':  'Bearer  '
+  SDM_AUTH_TOKEN})
res.raise_for_status()

retourner  res.json()

dynamic_param  =  'E40C665D5FC0E58FF55E3781FEC3DDD19C78E4274BFDABF35935D6D8454B2B33710E7F7B97A7BCC1'  
print(json.dumps(validate_dynamic_param(dynamic_param),  indent=4))

Exemple  de  sortie  du  script  Python  {

"valid":  vrai,  "tag":  
{ "uid":  
"042B4FDA926980",  "utilisé":  faux,  
"custom_data":  
{ "as_str":  "",  "as_hex":  ""

},  
"tt_status":  "NT",  
"read_ctr_num":  3
},  
"message":  "Tout  va  bien !  L'URL  dynamique  est  valide  et  n'a  pas  encore  été  utilisée."

R&D  ITSEC  |  https://itsecrnd.com/
dix
Machine Translated by Google

Fonctionnalités  optionnelles  dans  Tag  Setup  PC
L'assistant  initial  du  programme  PC  Tag  Setup  contient  les  champs  facultatifs  suivants :

Identifiant  de  lot

En  option,  vous  pouvez  écrire  un  texte  décrivant  le  lot  de  balises  que  vous  venez  de  programmer.  En  utilisant  
une  commande  spéciale  dans  le  serveur  nfcdev,  vous  pourrez  répertorier  tous  les  UID  de  balises  par  
identifiant  de  lot  donné.

Exemple,  répertoriant  toutes  les  balises  appartenant  à  "demo­batch"  via  le  serveur  nfcdev :  $ ./
nfcdev­win  batch­list  ­­batch­id  demo­batch  [

{
"uid":  "042B4FDA926980",  "batch_id":  
"demo­batch",  "has_tt":  faux

},  
{
"uid":  "04244FDA926980",  "batch_id":  
"demo­batch",  "has_tt":  faux

},  
{
"uid":  "04724FDA926980",  "batch_id":  
"demo­batch",  "has_tt":  faux

}
]

Chaque  objet  renvoyé  contiendra  les  clés  suivantes :  •  uid  ­  
identifiant  unique  de  la  balise ;  •  
batch_id  ­  identifiant  de  lot ;  •  has_tt  
­  si  la  balise  a  ou  non  la  fonction  TagTamper ;

Fichier  de  données  personnalisé

Il  est  possible  d'encoder  une  infime  partie  des  informations  personnalisées  directement  sur  les  balises  NFC.  Vos  
informations  personnalisées  seront  stockées  dans  le  paramètre  dynamique  et  seront  entièrement  cryptées.  
L'utilisateur  final  ne  pourra  pas  déduire  cette  information  en  regardant  le  paramètre  dynamique  et  il  ne  sera  
pas  possible  de  falsifier  cette  information.

Afin  d'ajouter  des  données  personnalisées  à  vos  balises  NFC  via  le  programme  Tag  Setup  PC,  vous  devez  créer  un  
fichier  texte  contenant  la  liste  délimitée  par  une  nouvelle  ligne  des  données  personnalisées  que  vous  souhaitez

R&D  ITSEC  |  https://itsecrnd.com/
11
Machine Translated by Google

programme  sur  vos  tags  NFC.  La  première  balise  se  verra  attribuer  les  données  personnalisées  de  la  première  ligne  du  
fichier  texte,  la  deuxième  balise  recevra  la  deuxième  ligne,  et  ainsi  de  suite.

Exemple  de  fichier  texte  de  données  personnalisé

SKU:0123456789012;Noir;ID:1
SKU:0123456789012;Orange;ID:2
SKU:0123456789012;Blanc;ID:3

Le  contenu  des  données  personnalisées  peut  être  du  texte  arbitraire  et  le  format  des  données  peut  être  arbitrairement  
conçu  par  vous.

Les  données  personnalisées  de  la  balise  peuvent  être  récupérées  via  l'API  de  validation  nfcdev.  Le  texte  de  données  
personnalisé  sera  automatiquement  renvoyé  lors  de  la  validation  réussie  du  paramètre  dynamique.

Fonctionnalités  optionnelles  dans  l'application  NFC  Developer  (en  
mode  version  complète)
Lorsque  l'application  NFC  Developer  est  associée  à  votre  serveur  nfcdev  privé,  les  options  suivantes  seront  disponibles :

Identifiant  de  lot
En  option,  vous  pouvez  écrire  un  texte  décrivant  le  lot  de  balises  que  vous  venez  de  programmer.  Pour  plus  de  détails,  
veuillez  consulter  « Identifiant  de  lot »  dans  la  section  précédente.

Données  personnalisées  à  stocker  sur  le  tag
En  option,  vous  pouvez  fournir  une  courte  chaîne  de  texte  qui  sera  physiquement  programmée  sur  la  balise  NFC.  La  
chaîne  de  données  personnalisée  fournie  sera  transportée  à  l'intérieur  du  paramètre  dynamique  sous  la  forme  chiffrée.  
L'utilisateur  final  ne  serait  pas  en  mesure  de  déduire  la  chaîne  de  données  personnalisées  en  examinant  le  paramètre  
dynamique,  ni  de  falsifier  les  données  personnalisées.

Les  données  personnalisées  seront  automatiquement  renvoyées  par  l'API  de  validation  nfcdev  lors  de  la  validation  
réussie  du  paramètre  dynamique.

Paramètres  de  configuration  du  serveur  (fichier .env)

Les  paramètres  particuliers  pris  en  charge  par  le  fichier .env  du  serveur  nfcdev  sont  répertoriés  dans  le  tableau  ci­dessous.
Veuillez  noter  qu'au  lieu  de  fournir  le  fichier .env,  tous  ces  paramètres  peuvent  également  être  transmis

R&D  ITSEC  |  https://itsecrnd.com/
12
Machine Translated by Google

via  des  variables  d'environnement,  notamment  lorsque  le  serveur  nfcdev  est  lancé  via  Docker.

SYSTEM_MODE Mode  de  fonctionnement  du  système.  Doit  être  défini  sur  "sdm".
Les  autres  valeurs  ne  sont  pas  encore  prises  en  charge.

REDIS_URL L'URL  pointant  vers  la  base  de  données  Redis.  Exemple :  redis://
192.168.0.123

ENABLE_HELLO_PAGES Soit  "0"  ou  "1".  Lorsqu'il  est  défini  sur  "1",  le  serveur  fournira  des  pages  
d'index  conviviales  lorsqu'il  sera  atteint  via  HTTP.  Veuillez  le  régler  sur  "1"  
pour  le  développement  et  sur  "0"  pour  la  production.

NDEF_URL L'URL  qui  sera  physiquement  programmée  sur  les  tags  NFC.  Le  paramètre  
dynamique  sera  ajouté  automatiquement  à  la  fin  de  l'URL  
fournie.

ENABLE_RANDOM_UID Soit  "0"  ou  "1".  Lorsqu'il  est  réglé  sur  "1",  la  fonction  UID  aléatoire  sera  
activée  sur  les  balises  NFC  nouvellement  programmées.  L'utilisateur  final  
ne  serait  pas  en  mesure  de  connaître  l'identifiant  réel  de  l'étiquette.  Vous  
aurez  toujours  accès  à  ces  informations.  Pour  plus  de  détails  sur  cette  
fonctionnalité,  veuillez  consulter  la  fiche  technique  NTAG  424  DNA  ("UID  
aléatoire").

TAG_LOCK_MODE •  « protéger »  ­  Protégez  les  balises  contre  toute  modification  non  
autorisée,  sans  les  verrouiller  définitivement  (recommandé).  
Vous  pourrez  toujours  reprogrammer  les  balises  si  nécessaire,  mais  
le  tiers  ne  pourra  pas  remplacer  ou  effacer  la  balise.  •  «  verrouiller  
»  ­  Programmez  les  balises  et  verrouillez­
les  définitivement  contre  toute  modification  (déconseillé).  
Ni  vous  ni  personne  d'autre  ne  pourrez  remplacer  
ou  effacer  l'étiquette  après  sa  première  programmation.

SYSTEM_MASTER_KEY Chaîne  hexadécimale  de  32 octets  (64 caractères)  contenant  la  clé  principale  
du  système.  La  clé  principale  du  système  sera  utilisée  pour  dériver  
cryptographiquement  les  clés  individuelles  pour  chaque  étiquette.

Cette  valeur  doit  rester  secrète.  Les  balises  doivent  être  
programmées  et  validées  avec  la  même  
SYSTEM_MASTER_KEY.  Si  le  SYSTEM_MASTER_KEY  est  modifié  entre­
temps,  vos  anciens  tags  ne  passeront  plus  la  validation.

SETUP_AUTH_TOKEN Jeton  d'autorisation  pour  le  programme  Tag  Setup  PC  et  NFC  Developer  
App  (application  mobile  pour  l'initialisation  de  la  balise).

SDM_AUTH_TOKEN Jeton  d'autorisation  pour  l'API  du  validateur.

R&D  ITSEC  |  https://itsecrnd.com/
13
Machine Translated by Google

Remarques  de  sécurité
1.  Sauvegardez  votre  SYSTEM_MASTER_KEY  (stocké  dans  le  fichier .env  du  serveur  nfcdev)
et  gardez­le  secret.

2. Si  possible,  n'exposez  pas  les  serveurs  nfcdev  à  l'Internet  public.

2.1.  Veuillez  noter  que  l'API  de  validation  nfcdev  n'a  pas  besoin  d'être  exposée  aux  utilisateurs  finaux,  
dans  la  configuration  correcte,  elle  doit  seulement  être  accessible  en  interne  par  le  backend  
de  votre  application  Web.

2.2. Il  est  recommandé  de  restreindre  les  adresses  IP  qui  seront  autorisées  à  se  connecter  au  
serveur  d'initialisation  de  balises  nfcdev  à  l'aide  du  pare­feu  de  votre  système  d'exploitation,  ou  
de  masquer  ce  serveur  à  l'intérieur  du  réseau  interne/VPN,  afin  qu'il  ne  soit  disponible  
que  pour  les  employés  autorisés  de  l'entreprise.

3.  Les  serveurs  nfcdev  peuvent  fonctionner  derrière  un  proxy  inverse  HTTP(S).  Veuillez  envisager  d'utiliser  un  
proxy  inverse  et  d'appliquer  SSL  au  niveau  du  proxy  inverse  si  d'autres  précautions  de  sécurité  sont  
impossibles  ou  difficiles  à  mettre  en  œuvre.

R&D  ITSEC  |  https://itsecrnd.com/
14

Vous aimerez peut-être aussi