Quand j’ai écrit, il y a 2 ans, l’article qui expliquait comment dupliquer le contenu d’une puce RFID, je n’imaginais pas qu’il susciterait un tel engouement. Pourtant, encore aujourd’hui c’est un des articles les plus consultés du site et c’est également un de ceux pour lequel je reçois de plus en plus de questions. Aussi, je me suis dit qu’il était temps d’écrire cette seconde partie que tant attendent : comment réaliser un clone parfait et complet d’une puce rfid.
Même s’il en existe différentes familles, les puces (ou tags) les plus répandues sont de type « Mifare Classic ». Cela tombe bien, c’est justement le type de tag sur lesquels nous allons travailler aujourd’hui. Personnellement je les ai rencontrés sur tout un tas d’applications différentes : badge de porte d’immeuble, carte d’accès à un parking, carte d’accès à une chambre d’hôtel, porte monnaie électronique pour la machine à café, ou encore carte de consommation de boissons dans certains bars et boîtes de nuit.
Si vous êtes familier du 1er article que j’ai écrit sur le sujet, vous pouvez vous demander ce que vous allez apprendre de plus ici, voici les 2 raisons principales qui vous motiveront :
Les tags RFID sont généralement composés de 2 zones : une zone de stockage de données, généralement ré-inscriptible, et une zone de stockage de l’identifiant du tag. Le fameux UID. L’UID est un identifiant unique au monde (il n’existe donc pas 2 tags avec le même UID). Il est gravé en usine au moment de la fabrication du tag et se trouve sur une partie du tag qui n’est pas ré-inscriptible. On ne peut donc pas le modifier.
A titre d’information, les tags Mifare Classic 1K (les plus répandus) contiennent 64 blocs de données. L’UID est stockée sur le premier bloc (souvent appelé dans la litterature « block 0 ») et les 63 suivants sont dédiés au stockage de données.
Si on ne peut pas modifier l’UID stocké sur ce fameux bloc 0, comment avoir 2 cartes avec le même identifiant ? C’est là que nos amis les chinois arrivent à la rescousse :)
Depuis quelques années, on a vu arriver sur le marché des tags mifare avec une petite particularité : légèrement modifiés, ils possèdent un bloc 0 réinscriptible. On peut donc modifier l’UID sur ces tags (et uniquement ceux-là !). La première fois que j’ai réussi à mettre la main sur un tag de ce type, c’était en 2014, et j’estimais avoir fait une bonne affaire en dépensant environ 20 dollars pour ce tag. En 2017, les prix ont été divisés par 10 et mettent donc ce type de tag à la portée de tous les curieux !
Évidemment, ces tags sont moins évidents à dénicher mais pas de panique, j’ai tout prévu :) Vous pouvez les commander sur la Boutique de l’Atelier du Geek sous forme de badges, sous forme de cartes, sous forme de bracelets ou encore sous forme de stickers, à chaque fois par lot de 5. Les commandes sont en général dans votre boîte aux lettres en moins de 3 jours !
VIGIK : ce nom peut sembler barbare, mais c’est la norme créée par La Poste pour standardiser l’accès aux immeubles. On lit donc très souvent le nom de cette norme sur les interphones. C’est donc VIGIK qui permet à votre facteur, mais aussi aux pompiers, policiers et autres services d’urgence d’ouvrir n’importe quelle porte d’immeuble avec un badge unique. Si je vous en parle aujourd’hui c’est que je reçois beaucoup de questions à ce sujet, car nombreuses sont les personnes qui se rêvent la possession d’un tel badge (et oui, ces badges ne sont ni plus ni moins que des tags RFID Mifare).
Malheureusement, ce n’est pas si simple. S’il est tout à fait possible de dupliquer le badge de votre ami le facteur, la norme est faite de telle sorte que pour que le badge reste valide il faut qu’il soit « rechargé » toutes les 48h. En d’autre terme, si par je ne sais quel hasard, vous arriviez à copier un de ces passes VIGIK, il ne fonctionnerait que pendant quelques heures avant de devenir complètement inutile.
Puisque ça ne fonctionne pas pour le badge du facteur, on pourrait se dire que ça ne fonctionnera pas davantage pour les résidents… Mais en fait si ça fonctionne. Les badges résidents n’ont pas besoin d’être rechargés comme ceux des facteurs, par conséquent si vous en dupliquez un cela fonctionnera et vous donnera les mêmes accès que le badge original.
Motivés à tenter l’expérience ? Il est temps de passer aux choses sérieuses :)
Pour ne pas avoir à installer de Linux sur le disque dur, il faut créer une clé USB de démarrage. Le principe est simple : lors de son lancement, le PC démarrera le système d’exploitation présent sur la clé USB comme s’il s’agissait de son propre disque dur. Cela nous permettra d’obtenir un système linux complet pour notre session de travail sur les tags RFID. A l’extinction de l’ordinateur, il suffira de retirer cette clé USB pour que la machine retrouve son fonctionnement normal.
J’ai choisi de travailler avec la distribution linux « Kali ». Cette distribution, orientée sécurité, contient de nombreux outils dont les fameux « NFC Tools » qui nous seront utiles aujourd’hui. Il faut commencer par télécharger kali (version 64 bits live) ici https://www.kali.org/downloads/. Ce tuto a été réalisé avec la version 2017.1 qui est sortie voilà quelques jours au moment où j’écris ces lignes.
Edit du 29/03/2020 : Ce tuto marche parfaitement jusqu’à la version de Kali 2019.3. Si vous souhaitez utiliser une version plus récente il faudra entrer quelques commandes supplémentaires que je vous ai préparé et surtout bénéficier d’une connexion internet.
Une fois le fichier ISO récupéré, il va falloir le transférer sur la clé. Pour cela j’utilise comme à mon habitude le logiciel RUFUS qui est très simple. Une fois RUFUS téléchargé et installé, il suffit de sélectionner la clé USB sur laquelle installer Kali, et de lui indiquer l’endroit où votre fichier ISO de kali est situé. Chez moi cela donne quelque chose comme ça :
Cliquez ensuite sur le bouton Démarrer pour lancer l’opération.
Notez que si vous souhaitez gagner du temps, vous pouvez également trouver des clés USB pré-configurées avec Kali sur la Boutique de l’Atelier du Geek.
Une fois votre clé préparée, éteignez l’ordinateur que vous souhaitez utiliser, branchez la clé et démarrez sur la clé USB. Attention pour sélectionner un périphérique de démarrage, sur certains ordinateur il faut appuyer sur une touche particulière. Sur le mien par exemple, il s’agit de la touche Echap, mais j’ai déjà croisé des ordinateurs où il fallait utiliser la touche F2, F8, F10, F11 ou Suppr par exemple…
Après quelques instants nécessaires au chargement du système, vous devriez atterrir sur un bureau vierge. On y est presque.
Par défaut, le clavier est configuré en QWERTY, ce qui n’est pas très pratique si votre ordinateur est équipé comme le mien d’un clavier AZERTY. Pour rétablir cela, il suffit de lancer le terminal via l’icône suivante :
Une fenêtre d’invite de commande va s’ouvrir, et il faudra saisir à l’intérieur la commande suivante : setxkbmap fr (ce qui nécessitera sur votre clavier d’appuyer sur les touches setxb,qp fr). Cette fenêtre de terminal va nous servir dans toutes les manipulations suivantes, vous pouvez donc la garder ouverte.
Si vous souhaitez utiliser une version de Kali 2020 ou supérieure, vous devez vous connecter à internet à ce moment et exécuter quelques commandes supplémentaires. En effet, depuis la version 2020 de kali, vous n’êtes plus identifié comme un super-utilisateur et surtout, les NFC Tools utilisés dans cet article ne sont plus présents par défaut, il va donc falloir les réinstaller ! Pour remédier à tout cela, entrez les commandes suivantes.
kali@kali:~$ sudo su root@kali:/home/kali# apt-get update root@kali:/home/kali# apt-get upgrade -y root@kali:/home/kali# apt-get install libnfc-bin mfoc -y
Maintenant que le clavier est en français, il va falloir configurer le système pour que les NFC Tools puissent interagir correctement avec votre lecteur RFID. Pour ce faire, commencez par branchez votre lecteur RFID (si ça n’est pas déjà fait). Kali va alors charger automatiquement en arrière plan des modules qui vont perturber les NFC Tools. Pour décharger ces modules, toujours dans votre fenêtre du terminal, entrez les commandes suivantes.
root@kali:~# modprobe -r pn533_usb root@kali:~# modprobe -r pn533
L’environnement est désormais fin prêt pour notre petite expérience, on va pouvoir entrer dans le vif du sujet.
Pour être sûr que le lecteur fonctionne correctement avec les NFC Tools, il suffit de lancer la commande suivante et de passer un tag RFID devant le lecteur.
root@kali:~# nfc-list
Si tout est bien configuré, le lecteur devrait vous afficher quelques informations sur le tag, dont le fameux UID, comme dans la capture ci-dessous. Ici mon UID, ce fameux numéro unique est le ea b5 8f 4b. Si vous essayez maintenant avec votre puce RFID chinoise, vous devriez obtenir un numéro d’UID différent, ce qui est tout à fait normal.
Si jamais vous obtenez un message d’erreur ou si rien ne s’affiche plusieurs possibilités :
Votre tag n’est pas un tag RFID compatible avec votre lecteur
Il y a eu une erreur lors de l’étape 2, recommencez donc à cette étape en vérifiant méticuleusement vos commandes.
Cette étape au nom un peu barbare ne devrait vous prendre que quelques secondes. Son principe ? Pour pouvoir écrire sur une puce RFID, il faut en posséder les clés de chiffrement. Une sorte de mot de passe qui permet d’encoder et de décoder les informations de la puce. Ces clés de chiffrements vont être stockées avec le contenu de la clé, dans un fichier. Ce fichier nous servira lors de l’étape finale pour copier les données de la puce originale sur la puce chinoise.
Pour lancer l’extraction des clés de chiffrement, placez votre puce sur le lecteur et saisissez dans un terminal la commande suivante.
root@kali:~# mfoc -P 500 -O carte-vierge.dmp
Les clés de chiffrement seront stockées dans le fichier « carte-vierge.dmp ».
Maintenant que les clés de chiffrement de la puce chinoise sont extraites, il va falloir faire de même avec la puce originale. Cette opération va copier les clés de chiffrement et le contenu de la puce d’origine dans un fichier. Ce fichier contiendra toutes les données de la puce, ainsi que son UID. C’est en quelques sorte une « sauvegarde » de votre puce RFID. N’hésitez pas à la conserver en lieu sûr, ainsi si vous perdez votre puce RFID vous pourrez en créer de nouvelles à l’identique à partir de ce fichier de sauvegarde.
Pour ce faire, placez la puce originale sur votre lecteur, et entrez la commande suivante :
root@kali:~# mfoc -P 500 -O carte-originale.dmp
Vous l’aurez surement compris, cette commande va créer un fichier « carte-originale.dmp » c’est le fameux fichier de sauvegarde de votre puce originale.
On arrive au bout ! Vous n’êtes plus qu’à une dernière commande de la victoire ! Maintenant que l’on possède une copie du contenu de la puce originale, ainsi que les clés de chiffrement de la puce chinoise, nous allons pouvoir transférer le contenu et l’UID de la puce originale sur la puce chinoise.
Pour se faire, et toujours dans le terminal, saisissez la commande suivante.
root@kali:~# nfc-mfclassic W a carte-originale.dmp carte-vierge.dmp
L’opération devrait prendre 1 grosse seconde avant d’aboutir sur un message de succès. Si vous êtes attentifs, vous remarquerez que la seule différence par rapport au précédent article est le fait que le « W » est écrit en capital. ça n’est pas une erreur, cela demande au lecteur de transférer le contenu de la puce ainsi que le bloc 0 qui contient l’UID. En cas de succès, un message devrait vous confirmer l’écriture de 64 secteurs sur 64 (dans le précédent article, on n’en copiait que 63 car il manquait le fameux bloc 0).
Vous pouvez vérifier le succès de l’opération en répétant l’étape 3 avec votre puce chinoise. Si tout a correctement fonctionné, la commande nfc-list appliquée à votre puce chinoise vous affichera un UID identique à celui de votre puce originale.
Et voilà, vous venez de contourner l’incontournable :)
Avec quelques dizaine d’euros de matériel et une poignée de minutes, vous aurez pu dupliquer à la perfection une puce RFID officielle. Aucun lecteur ne pourra faire la différence entre la copie et l’originale. Vous comprenez désormais que la sécurité des systèmes basés sur ce type de puce est toute relative. Comme d’habitude, vous êtes seuls responsables de l’usage que vous faites de ces connaissances. Si vous avez des questions, ou souhaitez tout simplement partager vos expériences sur le sujet, n’hésitez pas à vous exprimer dans les commentaires ! Enfin, si vous cherchez à vous équiper tout en soutenant le blog, n’hésitez pas à faire un tour dans la boutique de l’Atelier du Geek pour y trouver votre bonheur !
S’il y a quelques années, très peu de personnes avaient entendu parler de technologies comme le NFC et le RFID, il en est désormais tout à fait autrement ! La plupart des nouveaux smartphones milieu et haut de gamme intègrent désormais des puces NFC ce qui rend possible la lecture et l’écriture de badges et cartes sans contact, à commencer par la majorité des badges d’immeuble ! Beaucoup d’entre vous me contactent en me posant la même question : est-il possible de faire soi-même un double de son badge d’immeuble à l’aide d’un simple smartphone ? Et bien la réponse est oui, mais pas n’importe comment !
Edit du 27/03/2020 : je profite du confinement pour mettre à jour cet article. Au menu, quelques infos supplémentaires et un mot sur les systèmes anti-copies qui peuvent vous empêcher de mener à bien cette opération.
Bien que les nouveaux iPhones aient une puce qui matériellement est capable de lire et écrire sur des badges à 13,56Mhz, je n’ai pas trouvé d’applications permettant de réaliser cette manœuvre. Sous Android par contre il est plus facile de trouver son bonheur : les smartphones équipés d’une puce NFC sont nombreux et il existe plusieurs applications pour cet usage, dont une gratuite assez répandue : Mifare Classic Tool, c’est d’elle que nous parlerons aujourd’hui !
En effet, il existe plusieurs types de badges d’ouverture sans contact. L’immense majorité est en 13,56Mhz, mais on trouve aussi quelques badges qui fonctionnent à 125Khz. Les puces équipant les téléphones ne permettant que des échanges sur la bande de fréquence de 13,56Mhz, seuls les badges correspondant pourront être lus… et donc copiés. Si votre portier d’immeuble arbore un petit logo Vigik, il y a de grande chance que votre badge soit à la bonne fréquence !
Si vous suivez ce blog depuis quelques temps, vous avez peut-être déjà entendu parler de badges RFID qui ont une particularité, celle d’avoir leur identifiant unique (UID) modifiable. Cette particularité est nécessaire pour pouvoir réaliser un « clone parfait » de la puce RFID, en dupliquant son contenu mais aussi son identifiant qui est censé être unique au monde. J’ai utilisé de telles puces pendant des années. Ces puces de première génération fonctionnent à merveille avec un lecteur NFC externe comme le ACR122U, mais on ne peut pas modifier leur identifiant unique depuis un smartphone. En effet, la modification de l’UID nécessite des instructions particulières qui ne sont nativement pas possible sous Android. Je pensais donc que la réalisation d’un « clone parfait » d’un badge d’immeuble n’était possible que via un ordinateur. J’avais tort !
C’était sans compter sur les efforts de sociétés asiatiques qui ont donc créé un nouveau type de badges avec UID modifiables (on parle de badges de deuxième génération). Ces badges ont les mêmes caractéristiques que ceux de première génération, mais permettent également de modifier l’UID via des instructions standards, ce qui les rend pleinement utilisables avec un smartphone Android ! Ces badges sont nettement plus difficiles à trouver, mais sachez que j’en ai quelques uns en stock sur la boutique !
C’est pour moi la meilleure partie En fait si vous avez déjà un smartphone sous Android compatible NFC, vous n’avez besoin de rien d’autre ! Evidemment il vous faudra des badges vierges adéquats, mais vous pouvez déjà diagnostiquer si votre badge est au bon format sans dépenser le moindre euro !
Donc si on récapitule, pour mener l’opération de bout en bout, il vous faudra :
Le but de cette étape est de transférer le contenu du badge vers un fichier de sauvegarde, un « dump » en anglais. Cela permettra de créer ensuite autant de copies que vous le souhaitez ! Cette étape est cruciale et peut déjà vous permettre de savoir si votre badge est copiable facilement.
Vérifiez que le NFC est activé sur votre appareil (Paramètres > Réseaux > NFC)
Ouvrez l’app Mifare Classic Tool, vous arrivez face à l’écran d’accueil que voici :
Cliquer sur READ TAG, ce qui va vous afficher l’écran de sélection des clés à utiliser :
Cochez les cases extended-std.keys et std.keys
Coller le badge sur l’arrière, un message va apparaître brièvement sur le bas de l’écran avec l’identifiant (UID) du tag détecté
Cliquer sur START MAPPING AND READ TAG. L’application va alors tenter une à une les différentes clés disponibles pour décoder chacun des secteurs qui composent le badge.
Il y a en tout 16 secteurs, sur la majorité des badges d’immeuble (ils renferment des puces de la famille des Mifare Classic 1K la plupart du temps). Il faut compter de quelques secondes à une dizaine de minutes pour que l’application MCT décode tous les secteurs et parvienne à un extraire les données.
Si tous les secteurs sont lisibles, bravo, vous avez fait le plus dur. Je vous conseille alors d’enregistrer le dump en cliquant sur l’icône en forme de disquette en haut de l’écran, et de choisir un nom parlant. Dans notre exemple, je l’ai appelé badge-original. Ce fichier est la seule chose dont vous aurez besoin pour créer autant de copies de votre badge que nécessaire. Aussi je vous conseille de le stocker en lieu sûr, cela pourra vous être utile en cas de perte de votre badge d’origine par exemple.
En cas d’échec
Si jamais vous avez un écran où plusieurs secteurs sont affichés avec des tirets ou des X rouges, c’est que l’application ne possède pas les clés pour les lire. Tout n’est pas perdu mais vous ne pourrez probablement pas aller plus loin avec votre smartphone. Il faudra dans ce cas passer par une méthode un peu plus évoluée où vous aurez besoin d’utilitaires comme mfoc ou mfcuk pour trouver les clés manquantes. N’hésitez pas à relire cet article qui vous mettra sur la piste :)
Comme annoncé en introduction, il va vous falloir pour cette étape des badges un peu spéciaux. Il s’agit de badges RFID contenant également 16 secteurs comme notre badge d’origine, mais avec une petite particularité : le secteur 0, habituellement accessible uniquement en lecture, doit également être accessible en écriture à l’aide d’instructions que votre smartphone peut gérer. Je reconnais qu’ils peuvent être un peu compliqués à dénicher, mais vous trouverez ces badges compatibles smartphone sur la boutique, testés et approuvés !
Toujours depuis l’application MCT, il va falloir se rendre dans la section WRITE TAG disponible sur l’écran d’accueil de l’application Mifare Classic Tool en haut à droite :
Quatre possibilités s’offrent alors à vous, mais c’est la deuxième qui vous intéresse : Write Dump (Clone)
A partir de ce moment, il va falloir scrupuleusement suivre les instructions :
L’application va ensuite revenir à son écran de démarrage. Il m’arrive parfois d’avoir un message d’erreur qui s’affiche, sans que cela ne pose réellement de problème sur les données que contiennent le badge. Si vous rencontrez une erreur, re-faite tout simplement la manipulation, cela suffit la plupart du temps.
Félicitations, à ce moment là vous être normalement en possession d’une copie parfaite de votre badge d’immeuble ! Notez que si vous souhaitez faire d’autres exemplaires du même badge, il suffit de répéter l’étape 2 autant de fois que nécessaire. Vous comprenez donc que conserver le dump de votre badge d’origine est vital pour ne jamais être bloqué à l’avenir :)
Evidemment vous allez me dire, le plus simple est de l’essayer ! Ce n’est pas faux mais ce n’est pas toujours possible ! Sachez que MCT intègre d’autres outils bien pratiques quand on travaille sur les puces RFID. Par exemple, si vous faites désormais une sauvegarde de votre clone de badge (en déroulant l’étape 1 avec votre clone), vous obtiendrez un nouveau dump (ici je l’ai appelé badge-copie). Et bien dans la section Tools de l’application Mifare Classic Tool, vous pourrez trouver un utilitaire appelé Diff Tool qui vous permettra de comparer les deux sauvegardes/dumps comme vous le voyez ci-dessous. Secteur par secteur, l’application vous montre si la copie et l’original sont identiques.
Parfois, certains d’entre-vous me rapportent que la copie ne fonctionne pas, voire pire, que suite à son utilisation votre badge d’origine a été désactivé. Cela est généralement dû à la présence d’un système anti-copie sur le badge. Je ne connais que 2 marques qui pratiquent cela, mais voici un moyen simple de détecter si vous êtes concernés.
Et si vous avez un doute, n’hésitez pas à me demander, j’essaierai de vous éclairer de mon mieux…. Mais gardez en tête que quoi qu-il arrive, vous êtes responsable de vos actions.
Avec ce nouvel article, j’espère avoir rendu encore plus accessible ce domaine des badges et puces RFID qui me passionne. Ce ne sera vraisemblablement pas le dernier et l’intérêt que vous manifestez chaque jour via les autres articles sur le sujet et la boutique en dit long sur votre soif de connaissances !
Cet article s’adresse avant tout aux amateurs, mais si vous êtes professionnels et avez besoin de dupliquer et gérer des badges en quantité, sachez qu’il existe des solutions pour vous !
N’hésitez pas à poser vos questions en bas de l’article, et surtout dites moi ce que vous souhaitez que j’aborde comme sujet autour de cette thématique ! Comme toujours j’essaie d’y répondre dès que je peux, et je vous encourage vivement à scanner tout ce qui se trouve autour de vous !
Hello, aujourd’hui je poste un article qui n’intéressera pas tout le monde mais devrait bien aider les concernés. Si vous utilisez un lecteur NFC/RFID modèle ACR122U et que vous essayez de l’utiliser avec la suite LibNFC des NFC Tools, vous avez peut-être rencontré l’erreur suivante : Unable to set alternate setting on USB interface (Connection timed out).
J’ai au début pensé à un problème matériel, mais si vous essayez le lecteur avec d’autres applications, vous remarquerez qu’il fonctionne correctement. Le problème semble donc bien lié à libnfc. En tombant sur cette erreur il y a plusieurs mois, je me suis senti un peu seul et j’ai ouvert un ticket sur le forum de libnfc. Mais Internet étant un endroit rempli de personnes qui vous veulent du bien, voici une synthèse de ce que de brillants esprits ont trouvé, et un petit coup de pouce de ma part pour ceux qui se sentent un peu dépassés par tout ça :)
Seuls certains lecteurs RFID ACR122U-A9 semblent provoquer le problème. Cela serait dû à un petit composant électronique qui diffère d’un lot à l’autre. Est-ce que ce sont les plus récents ? Je ne pense pas car j’en ai reçu plusieurs dizaines directement « sortis de l’usine » de la part du fabricant ACS et aucun n’a le souci. Les unités « à problème » venaient pour ma part d’un revendeur qui ne m’a pas été d’une grande aide quand j’ai été confronté à ce souci. Depuis cette nouvelle collaboration, je n’ai pas eu à déplorer un seul ACR122U affecté par l’erreur « Unable to set alternate setting on USB Interface » et je considérais ce souci comme appartenant au passé. Il y a eu un peu de mouvement sur le sujet ces dernières semaines, alors même si ça ne concerne pas les clients de la Boutique, je me suis dit que ce serait un juste « retour des choses » que d’apporter à mon tour une petite contribution à l’Internet ;)
L’erreur Unable to set alternate setting on USB interface (Connection timed out) est provoquée par la librairie libnfc lorsqu’elle essaie d’invoquer une fonctionnalité matérielle du ACR122U qui n’est pas disponible sur toutes les unités. A quoi sert cette fonctionnalité ? Je l’ignore, mais ce que je sais c’est qu’elle n’est pas indispensable pour l’utilisation que j’en ai (l’analyse et la copie de puces RFID et NFC). Un développeur a proposé ces derniers jours une solution qui a l’air de tenir la route. Il est très probable que les responsables de libnfc adoptent ce correctif dans la librairie libnfc à l’avenir. Ce qui signifie qu’à moyen terme, libnfc ne provoquera plus l’erreur Unable to set alternate setting on USB interface (Connection timed out). Donc si tu n’es pas pressé, tu peux juste mettre en pause ton projet NFC/RFID et y revenir dans 6 mois / 1 an pour que cela fonctionne. Si par contre tu n’as pas envie d’attendre, tu devrais continuer la lecture de cet article.
On commence par la base : tous les lecteurs n’ont pas le problème mais je n’ai pas su trouver de différence ni physique ni logicielle pour les distinguer à part exécuter la commande nfc-list et constater le problème …
En terme de numéro de série, je vois que les lecteurs « sains » sont immatriculés ACR122U-A9 RR171-4* et que ceux à problème sont identifiés ACR122U-A9 RR171-2*. Je ne sais pas si on peut réellement se baser dessus, si vous avez le soucis n’hésitez pas à nous donner vos numéros de série en commentaire !
Si votre lecteur est affecté par la faille que pouvez-vous faire (à part le remplacer évidemment) ? C’est tout le sujet de cet article
Comme je vous le disais un peu plus haut, un développeur a proposé un patch pour le code source de libnfc pour ne plus rencontrer cette erreur. La bonne nouvelle, c’est que la solution est disponible pour tout le monde juste ici. La moins bonne nouvelle, c’est que pour en profiter il faut télécharger ce code source modifié, le recompiler et l’installer sur ton système pour pouvoir l’utiliser.
Alors je sais que ça fait beaucoup de mots clés barbares d’un coup, et que ça peut faire peur, mais vraiment, avec ce tuto et une bonne tasse de café, je suis sûr que tu peux le faire :) Afin de maximiser les chances de réussites de tout le monde, je suis parti d’une version récente de Kali sur laquelle il n’y a eu aucune modification préalable faite : la version 2019.3 “large”. Donc si tu pars de cette version et que tu suis le tuto ci-dessous, tout devrait bien se passer. Si tu ne t’en sors pas où que cela te paraît trop compliqué, j’ai une ultime solution pour toi au bas de l’article
On part du principe que vous avez créé votre clé USB Kali comme expliqué dans ce tuto précédent.
Edit du 30/03/2020 : Si vous utilisez Kali dans une version 2020 ou supérieure, vous n’êtes plus identifiés automatiquement en super-utilisateur au démarrage de la clé. Avant de pouvoir suivre ce tutoriel, commencez par entrer la commande suivante
kali@kali:~$ sudo su
root@kali:~# setxkbmap fr root@kali:~# nano /etc/modprobe.d/blacklist-libnfc.conf
Coller à l’intérieur les 3 lignes suivantes :
blacklist nfc blacklist pn533 blacklist pn533_usb
Ctrl+O pour valider l’écriture, ctrl + X
root@kali:~# apt-get update root@kali:~# apt-get install git binutils make csh g++ sed gawk autoconf automake autotools-dev libglib2.0-dev libnfc-dev liblzma-dev libnfc-bin libtool
Un message de confirmation vous demandera de valider l’installation de ces paquets additionnels. Acceptez en tapant Y puis entrée.
root@kali:~# git clone https://github.com/jpwidera/libnfc.git root@kali:~# cd libnfc/ root@kali:~/libnfc# autoreconf -is root@kali:~/libnfc# ./configure --prefix=/usr --sysconfdir=/etc root@kali:~/libnfc# make
root@kali:~/libnfc# make install root@kali:~/libnfc# cd /usr/lib root@kali:/usr/lib# cp -p libnfc.* x86_64-linux-gnu/
Voilà, à partir de ce moment, vous ne devriez plus rencontrer l’erreur Unable to set alternate setting on USB interface (Connection timed out) qui vous a amené ici ! Si vous utilisez une clé USB « Live », vous devrez recommencer la procédure à chaque fois, ce qui est plutôt fastidieux je vous l’accorde. Si par contre vous disposez d’une clé USB « avec persistance » (comme celles disponibles sur la Boutique), vous n’avez à faire cette manipulation qu’une fois en mode persistant et vous retrouverez votre version libnfc modifiée au prochain démarrage en mode persistant (et la version libnfc livrée d’origine avec Kali sera toujours disponible si vous démarrez en mode « Live »).
J’aurais aussi pu intituler cette partie “comment avoir la meilleure suite d’outils NFC/RFID compatible avec tous les ACR122U du marché”.
Je te l’avais dis, j’ai une ultime solution pour toi ! J’ai profité du fait que les clés USB de la Boutique aient cette fameuse “persistance” pour les modifier et inclure :
J’ai finalisé l’installation d’une petite série de clés USB qui est vente sur la boutique depuis quelques temps.
Voilà, bien que je ne maîtrise pas encore 100% des détails liés à ce problème, j’espère que ce résumé t’aura éclairé et tiré du pétrin si tu rencontres cette fichue erreur Unable to set alternate setting on USB interface (Connection timed out). Pour ma part cela aura été l’occasion de peaufiner ma suite d’outils en matière de RFID/NFC pour gagner un temps de dingue ! Si j’ai du nouveau, je mettrai à jour cet article ! D’ici là n’hésitez pas à me dire en commentaire si cela a marché pour vous, et je vous dis à bientôt, probablement pour vous parler d’un nouvel appareil avec lequel je m’amuse bien en ce moment !