Sans même le savoir, vous l’utilisez tous les jours. Insérer une carte pour démarrer un véhicule, badger pour pointer au travail, badger pour ouvrir une porte, ou pour utiliser une remontée mécanique au ski, valider un titre dans les transports en commun, ou encore badger pour acheter votre café. Tout ces gestes quotidiens utilisent la technologie sans contact RFID pour « Radio Frequency Identification« .

L’origine de la RFID

Pour l’anecdote, la technologie RFID a connu ses premiers jours pendant la 2nd guerre mondiale. Afin d’identifier si les avions qui arrivaient dans l’espace aérien britannique étaient amis ou ennemis, les avions alliés installaient des transpondeurs qui envoyaient des réponses aux radars qui les questionnaient. Le système était appelé IFF « Idendify Friend or Foe ». Aujourd’hui, le trafic aérien reste encore basé sur ce principe.

Cette technologie s’est développée dans les années 70, avec des tags dits « actifs » qui devaient être alimentés comme le lecteur. L’usage était donc restreint à certains domaines tels que le secteur nucléaire, ou militaire. Le véritable prédécesseur du RFID a été breveté en 1973, il concerne l’utilisation de tags dits « passifs » qui reçoivent leur énergie via le lecteur, cela rend le tag beaucoup moins coûteux et plus pratique. À ce moment là on commence à envisager son utilisation dans les banques, la sécurité, le transport, la logistique…

Aujourd’hui, le RFID est utilisé dans de nombreux secteurs, dont le marquage de vêtements qui représente environ 80% du marché des étiquettes passives. IDTechEx prévoit que le marché du RFID pèsera près de 14 milliards de dollars en 2020, 34 milliards d’étiquettes RFID (dont 33 milliards de passives) ont été vendues depuis le début de la RFID, dont 7.5 milliards en 2014, c’est pour dire l’importance du RFID aujourd’hui.

Fonctionnement

Son fonctionnement est assez simple, on utilise des « radio-étiquettes » ou « RFID tag » en anglais, qui sont activés par un transfert d’énergie électromagnétique entre l’étiquette RFID (composé d’une puce et d’une antenne) et le lecteur. Ces lecteurs sont des dispositifs actifs, ils émettent des radiofréquences qui vont activer les étiquettes qui passent devant eux, en leur fournissant de l’énergie. Les étiquettes ont une capacité de 2Kio mais la plupart n’utilisent pas cet espace et ne contiennent d’un ID de 96 ou 128 bits.

Il existe différentes fréquences :

    • 125 kHz : ils sont d’un poids et d’une taille réduite, ils sont utilisés dans tout type de matériaux comme les textiles, métaux, etc.
    • 900 MHz : les étiquettes possèdent des antennes imprimées ou gravées, elles peuvent être lus à plusieurs mètres.
    • 13.56 MHz : la plus répandue dans l’industrie et le grand public pour des applications à portée limitée (badge café, badge porte, etc). Les antennes peuvent être imprimées ou gravées ce qui les rend très fins.
  • 2.45 GHz ou 5.8 GHz (micro-ondes) permet des portées de plusieurs mètres, cette fréquence est notamment utilisée pour le télépéage.

Copier un badge

Avant toute chose, sachez que vous êtes responsable de l’utilisation que vous allez faire de cette méthode, ce tutoriel a seulement pour objectif de pointer du doigt le manque de sécurité du RFID, et je ne peux en aucun cas être tenu responsable de vos actes.

Les badges RFID sont construits en 2 parties (sur 64 blocs), une première partie où est stocké l’UID (sur 1 bloc) qui est un identifiant unique du badge, cette partie est normalement non-modifiable, et une seconde partie qui contient les données (sur 63 blocs), qui est elle modifiable. Mais heureusement, on peut trouver sur internet des cartes chinoises qui permettent la modification de l’UID qui est stocké sur le bloc 0.

Pour copier un badge, voici le matériel dont vous aurez besoin :

Toutes les manipulations que nous allons faire se font sous un système d’exploitation Linux, je vous propose donc de créer une clé USB Kali Linux bootable. Cela va vous permettre d’installer Linux sur une clé USB sans rien changer à votre ordinateur actuel.

[Tuto] Installer Kali Linux sur une clé USB Bootable

Une fois la clé USB prête, redémarrez votre PC en démarrant sur la clé USB (vous pouvez régler cela dans le BIOS).

Lancez ensuite le terminal de commande, branchez votre lecteur RFID, placez votre badge à copier dessus et tapez la commande suivante pour extraire le contenu de la carte :

Ensuite enlevez votre badge, et placez ensuite la carte chinoise sur le lecteur et tapez :

Puis nous allons copier le contenu de la carte sur la carte chinoise :

Nous avons normalement réussi à copier 64 des 64 blocs de la carte (pour ceux qui connaissent la commande « nfc-mfsetuid XXXXXXXX » qui était utilisée avant pour modifier l’UID, sachez que maintenant l’UID se change automatiquement lorsque vous utilisez un ‘W’ majuscule dans la commande ci-dessus).

Vérifiez maintenant que votre carte chinoise a le bon UID :

Vous avez maintenant un clone de votre carte originale.

Modifier le montant d’un badge de machine à café

Je rappel que ce tutoriel a uniquement pour but de montrer les failles de sécurité du RFID, vous êtes donc responsable de l’utilisation que vous allez faire de cette méthode.

Si ce que vous voulez copier est un badge de distributeur, je vais vous montrer ici une faille de sécurité qui permet de modifier le montant stocké en clair sur le badge. Cette astuce fonctionne seulement sur quelques modèles de distributeurs dont je ne citerai pas les marques.

D’abord, vous devez connaître le montant exact que contient votre badge.

Exemple si votre carte contient 9.44€, tapez cette commande pour extraire le contenu :

Ensuite il faut que le montant du badge change, vous devez donc soit recharger le badge, soit acheter un produit.

Une fois que le montant a changé, notez le nouveau montant et extrayez à nouveau le contenu, exemple si j’ai un nouveau montant de 9.10€ :

Ensuite ouvrez les fichiers avec un éditeur de texte qui gère l’hexadécimal comme « Sublim Text », et comparez les différences entre ces deux fichiers, pour cela je vous conseil de copier le contenu des fichiers sur ce site :

http://www.diff-online.com/fr

Dans mon exemple, la différence se trouve au niveau de la ligne 51 :

Comme vous pouvez le voir sur la photo, sur le premier fichier « badge944 » on a une valeur en hexadécimal de « 3b0 » qui vaut « 944 » en décimal pour 9.44€, et sur le second fichier « badge 910 » on a une valeur de « 38e » qui vaut « 910 » en décimal, pour 9.10€.

Pour passer de l’hexadécimal au décimal je vous conseil d’utiliser ce convertisseur.

Ainsi il vous suffit de convertir votre montant souhaité (les machines acceptent en général 20€ maximum) en hexadécimal, et de le modifier dans le fichier.

Pour cela vous devez donc extraire le badge original « badge910 » avec 9.10€ dessus, ensuite vous copiez le fichier et le nommez par exemple « badge1999 » pour mettre 19.99€. Dans le fichier « badge1999 » allez à la ligne à modifier (ligne 51 dans mon cas) et modifiez le montant en hexadécimal (je remplace 38E par 7CF pour passer de 9.10€ à 19.99€) puis posez le badge sur le lecteur et vous utilisez la commande suivante pour modifier le montant dans le badge :