Cet article fait partie de la série Expériences NFC / RFID (3 articles au total)

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 !

Une manipulation réservée à certains smartphones Android

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 !

Seuls les badges fonctionnant à 13,56Mhz sont copiables avec un smartphone

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 !

Pourquoi on ne peut pas utiliser des badges avec UID modifiables « classiques »

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 !

De quoi avez-vous besoin pour dupliquer votre badge d’immeuble ?

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 :

Comment copier votre badge d’immeuble avec votre smartphone pas à pas

Etape 1 : Créer une sauvegarde (dump) de votre badge d’origine

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 :

L’écran d’accueil de l’application MCT. Ici c’est la partie lecture (Read Tag) qui nous intéresse

Cliquer sur READ TAG, ce qui va vous afficher l’écran de sélection des clés à utiliser :


L’écran de sélection des clés. Le plus sûr est de sélectionner les 2 fichiers de clés.

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 vous voyez cet écran, c’est bon signe, c’est que l’application MCT a pu décoder le contenu de votre badge ! Félicitations :)

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 en rouge, 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 :)

Etape 2 : Transférer le contenu de votre sauvegarde vers un badge vierge

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 :

L’écran d’accueil de l’application MCT. maintenant c’est la partie écriture (Write Tag) dont on va avoir besoin

Quatre possibilités s’offrent alors à vous, mais c’est la deuxième qui vous intéresse : Write Dump (Clone)

L’écran permettant de transférer le contenu d’un fichier vers un badge vierge

A partir de ce moment, il va falloir scrupuleusement suivre les instructions :

  • Commencer par cocher la case Show Options ce qui va rendre accessible deux nouvelles case à cocher : Use these Access Conditions for all sectors et Advanced: Enable writing to the manufacturer block
  • Cocher également ces deux nouvelles cases. J’avoue ne pas maîtriser complètement l’impact de la première, mais la seconde est capitale : elle va autoriser l’application à écrire le fameux secteur 0 (aussi appelé « Block 0 » ou « Manufacturer Block« )
  • Cliquer ensuite sur le bouton SELECT DUMP ce qui va afficher la liste de toutes les sauvegardes de badges disponibles sur votre téléphone.
Liste des dumps disponibles sur le téléphone
  • Sélectionner badge-original si vous l’avez bien nommé comme moi.
  • Un nouvel écran apparaît vous demandant de sélectionner les secteurs que vous voulez écraser en utilisant ceux du dump. Tout est coché par défaut… et c’est bien comme ça.
Ecran de sélection des secteurs à transférer sur le badge vierge
  • Placer à ce moment le badge vierge contre l’arrière de votre smartphone. Un petit message va apparaître en surimpression avec l’UID de votre badge vierge.
  • Cliquer sur OK, ce qui va lancer le processus d’écriture. L’opération ne prend que quelques secondes.

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.

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 :)

Comment vérifier que la copie est parfaite ?

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.

Voici la liste des outils disponibles dans l’application MCT pour manipuler les dumps. L’outil « Diff Tool » en 4ème position est très utile pour comparer 2 dumps.
Le résultat de la comparaison entre 2 dumps : secteur par secteur, ligne par ligne, l’outil nous indique les correspondances et les différences (s’il y en a). Ici on est bon, tout est identique !

Pour aller plus loin

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 ! 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 !