Lecture/écriture de tag NFC avec protection par mot de passe
J'ai besoin d'écrire/lire des données textuelles à un tag NFC. La façon dont je m'attends à ce que la lecture/écriture devrait fonctionner est la suivante:
- Premier temps d'écrire, je devrais être en mesure de définir le mot de passe.
- La prochaine fois, quand quelqu'un essaie de lire OU d'écrire, s'il a le mot de passe, alors il devrait être en mesure de faire la lecture/écriture.
- Aucune autre application doit être en mesure de modifier mon tag sans le mot de passe j'ai mis à l'étape 1.
J'ai eu une autre approche dans l'esprit de l'écriture des données chiffrées sur l'étiquette une fois et l'écriture s'est fait faire de la balise de lecture seule. Je suis capable de faire cela. Mais maintenant je me rends compte de la marquer en lecture seule n'est pas efficace.
J'ai beaucoup cherché sur internet mais n'a pas trouvé toute la fiabilité de l'article ou d'un guide encore. Donc, si quelqu'un a fait de la protection par mot de passe de tags NFC merci de me guider.
Vous devez vous connecter pour publier un commentaire.
D'un tag NFC (ou en fait un Forum NFC balise qui met en œuvre l'une des cinq Forum NFC Tag caractéristiques de Fonctionnement) est une simple mémoire de données sans mécanismes de sécurité (autres que le verrouillage de la mémoire à lecture seule). Ces balises servent à stocker l'librement de données lisibles au format NDEF. Pas d'authentification ou les mécanismes de protection contre la lecture de l'étiquette de contenu (ou la copie du contenu des balises pour les autres balises) sont normalisés.
Cependant, certains balise existante de produits à mettre en œuvre des fonctions de sécurité qui vont au-delà de ce qui est spécifié par le NFC Forum.
Le plus simple mécanisme est un peu "mot de passe" (typiquement une valeur de 32 bits). Pour l'authentification, ce mot de passe est transmis à la balise en clair, et la balise reconnaît/rejette l'authentification. (Notez que la transmission en clair, dans plus de la technologie NFC signifie que quelqu'un sniffer de la communication est en mesure d'obtenir le mot de passe.) Des étiquettes à l'appui à ce type de protection par mot de passe pouvez utiliser l'authentification pour passer un définies zone de mémoire entre pas d'accès, l'accès en lecture seule, et accès en lecture/écriture.
Une approche plus sophistiquée est réciproque défi-réponse d'authentification à l'aide d'une clé partagée. Par rapport à un simple mot de passe en texte clair, cela signifie qu'un dispositif d'écoute passive ne peut pas découvrir la clé partagée. Comme avec le mot de passe, l'authentification de l'état peut être utilisé pour passer un définies zone de mémoire entre pas d'accès, l'accès en lecture seule, et accès en lecture/écriture avec la plupart des étiquette des produits. Cependant, pas tous d'entre eux du point de vue cryptographique lier l'accès à la mémoire et l'authentification de l'pahse ensemble.
Produits de mise en œuvre d'un trois-passer l'authentification mutuelle sont, par exemple, NXP MIFARE Classic*, NXP MIFARE Ultralight C, NXP MIFARE DESFire (EV1), Sony FeliCa cartes.
*) à Noter que le propriétaire d'authentification et de cryptage du protocole de MIFARE Classic est connu pour être rompu depuis 2008. En outre, MIFARE Classic est uniquement pris en charge sur les appareils Android avec un chipset NFC de NXP.
Quand il s'agit de la mise en œuvre de l'authentification sur Android, vous devez être conscient de ce qui suit:
Si vous voulez continuer à bénéficier de démarrage automatique de l'application par le biais d'un message NDEF (soit un enregistrement personnalisé que vous déclarez dans le filtre d'intention ou d'une Application Android Enregistrer), vous devez disposer librement, de manière lisible mémoire contenant le message NDEF. Depuis protection par mot de passe/l'authentification n'est pas une partie de la NFC Forum spécifications, Android lui-même ne peut pas s'authentifier à la balise (Android n'aurait pas le droit de clé/mot de passe de toute façon). Par conséquent, le NDEF zone de mémoire (pour les étiquettes à plat de façon linéaire-mémoire adressable c'est généralement le premier des blocs de N de la balise de mémoire) doit être lisible sans authentification.
Même si vous n'utilisez pas de NFC filtres d'intention dans le manifeste de l'application et d'utiliser uniquement le premier plan du système de distribution (ou le lecteur en mode API), vous pouvez toujours utiliser NDEF à découvrir/filtre pour votre balises.
Vous ne pouvez pas utiliser le NDEF couche d'abstraction (c'est à dire la
Ndef
/NdefFormatable
classes) pour accéder à la zone mémoire. Au lieu de cela, vous avez besoin de changer le tag de la plate-forme à faible niveau de commandes à l'aide de l'un de l'étiquette de la technologie de classes (NfcA
, ...,IsoDep
). Aussi, ne pas essayer de mélanger entre plusieurs balise de cours (par ex. à l'aide deNfcA
pour l'authentification de l'envoi de la commande etNdef
pour la lecture des données par la suite). Alors que cela fonctionne sur certains appareils, il ne fonctionne pas sur plupart des appareils depuis la réinitialisation de la communication avec le tag lorsque swithcing entre ces objets de communication.Il y a des problèmes connus avec le tag présence de mécanisme de contrôle sur certains appareils Android (principalement avant Android 5) qui peuvent interférer avec l'authentification (c'est à dire la présence de contrôle peut envoyer des commandes entre l'authentification des commandes entraînant des échecs d'authentification). Ce problème peut être surmonté avec le lecteur en mode API.
Enfin, sachez que si vous enregistrez le mot de passe/clé d'authentification dans une application, un attaquant pourrait facilement désosser votre application pour obtenir la clé.
password protected
?Certaines balises comme MIFARE DESFire nativement en charge les mots de passe /le chiffrement comme vous le décrivez. Pour recréer cette fonctionnalité sur les types les plus courants de tags (Topaze/MIFARE Ultralight, etc.) est intrinsèquement impossible que des tags NFC n'ont pas construit de protections pour la copie de leurs données (par conception). Vous pourriez potentiellement crypter vos données avant qu'il est codé, mais il faudrait que l'outil de décodage de données pour être au courant de la méthode de cryptage (probablement une application autonome, séparée de l'OS Android, par exemple). Moins cher les étiquettes, comme vous le dites, être mises en permanence à la lecture seule.
En d'autres termes, plus tags NFC ne soutiendra pas ce que vous essayez d'atteindre, mais il existe des balises (qui sont beaucoup plus cher) à l'appui de grandes quantités de données et des outils tels que le mot de passe de cryptage.
Comme MIFARE DESFIRE adhérer à la norme ISO 14443-4 et en supposant que vous utilisez Android, vous êtes en mesure de faire usage de la
IsoDep
méthodes. Pour plus d'informations sur la façon de lire/écrire des mots de passe, etc. voir cet article: Comment le Android NFC prise en charge des API Mifare Desfire?je suis actuellement en train de travailler sur la technologie NFC prépayée recharge de mesure du projet. Je voudrais directement à la question de ce que vous avez demandé jusqu'à présent. Protection par mot de passe fonction est donnée pour beaucoup de tags NFC comme Mifare classic de la famille, ultra-léger de la famille, NTag21x de la famille .
Des réponses à vos questions:
1. comment définir le mot de passe?
consultez la fiche de données de chaque feuille de données de l'étude de l'organisation de la mémoire. après cela, trouver la page ou l'adresse où vous souhaitez écrire le mot de passe. supposons que, pour des cartes mifare classique, secteur de la remorque bloc est la clé de mot de passe bloc. si vous écrivez votre mot de passe pour le bloc. maintenir une bonne logiques d'écrire le mot de passe ou autre carte peut bloquer.
2. Quel que soit le mot de passe que vous avez écrit , il ne peut pas être lu. donc la personne qui sait que la clé est uniquement autorisé à accéder à cette balise.
3. vous pouvez configurer l'ensemble de votre balise de mémoire que de lire et écrire à l'aide de nfc conditions d'accès.
toutes les chose que vous devez faire est de consulter la fiche de données clairement.