DIY : Fabriquer un émulateur électronique de carte RFID universel

Doug Jackson vient de réaliser un montage électronique permettant d’émuler facilement n’importe quelle carte RFID du commerce. Cela met surtout en évidence la vulnérabilité de ce type de protection sur les accès protégé par carte RFID.
Etude du protocole RFID
Doug a d’abord procédé à une analyse du protocole d’une carte RFID connue. En analysant à l’aide d’un oscilloscope les données transmises en la carte et le lecteur RFID, il a obtenu :
Les données sont transmises à une fréquences de 125 kHz et encodées en utilisant un codage Manchester. Pour info le codage Manchester est assez simple, il se caractérise par une transition de de signal obligatoire en milieu de bit, et une transition à 0 en début de bit pour coder un 0, et une transition en debut de bit à 1 pour coder un 1. Cela permet de coder sur une seule et même ligne électrique une ligne d’horloge et de data.
En scannant la ligne d’une carte dont l’inscription d’identification unique était « 0007820706 119,21922 » il obtenu le codage binaire sur la liaison rfid :
1111111110010111000000000000001111011110101001010101000010101100
Il a ensuite analyser cette séquence et déduit que la première séquence de bits « 1111 1111 1 » était une séquence d’initialisation commune à toute les cartes, comme une phase d’initialisation.
Les données suivantes on été analysé par goupe de 5 bits : 4 bits de données et 1 bit de parité :
Doug à donc obtenu la séquence 2C007755A2 suivi de 4 bits de checksum et d’un bit de STOP
En coupant la séquence en 3 parties : 2C, 0077 et 55A2 il a remarqué que 0077 correspondait à 119 en décimal et 55A2 à 21922 en décimal.
Et là victoire, on retrouve le code inscrit sur la carte 119,21922, le code 2C restant étant une constante commune à chaque carte RFID.
Pour le checksum, une analyse montrera qu’il s’agit d’un Ou Exclusif (XOR) bit à bit de chaque mot de 4 bits.
Fabrication d’une carte RFID universelle
Ce basant sur l’analyse précédente, Doug a ensuite réalisé un montage électronique à base d’un micro-contrôleur ATmel ATMega8 qui dispose d’un clavier Hexa et d’un émetteur RFID composé de d’un pont de diodes, 2 condensateurs et une bobine.
A l’aide d’un petit bout de programme, qui calcule la parité et les checksum et qui englobe la trame avec les mots de synchronisation, il lui est désormais possible d’émuler une carte RFID juste en connaisant son numéro d’identification unique inscrit dessus.
Il a développé 5 modes de fonctionnement identifiable par 4 LED sur le carte électronique :
- MODE 1 : Passage en mode veille
- MODE 2 : Entrée du code commun (dans ce cas 2C)
- MODE 3 : Entrée des 8 digits d’identification unique en décimal (dans ce cas 119,219922)
- MODE 4 : Dump des modes 2 et 3 en visuel sur les 4 LEDs
- MODE 5 : Émulation de la carte RFID en fonction des codes rentrés.
Et voilà comment Doug a réussit à emuler la carte RFID de l’ouverture « sécurisée » de sa porte de garage.
Voilà un montage fort intéressant qui prouve la vulnérabilité de ce type de sécurité, et qui nous montre comment réaliser simplement une carte d’identification universelle RFID en connaissant son code unique, soit parce qu’il est inscrit dessus soit en analysant à l’aide d’un oscilloscope la trame transmise.
Vous pouvez retrouver toute les informations pour réaliser cet émulateur de carte RFID sur instructables.com