jeudi 24 mai 2018

RFID la technologie


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

  • Région 1 = Europe, ex Union Soviétique et Afrique
  • Région 2 = Amériques du nord et du sud
  • Région 3 = Asie et Australie

Région 1
Europe, ex URSS Afrique
Région 2
Amériques
Région 3
Asie, Australie
LF
125 kHz
125 kHz
125 kHz
HF
13.56 MHz
13.56 MHz
13.56 MHz
UHF
869.4 - 869.65 MHz
950 MHz
902 - 928 MHz
SHF
2.446 - 2.454 GHz
2.427 - 2.47 GH
2.4 - 2.4835 GHz





tableau ci-dessous dresse un aperçu des avantages et inconvénients des tags par fréquence de communication :

LF< 135 kHz
HF13.56 MHz
UHF863 à 915 MHz
SHF2.45 GHz
Capacité de données
De 64 bits lecture seul à 2kbits lecture-écriture
Classiquement tags lecture-écriture avec 512 bits de mémoire (max: 8kbits partitioné)
Classiquement tags lecture-écriture avec 32 bits de mémoire (max: 4kbits partitioné en 128 bits)
De 128 bits à 32 kbits partitioné
Produits disponibles
Read-only et read/write
Read-only et read/write
Read-only et read/write
Read-only et read/write, télé-alimenté et batterie assisté
Transfert de données
Faible taux de transfert: inférieur à 1kbits/s (~200bits/s)
Environ 25 kbits/s en général (existe en 100 kbits/s)
Environ 28 kbits/s
Généralement < à 100 kbits/s mais peu aller jusqu'à 1 Mbits/s
Distance de lecture
Typiquement du contact à 0.5 m pour les tags télé-alimentés, sinon ~ 2 m
Pour les tags télé-alimenté de l'ordre du mètre
Pour les tags télé-alimenté de l'ordre du mètre
Qq dizaine de centimètre pour les passifs et qq dizaine de mètres pour les actifs
Mode de lecture
Les versions lecture unique et lecture multiple sont disponibles
Les versions lecture unique et lecture multiple sont disponibles
Lecture unique et lecture multiple, omni-directionnel
Lecture unique et lecture multiple
Limites de fonctionnement
- 40 à + 85 °C
Peu sensible aux perturbations électro-magnétiques industrielles
- 25 à + 70 °C
Faiblement sensible aux perturbations électro-magnétiques industrielles
- 25 à + 70 °C Sensible aux perturbations électro-magnétiques.
Peut être perturbé par les autres systèmes UHF à proximité
- 25 à + 70 °C
Fortement sensible aux perturbations électro-magnétiques réfléchies par le métal et absorbées par l'eau
Applications
Process de fabrication
Identification de véhicules et de container
Contrôle d'accès
Identification animale
Suivi de flotte de véhicules
Bagages
Librairie
Service de location
Laveries automatiques
Logistique
Logistique
Suivi de flotte de véhicules
Automatisation d'entreprises
Contrôle d'accès
Logistique militaire
Péage automatique




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 :