Clonage d’un badge de parking

Le parking de ma gare est un parking payant, les abonnés au Pass Navigo ont un tarif réduit, ils présentent leur badge Navigo pour accéder au parking.

C’est ennuyeux car généralement le badge Navigo n’est pas à porté de main quand on conduit, j’aimerais pouvoir placer mon badge de parking dans mon pare-soleil, de plus, je ne peux pas prêter mon badge de parking si je suis en congés par exemple.

ATTENTION: Ceci ne permet pas de faire entrer plusieurs véhicules avec un seul abonnement, car normalement le logiciel de gestion du parking implémente un système « anti-passback » qui mémorise pour chaque badge si l’abonné est à l’intérieur ou à l’extérieur du parking.

En fait, lors de l’inscription au parking l’employé se positionne dans le champ « Numéro de badge », place le badge Navigo sur un lecteur de type « keyboard wedge », le lecteur émule un clavier et « tape » l’identifiant unique « UID » du badge.

Les lecteurs de type « keyboard wedge » sont très courants, ils sont utilisés dans de nombreuses situations:

  • Lire des badges d’accès lors d’une inscription, on parle alors d’enrôleur (même si un enrôleur peut être plus complexe et permettre l’écriture d’éléments de sécurité dans le badge)
  • Lire des des cartes magnétiques sur un point de vente (carte de fidélité par exemple)
  • Lire des codes à barres classiques 1D, ou QRcode (sur des produits en magasin lors d’un passage en caisse, sur une étiquette de suivi lors du traitement d’un colis ou d’un courrier)

Ce qui est intéressant ici, c’est que seul le numéro de badge est enregistré dans le système, et c’est la seule information qui est lue lors du passage aux barrières. Le badge Navigo offre d’autres possibilités d’identification, mais ceci nécessite l’utilisation de mécanismes cryptographiques et de clés dont la société de parking ne dispose pas..

Je vais utiliser un lecteur NFC à interface USB, un modèle SCL3711 qui a la réputation d’être fiable, on peut le trouver entre 30 et 70€ en fonction des boutiques.

Un lecteur Identive SCL3711

Le lecteur sera connecté à un Raspberry PI sous Raspbian. Pour l’installaton de Raspbian je vous invite à lire mon article https://blog.u03.fr/installation-de-raspbian/

Nous installons les packages nécessaires à l’utilisation du lecteur NFC et ainsi que des commandes utiles qui permettent de travailler avec les cartes/badges/étiquettes NFC:

Une fois ces paquets installés et un lecteur NFC compatible connecté nous devrions pouvoir trouver le lecteur:

Voici deux exemples de badges Navigo, les anciens badges Navigo (comme celui du bas) n’étaient pas compatibles avec les lecteurs NFC des smartphones.

Le numéro de série du badge est inscrit dessus, par exemple ‘0661321651F’, nous plaçons le badge sur le lecteur la commande ‘nfc-list’ va nous permettre de lister les badges présents dans le champ du lecteur (ici un seul badge):

Le terme PUPI signifie « Pseudo Unique PICC Identifier », identifiant pseudo unique de carte. En fait, vous n’êtes pas assurés qu’un autre fabriquant de puces n’a pas fabriqué une carte avec le même numéro.

Un identifiant sur 32 bits n’offre que 4 milliards d’identifiants possibles, ce qui est trop peu pour découper ces numéros entre tous les fabricants (comme c’est le cas pour les cartes Ethernet qui ont des identifiants à 48 bits, un organisme se charge de distribuer des plages de numéros aux différents constructeurs).

Ici le PUPI est 276af7b3 en hexadécimal, ce qui correspond à 661321651 en décimal, c’est à dire le numéro inscrit sur le badge.

En théorie le numéro de la carte (PUPI, UID…) n’est pas modifiable, mais il existe des cartes spéciales, en particulier il existe des « clones chinois » de cartes « Mifare Classic 1K » qui permettent d’écrire le bloc dans lequel se trouve ce numéro (bloc 0). Nous reviendrons dessus dans un autre article.

Ici, le problème est que le système ne se fie qu’à l’identifiant de 32 bits (PUPI/UID selon les cartes), sans vérifier le type de carte, ni effectuer aucun autre contrôle. Nous allons donc pouvoir utiliser un clone « chinois » de « Mifare Classic 1K » que l’on trouve sur Amazon ou ebay en cherchant « UID changeable ». Nous trouverons ainsi des cartes à 0,60€ l’unité par paquet de 10 et même 0,30€ l’unité par paquet de 100.

Ci-dessous deux formats classiques de « clones chinois », format « carte de crédit » et format « porte-clés », ce qui est amusant c’est que les cartes ont un UID imprimé dessus alors qu’il est changeable (et l’UID imprimé ne correspond souvent pas à l’UID avec la carte est livrée).

« Clones chinois »

Les concepteurs des packages ‘nfc-tools’ certainement énervés de voir que des systèmes implémentent encore des cartes « Mifare Classic 1K » alors qu’elles comportent de nombreuses failles livrent même le programme qui permet de changer l’UID d’un « clone chinois ».

Nous plaçons le porte-clé sur le lecteur, et nous utilisons la commande nfc-list, nous voyons que la réponse est légèrement différente, un UID est affiché en lieu et place du PUPI, il est également sur 32 bits, il vaut 01234567 en hexadécimal :

La commande nfc-mfsetuid permet de changer l’UID d’un « clone chinois », il suffit de lui passer l’UID hexadécimal désiré en paramètre. Ensuite la commande nfc-list permet de vérifier que l’UID a bien été modifié.

Le clone fonctionne parfaitement, en le laissant dans mon pare-soleil je n’ai plus besoin de le chercher dans mes poches et en plus je peux en avoir un deuxième dans ma deuxième voiture, au cas où… Même si comme on l’a dit il est impossible de garer 2 voitures avec ce système.

Ce qui est plus problématique c’est que certains systèmes de contrôle d’accès bâtimentaires en entreprises ne font que lire l’UID du badge qui est présenté… Ainsi:

  • Un salarié qui a rendu son badge contre un récépissé de restitution peut l’avoir cloné et s’il n’a pas été désactivé dans le système peut utiliser le clone pour revenir, sa responsabilité risque d’être difficile à établir puisqu’il peut prouver qu’il a rendu son badge
  • Un visiteur peut lire le numéro du badge qui lui a été prêté en utilisant une application sur smartphone et le cloner ultérieurement
  • Si un employé pose son badge sur son bureau il est possible de le lire discrètement à l’aide d’un smartphone
  • Les badges sont souvent vendus par paquets de 50 ou 100, et leurs UID se suivent habituellement, ceci permet de faciliter l’enrôlement des badges, connaissant le numéro d’un badge il est aisé de trouver d’autres numéros de badges valides donnant éventuellement de meilleurs droits d’accès

Sur Android l’application gratuite « NXP TagInfo » de « NXP Semiconductors » (un fabriquant de composants NFC (tags, lecteurs…) permet d’avoir énormément d’informations sur un Tag NFC… En particulier le type de Tag, et son PUPI/UID. Ci-dessous le badge original

Le badge « original »

Et ci-dessous la copie:

Le « clone »

L’application « MIFARE Classic Tool – MCT » de « IKARUS Projects » permet de cloner directement un badge de type « MIFARE Classic » à l’aide d’un simple téléphone portable…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.