{"id":1329,"date":"2019-02-25T12:54:11","date_gmt":"2019-02-25T10:54:11","guid":{"rendered":"http:\/\/pila.fr\/wordpress\/?p=1329"},"modified":"2019-06-12T14:11:59","modified_gmt":"2019-06-12T12:11:59","slug":"edition-de-tag-rfid-mifare-sous-linux-avec-le-lecteur-acr122","status":"publish","type":"post","link":"https:\/\/pila.fr\/wordpress\/archives\/1329","title":{"rendered":"\u00c9dition de tag RFID MIFARE sous Linux avec le lecteur ACR122"},"content":{"rendered":"\n<p>Ayant r\u00e9cemment acquis un lecteur NFC ACR122, je m&rsquo;attendais \u00e0 trouver un logiciel me permettant de l&rsquo;exploiter simplement sous Linux Mint.<\/p>\n\n\n\n<p>\u00c9tonnamment, je n&rsquo;en ai pas trouv\u00e9, et l&#8217;emploi du lecteur pour programmer des tags Mifare s&rsquo;est av\u00e9r\u00e9 moins intuitif que je ne l&rsquo;esp\u00e9rait.<\/p>\n\n\n\n<p>Apr\u00e8s quelques heures de gal\u00e8re, voil\u00e0 un r\u00e9sum\u00e9 de la proc\u00e9dure :<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Installation<\/h2>\n\n\n\n<p>Installer libnfc et ses outils : <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ apt install libnfc-bin<\/pre>\n\n\n\n<p>Modifier le fichier \/etc\/modbprobe.d\/blacklist-libnfc.conf pour inclure le driver pn533_usb. En effet, celui ci (ainsi que les autres d\u00e9ja inclus dans ce fichier ) interf\u00e8rent avec le bon fonctionnement du pilote utilis\u00e9 par libnfc : <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ echo \"blacklist pn533_usb\" &gt;&gt; \/etc\/modprobe.d\/blacklist-libnfc.conf<\/pre>\n\n\n\n<p>Red\u00e9marrer la machine ( cette fois ci le bon pilote sera charg\u00e9 ).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lister les tags visibles<\/h2>\n\n\n\n<p>Lister les tags visible s&rsquo;effectue avec la commande nfc-list :<\/p>\n\n\n\n<p>A vide (sans tag sur le lecteur )<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><br>$ nfc-list <br> nfc-list uses libnfc 1.7.1<br> NFC device: ACS \/ ACR122U PICC Interface opene<\/pre>\n\n\n\n<p>Avec un tag Mifare sur le lecteur ( UID = A4 0B 44 76 )<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ nfc-list <br> nfc-list uses libnfc 1.7.1<br> NFC device: ACS \/ ACR122U PICC Interface opened<br> 1 ISO14443A passive target(s) found:<br> ISO\/IEC 14443A (106 kbps) target:<br>     ATQA (SENS_RES): 00  04  <br>        UID (NFCID1): a4  0b  44  76  <br>       SAK (SEL_RES): 08  <\/pre>\n\n\n\n<p>L&rsquo;option -v permet d&rsquo;en savoir plus sur le tag d\u00e9tect\u00e9 ( ici un tag diff\u00e9rent de celui lu pr\u00e9c\u00e9demment ) :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ nfc-list -v\nnfc-list uses libnfc 1.7.1\nNFC device: ACS \/ ACR122U PICC Interface opened\n1 ISO14443A passive target(s) found:\nISO\/IEC 14443A (106 kbps) target:\n    ATQA (SENS_RES): 00  04  \n* UID size: single\n* bit frame anticollision supported\n       UID (NFCID1): ec  11  9c  1e  \n      SAK (SEL_RES): 08  \n* Not compliant with ISO\/IEC 14443-4\n* Not compliant with ISO\/IEC 18092\n\nFingerprinting based on MIFARE type Identification Procedure:\n* MIFARE Classic 1K\n* MIFARE Plus (4 Byte UID or 4 Byte RID) 2K, Security level 1\n* SmartMX with MIFARE 1K emulation\nOther possible matches based on ATQA &amp; SAK values:\n\n0 Felica (212 kbps) passive target(s) found.\n\n0 Felica (424 kbps) passive target(s) found.\n\n0 ISO14443B passive target(s) found.\n\n0 ISO14443B' passive target(s) found.\n\n0 ISO14443B-2 ST SRx passive target(s) found.\n\n0 ISO14443B-2 ASK CTx passive target(s) found.\n\n0 Jewel passive target(s) found.\n\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Lecture \/ \u00e9criture<\/h2>\n\n\n\n<p>Les op\u00e9rations de lecture \/ \u00e9criture sur un tag Mifare Classic s&rsquo;effectuent avec la commande nfc-mfclassic. Les cl\u00e9s par d\u00e9faut sont utilis\u00e9es mais il est possible de sp\u00e9cifier sont propre fichier de cl\u00e9 ( cf man nfc-mfclassic)<\/p>\n\n\n\n<p>Lecture du contenu du tag et enregistrement dans le fichier mifare.mfd<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ nfc-mfclassic r a mifare.mfd<br> NFC reader: ACS \/ ACR122U PICC Interface opened<br> Found MIFARE Classic card:<br> ISO\/IEC 14443A (106 kbps) target:<br>     ATQA (SENS_RES): 00  04  <br>        UID (NFCID1): a4  0b  44  76  <br>       SAK (SEL_RES): 08  <br> Guessing size: seems to be a 1024-byte card<br> Reading out 64 blocks |\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026.|<br> Done, 64 of 64 blocks read.<br> Writing data to file: mifare.mfd \u2026Done.<\/pre>\n\n\n\n<p>Ecriture du tag depuis le fichier mifare.mfd<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ nfc-mfclassic w a mifare.mfd<br>\nNFC reader: ACS \/ ACR122U PICC Interface opened<br>\nFound MIFARE Classic card:<br>\nISO\/IEC 14443A (106 kbps) target:<br>\n    ATQA (SENS_RES): 00  04  <br>\n       UID (NFCID1): a4  0b  44  76  <br>\n      SAK (SEL_RES): 08  <br>\nGuessing size: seems to be a 1024-byte card<br>\nWriting 64 blocks |\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026|<br>\nDone, 63 of 64 blocks written.<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Edition du contenu<\/h2>\n\n\n\n<p>Pour l&rsquo;\u00e9dition, l&#8217;emploi d&rsquo;un editeur hexad\u00e9cimal est n\u00e9cessaire. Je recommande <em>bless<\/em>. Pour faciliter la lecture du contenu, je pr\u00e9conise d&rsquo;ajuster la taille de la fen\u00eatre pour afficher 16 octets sur chaque ligne, ainsi chaque ligne contient 1 bloc du tag :<\/p>\n\n\n\n<p><br><\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/pila.fr\/wordpress\/wp-content\/uploads\/MifareContentEdit.png\" alt=\"\" class=\"wp-image-1338\" width=\"571\" height=\"542\" srcset=\"https:\/\/pila.fr\/wordpress\/wp-content\/uploads\/MifareContentEdit.png 761w, https:\/\/pila.fr\/wordpress\/wp-content\/uploads\/MifareContentEdit-300x285.png 300w\" sizes=\"auto, (max-width: 571px) 100vw, 571px\" \/><figcaption>En rouge le bloc 0 contient l&rsquo;UID de la carte<br><br>En jaune le bloc 4 contient les donn\u00e9es que j&rsquo;y ai \u00e9crit<\/figcaption><\/figure>\n\n\n\n<p>Le premier bloc de chaque secteur contient les permissions d&rsquo;acc\u00e8s. Par d\u00e9faut l&rsquo;acc\u00e8s en lecture \/ \u00e9criture est possible avec les cl\u00e9s d&rsquo;origines. Le bloc 0 est en lecture seule. Attention de ne pas modifier la longueur du fichier ( utiliser le mode remplacement plut\u00f4t que le mode insertion avec la touche \u00ab\u00a0insert\u00a0\u00bb du clavier )<\/p>\n\n\n\n<p>Les 16 caract\u00e8res d&rsquo;un bloc me suffisant pour mon application, et n&rsquo;ayant pas de probl\u00e9matique de s\u00e9curit\u00e9, cet article touche \u00e0 \u00e7a fin. Peut \u00eatre le compl\u00e9terais-je plus tard si je venais \u00e0 devoir stocker des donn\u00e9es sur plusieurs blocs, ou \u00e0 mettre en place diff\u00e9rentes cl\u00e9s pour l&rsquo;acc\u00e8s aux donn\u00e9es. Ce second cas est cependant improbable, \u00e9tant donn\u00e9 que les carte Mifare sont gravement d\u00e9faillante d&rsquo;un point de vue s\u00e9curit\u00e9 (cf les nombreux article sur le web concernant la r\u00e9cup\u00e9ration des cl\u00e9s, ainsi que la possibilit\u00e9 d&rsquo;obtenir des cartes dont le bloc 0 est accessible en \u00e9criture )<br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ayant r\u00e9cemment acquis un lecteur NFC ACR122, je m&rsquo;attendais \u00e0 trouver un logiciel me permettant de l&rsquo;exploiter simplement sous Linux Mint. \u00c9tonnamment, je n&rsquo;en ai pas trouv\u00e9, et l&#8217;emploi du lecteur pour programmer des tags Mifare s&rsquo;est av\u00e9r\u00e9 moins intuitif que je ne l&rsquo;esp\u00e9rait. Apr\u00e8s quelques heures de gal\u00e8re, voil\u00e0 un r\u00e9sum\u00e9 de la proc\u00e9dure &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/pila.fr\/wordpress\/archives\/1329\">Lire la suite<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[69],"tags":[156,66,157,155],"class_list":["post-1329","post","type-post","status-publish","format-standard","hentry","category-linux-2","tag-acr122","tag-linux","tag-mifare","tag-nfc","item-wrap"],"_links":{"self":[{"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/posts\/1329","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/comments?post=1329"}],"version-history":[{"count":15,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/posts\/1329\/revisions"}],"predecessor-version":[{"id":1382,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/posts\/1329\/revisions\/1382"}],"wp:attachment":[{"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/media?parent=1329"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/categories?post=1329"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/tags?post=1329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}