Qu’est-ce que le RFID (généralité)?
Radio Frequency Identification, Il s’agit d’une méthode de
communication informatique sans contact.
Carte de transport, antivol, carte bancaire, badge d’accès,
inventaire, implant sous-cutané (puce pour animaux de compagnie) voici tant de
possibilités qu’offre le RFID. Dans la pratique, Une puce munie d’une antenne
répond à un stimulus électromagnétique pour donner les informations qu’elle
contient. Cependant le RFID n’est pas limité à une fréquence ou une technologie,
nous verrons cela plus en détail ultérieurement.
Fréquences:
134.2 khz = puce d'identification des animaux domestique en France
13.56 Mhz = RFID, NFC
869.4 Mhz = badge 5Guys
Fréquences:
134.2 khz = puce d'identification des animaux domestique en France
13.56 Mhz = RFID, NFC
869.4 Mhz = badge 5Guys
Dénomination :
L’émetteur du signal est appelé « station de
base » ou « lecteur ».
Il peut participer au traitement du signal et au contrôle de
parité et la détéction et correction des erreurs.
La puce ainsi que son antenne sont dénommé
« inlay »
L’inlay est généralement recouvert de plastique afin de lui
conférer des propriétés étanches, cet équipement prendra alors le nom de
« tag » ou « transpondeur » (TRANSmitter/resPONDER).
La mémoire d’un transpondeur comprend donc , une ROM
(données de sécurité et instruction de l’OS, une RAM (stockage temporaire des
données pour la réponse, et une mémoire programmable non volatile.
Les informations contenues dans la puce sont les
suivantes :
-UUID : identifiant unique en lecture seule
(WORM : Write Once, Read Multiple)
Autrement appelé : Unique item identifier, code EPC,
Electronic Product Code
(Certaines cartes
chinoise permettent d’écrire cet UUID)
Autre zone de mémoire : entre quelques bits à quelques
dizaines de kilobites
Historique :
1940 : methode de reconnaissance des avions durant la 2nd
guerre mondiale, l’IFF est le précurseur du RFID.
1970 : utilisé par les militaires pour le contrôle des
accès
1980 : apparition du tag passif, le tag n’a plus besoin
d’une source d’énergie propre à lui pour répondre.
1990 : normalisation pour interopérabilité
2005 : diffusion mondiale de la technologie
Fonctionnement :
Types d’identification électronique:
Identification à contact
-connexion
standard
-connexion
à puce (carte bancaire, carte sim)
Identification sans contact
-infrarouge
-optique
(QRC, code barre)
-RFID (
connexion par radiofréquence)
Classification :
Présence d’une puce électronique ou non ?
Sans puce :
-SAW (Surface
Acoustic Wave): très peu représenté
-1
bit : Il permet d’indiquer la présence du tag dans un champ d’action :
antivol
Avec puce :
-Circuit
à machine d’état : équipement simple
-Circuit
à microprocesseur : équipement beaucoup plus perfectionné
Tag actif ou passif ?
Le tag passif répond au stimulus magnétique ou
électromagnétique
Le tag actif possède généralement sa propre alimentation
électrique et embarque un emetteur RF.
Le tag actif assisté par batterie, il reste un tag passif
car il répond toujours au stimulus électromagnétique, mais la batterie est
utilisé pour le circuit électronique derrière (relevé de température, lumière,
etc…)
Identification ou plus ?
Selon le type d’utilisation, les tags sont regroupés par
classe
Classe 0 et classe
1 : tags passifs à lecture seule (on ne peut que lire l'identifiant unique du
tag)
Classe 2 : tags
passifs à fonctions additionnelles (écriture mémoire)
Classe 3 : tags
passifs assistés par batterie
Classe 4 : tags
actifs. Communication large-bande du type « peer-to-peer »
Classe 5 :
interrogateurs. Alimentent les tags de classe 0, 1, 2 et 3. Communiquent avec
les tags de classe 4.
Lecture / Ecriture ?
Certains tags ne sont accessibles qu’en lecture, d’autres en
écriture.
Si le tag est accessible en écriture, on peut directement y
ajouter des informations. Si le tag est en lecture seule, un système
informatique annexe (base de données) pourra se servir du TID (Tag IDentifier)
pour gérer des informations supplémentaires.
Si la puce est accessible en écriture, elle peut être de
type :
WORM (Write Once Read Multiple)
MTP (Multiple Time Programmable)
Protocole TTF ou ITF :
Est-ce vraiment important ? Dans tous les cas, le
protocole sera défini en fonction de l’utilisation du tag.
TTF : Tag Talk First (les tags répondent en premier)
TOTAL :
Tag Only Talk After Listening (Variante du TTF où les les Tag ne répondent
qu’après s’être assuré que personne ne répond en même temps)
Il est plus rapide lorsqu’il n’y a qu’une étiquette. Le
lecteur de son côté limite son émission et réduit l’utilisatino du spectre
électromagnétique et les perturbations avec d’autres système similaires.
ITF: Interrogator Talk First (le recepteur demande en
premier)
Ce protocole permet une meilleure détection des tags en cas
de réponses multiples (séquençage des réponses)
Les deux protocoles sont donc incompatibles, ainsi un tag
utilisant le protocole TTF perturbera les communications des tags utilisant le
protocole ITF.
Récapitulatif sur les transpondeurs passifs:
LF :
Low Frequency
HF :
High Frequency
UHF: Ultra
High Frequency
SHF: Super
High Frequency
|
MIFARE : qu’est ce que c’est ?
C’est une marque de NXP qui produit des carte :
MIFARE dites "Classic" dont le protocole de
sécurité est cassé depuis 2008
MIFARE ProX, MIFARE SmartMX, et MIFARE PlusMIFARE
DESFire EV1 etEV2
Voici le processus d’utilisation :
Après l’authentification voici les opérations disponibles:
READ : lecture des blocs
WRITE : écriture des blocs
TRANSFER : écrit le contenu du registre de donnée dans un
bloc
RESTORE : l’inverse du transfert
DECREMENT : décrémente le contenu d’un bloc et stock le
résultat dans le registre de donnée
INCREMENT : comme au-dessus mais incrémente
Le MF1ICS50 IC des Mifare Classic integre 8192 Bit EEPROM
qui est découpé en 16 secteurs de 4
blocs.
Un bloc est composé de 16 bytes (1 Byte = 8 Bit).
Manufacturer Code (Bloc
0 de la section 0)
Le premier bloc de mémoire est réservé au fabriquant comme
l’UID (Numéro de série du Tag)
C’est un bloc en lecture seul, il est largement appelé
"Block 0".
Bloc Data (Bloc 0 à 3
excepté le "Block 0")
Les conditions d’accès pour les bloc de donnée sont défini
dans le Sector Trailers selon ces règles :
Les données peuvent être Read, Written, Incremented,
Decremented, Transferred ou Restored ou avec une clef A,B ou jamais.
Le 4ème bloc de chaque secteur est le Sector Trailer.
Le Sector Trailer contient la clef d’accès A (Access Key
1 : KEYSEXA) et éventuellement la clef B (KEYSECXB) et les conditions
d’accès pour le bloc 4 de ce secteur.
Si la clef B n’est pas nécessaire les 6 Bytes du bloc 3
peuvent être utilisé comme byte de donnée.
Les paramètres de condition d’accès correspondant sont
marquée en gris dans le tableau ci-dessous.
C1X3 et C3XY qui sont stocké deux fois pour des raisons de
sécurité définissent les conditions d’accès indépendant pour le bloc 4 du
secteur. Le dernier byte des conditions d’accès peut être utilisé pour stocké
des données d’application spécifique (ex : l’emplacement du bloc de backup
d’écriture)
Code de transport :
Pour le transport, KEYSECXA et les conditions d’accès sont
prédéfini par le fabriquant comme suit :
C1XO, C2XO,
C3XO = 0 0 0 bloc 0 (bloc data)
C1X1, C2X1,
C3X1 = 0 0 0 bloc 1 (bloc
data)
C1X2, C2X2,
C3X2 = 0 0 0 bloc 2 (bloc
data)
C1X3, C2X3,
C3X3 = 0 0 1 bloc 3 (Sector
Trailer)
KEYSECXA . clef secrete, connu uniquement par le fabriquant
et l’integrateur système
Si la clef B peut être ludans leSector Trailer
correspondant, elle ne peut pas être utilisé comme authentification (lignes
grises marqués dans le tableau précédant)
Conséquence : Si le RWD essai de s’autentifié sur n’importe quel bloc d’un secteur avec une
clef B marquée en grise, la carte refusera l’accès après authentification.
Dans le MF1ICS50 IC, deux type de bloc de donnée sont
utilisé :
Bloc de Lecture /ecriture
En général 16 bytes de données
Bloc de valeur
Sont utilisé pour les fonctions électroniques. (READ,
Increment, decrement, transfer, restore) La taille maximal a une valeur de 4
byte incluant le bit de signature, meme si 16 bloc de byte doivent être
reservé. Pour ffournir un la possibilité de detecter et corriger les erreurs,
chaque valeur doit être stocké 3 fois dans un bloc de donnée. Les 4 bytes
restent sont réservé pour des contrôles.
Un bloc de valeur est généré la première fois par une
instruction WRITE à l’adresse désiré.
La valeur peut être utilisé avec les autres fonctions
(Increment decrement, restore)
Le résultat de l’instruction de calcul est stocké
temporairement dans un registre tampon. Pour mettre à jour la mémoire avec le
resultat du calcul de Transfer, l’instruction doit être libéré.
La puce refuse les instruction si une erreur est trouvé u
niveau du format des blocs.
L’organisation de la mémoire décrite permet d’associer
différent secteurs à différentes aplications pour prévenir la corruption des
données par des clefs de sécurité spécifique à l’application.
Les clefs peuvent seulement être modifié par le RwD qui à la
keyA ou B stocké si cela est en accord avec les conditions d’accès. Sinon la
clef actuelle ne peut plus être changé.
Avant d’executer une commande, les conditions d’accès sont
vérifié par la Carte-IC. Alors quand on programme un Sector Trailer, la carte à besoin de de
corriger les erreurs car le secteur entier peut se retrouver bloqué.
Bloc 0
Bloc de donnée
Sector Trailers
Outils :
MFCUK : utilise
Libnfc et crapto1 pour récupérer toutes les clef du moment qu’une clef est
spécifié, même si les clefs de secteur sont inconnue ou pas par défaut.
MFOC : comme
MFCUK, mais propose une liste de clef par défaut.
Nfcmfclassic : permet
de réécrire une carte à l’aide d’un fichier DUMP (*.mdf) pour facilement cloner
et permet d’écrire le bloc 0 sur les cartes MIFARE Magic chinoise.
010 Editor : Editeur Hexadecimal, permettant de lire
plus facilement les valeur de la carte MIFARE
Bibliographie :
Aucun commentaire:
Enregistrer un commentaire