Badge MIFARE ® : la technologie, la sécurité, les prix
Le badge MIFARE : présentation générale
Le Badge MIFARE ® est la plus utilisée des cartes RFID
NXP B.V. , anciennement Philips, est la société de conception de puce hollandaise, basée à Eindoven, qui a inventé la technologie de badge MIFARE ®, certainement la plus utilisée au monde. Chaque année la société dépose de nombreux brevets et si certains sont maintenant tombés dans le domaine public, un portefeuille très complet de brevets est encore actif.
Après le succès du badge MIFARE 1K, qui existe également en version MIFARE 4k, une puce avec une protection de l’accès à ses secteurs de mémoire qui a été malmenée par des groupes de recherche sur la cryptographie dans les années 2000, la société a mis sur le marché une gamme étendue de produit, de la MIFARE ULTRALIGHT ® et sa mémoire OTP de 32 fusibles à la MIFARE DESFire ® qui a reçu la plus haute certification sécuritaire ‘EAL5+’ en version EV2, ce qui signifie qu’elle a résisté aux attaques actuelles connues les plus complexes.
Les badges MIFARE ® sont utilisés pour gérer les accès :
- Salles de sport avec des carte MIFARE Ultralight bien souvent
- Parcs d’attractions en carte MIFARE Ultralight C si elles offrent un porte monnaie electronique (C pour cryptographie)
- Cél d’Hôtels souvent en carte MIFARE 1K
- Parkings également en badge MIFARE 1K
- Entreprises et de leurs comptes informatiques (application SSO ou Single Sign On) ou la carte MIFARE DESFire est aujourd’hui le standard
- Projets de car-sharing ou autopartage type autolib ou velib en DESFire pour plus de sécurité.
- Abonnements aux bornes RFID de rechargement des voitures électriques en badge MIFARE 1K
- Carte d’abonnements des projets de Vélo bicyclette à louer dans les villes
- Transports publics
Quel est le prix d’un badge MIFARE ?
Vendus par centaines de millions d’unité dans plusieurs métros de capitale mondiale comme Hong Kong ou Londres, le prix d’un badge MIFARE diffère selon les quantités commandées, la qualité des antennes utilisées, et le niveau de personnalisation de la carte. A partir de 200 cartes, il est possible d’imprimer en couleur offset et en recto verso un badge MIFARE, de graver un numéro de série au laser sur sa face, et d’opérer un changement de clés d’accès à la mémoire puis d’encoder un cryptogramme grâce à un lecteur RFID USB connecté à un PC par exemple.
Pour connaitre le prix du badge MIFARE 1K, n’hésitez pas à nous demander une offre sur contact@rfid-labs.com
Comment marche le badge MIFARE ® ?
1 L’unicité du numéro de série ‘UID’ du badge MIFARE
Les premières cartes d’identification (et pas d’authentification, on verra plus loin la différence majeure) étaient à piste magnétique. L’avantage est que l’on peut écrire un numéro long, qui peut être considéré unique si l’on prend soin d’utiliser un générateur mathématique de qualité, dont une partie pourrait être une signature numérique d’une autre partie. Si un hacker souhaite créer une nouvelle carte, il ne pourra pas le faire car il ne connaîtra pas la clé de signature et ne sera donc pas capable de générer un numéro acceptable pour le système. Et même si il y parvenait, le système non seulement peut vérifier que la signature est correcte, mais également que le numéro fait parti d’une liste blanche des numéros autorisés. Un peu de cryptographie sur le numéro et un peu de vérification par le système semble donc efficace.
Pour la hacker, il y a en fait bien plus simple mais cela demande de récupérer physiquement une carte du système, et de la copier avec un simple lecteur de carte à piste acheté moins de 100 euros sur internet. Même sans connaître le système, la duplication est possible – ou clonage – et c’est bien le défi que l’électronique a du relevé dans les années ivantes : comment créer une carte dont le numéro de série serait réputé unique et inviolable ?
C’est le premier objectif que les fondeurs de silicium (les designers et fabricants de puces) ont eu. Notamment sur la fréquence 125 Khz, des sociétés comme ELECTRONIC MARIN (EM4201 ou EM4200 ça vous dit quelques chose ?) ont conçu des puces qui, lorsqu’on les place dans le champs magnétique du lecteur, diffuse des sinusoïdes dans lesquelles on peut retrouver de manière analogique par filtrage, un numéro de type 01 0A 45 FB D4. Les numéros d’une production ne se suivent pas et EM garanti l’unicité, d’où le nom UID comme Unic IDentifier. Sommes nous donc bien protégé avec cette carte ?
Quelques temps. Juste le temps que des électroniciens conçoivent des petits kits programmables capable de diffuser les mêmes sinusoides, avec le numéro que l’on veut … on vient de perdre le U de UID donc toute la sécurité du système puisqu’elle reposait sur cette notion d’anti-clônage.
La course est perdue d’avance : tant que l’identifiant sera directement lisible par un simple lecteur, de piste ou de puce 125 khz, il sera possible de créer un clone.
3 La mémoire sécurisée du badge MIFARE
L’accès au numéro de série de la carte MIFARE est en clair, c’est à dire non crypté, sans besoin de mot de passe : tout le monde peut le lire, et bien entendu pour 15 euros sur internet, on peut acheter de fausses cartes MIFARE dont l’UID est programmable. Par contre, l’accès aux 16 secteurs de mémoire du badge MIFARE 1K est quant à lui contrôlé par des clés (ou mot de passe) qu’il faut présenter à la carte lors de la commande LOGIN nécessaire avant tout READ ou WRITE sur un secteur.
Tous les secteurs d’une carte MIFARE ont la même structure, le secteur 0 étant un peu particulier puisque son block 0 n’est pas modifiable car il contient le fameux UID de la carte MIFARE ainsi que les données du constructeur NXP (date de fabrication, certificat EV1 etc).
Pour les secteurs 1 à 15, ils contiennent 4 blocks de 16 octets chacun. Les 3 premiers blocks permettent d’y écrire des données, le quatrième block contient les clés d’accès aux 3 blocks du secteurs.
Au final, 15 secteurs x 3 blocks x 16 octets + Secteur 0 x 2 blocks x 16 octets = 752 octets (ou bytes) soit 0,752 Kb soit presque 1K comme son nom badge MIFARE Classic 1K l’indique.
En caractère ASCCI, un octet permet de coder tous les caratères usuels. Cela signifie que l’on pourrait écrire dans une MIFARE 1K le texte suivant, de 752 caractères :
Ce texte est un exemple pratique pour donner au lecteur du site www.rfid-labs.com une idée de ce que représente la mémoire d’une carte MIFARE 1k et de ses secteurs constitués de 752 octets. Bien entendu, on n’utilise pas une carte MIFARE pour y écrire du texte. Généralement, une application y stocke soit un compteur pour une application de cantine servant de porte monnaie électronique, ou un identifiant cryptographique pour ne pas utiliser l’UID de la carte qui n’est pas une donnée sécurisée comme on l’a vu. Par contre, il n’est pas possible d’y stocker une photo d’identité car en dessous de 6000 octets ou 6 kB, la personne n’est pas reconnaissable. On peut stocker des certificats numériques longs sur MIFARE 4K, la VIGIK des facteurs de La Poste.
2 La Cryptographie proposée par le badge MIFARE
Les ingénieurs de chez Philips (NXP aujourd’hui), ont bénéficié dans les années 1995 de toute les connaissances acquises par des sociétés comme BULL, Gemplus, Schlumberger, OBERTHUR, ST Microelectronics lors du design des cartes à puce à contact comme les cartes SIM ou les cartes bancaires. Le badge MIFARE n’est pas du tout une évolution des cartes RFID 125 Khz analogique (de bien pauvres générateurs de sinusoïdes) mais bien un passage au sans contact des designs de puce à contact du moment, héritant d’éléments aussi sophistiqués que des processeur cryptographiques, des générateurs de nombres aléatoires, des moyens de protéger des parties de la mémoire pour y cacher des clés. Grâce à cet arsenal de technologies, le lecteur de carte établit tout d’abord avec la carte une liaison sécurisée à base de clés de session renouvelées à chaque session. Il faut donc aussi un crypto processeur MIFARE dans la lecteur. Logique. Il faut chiffrer d’un coté et déchiffrer de l’autre et vice et versa.
Cela implique bien entendu que le lecteur soit équipé d’une puce lecteur de NXP, qui partage algorithme et clé avec les cartes MIFARE. C’est pour cela qu’un téléphone SAMSUNG, équipé d’une puce lecteur BROADCOM qui n’a pas licencié la technologie de NXP ne peut que lire le numéro de série d’un badge MIFARE 1K, et ne peut pas présenter à un secteur de mémoire la clé A ou B de lecture ou d’écriture – donc accéder à la partie sécurisée de la carte MIFARE.
4 Les normes ISO 14443 et ISO 15693 en fréquence 13,56 Mhz
Dans tous secteurs d’activités, il est primordial que les industriels du monde entier définissent des standards d’interopérabilité avec que les lecteurs MIFARE de l’un puissent lire et encoder les badge MIFARE de l’autre.
La technologie MIFARE de NXP entre dans le standard ISO 14443. Par contre, la lecture d’un secteur MIFARE avec clé A/B est une technologie propriétaire. Seuls les lecteurs équipés du processeur de lecteur de NXP sera capable
5 Comment renforcer la sécurité d’un système MIFARE 1K ?
La première chose, dès que l’on parle de sécurité, est de définir les risques encourus, la difficulté ou le prix de l’attaque, et le prix de la protection.
La protection peut se faire au niveau de la carte MIFARE et au niveau du système.
N’utiliser que le numéro de série d’une carte MIFARE qui offre pourtant des secteurs protégés par clés et également une manière de vérifier que la carte est bien fabriquée par NXP (EV1 signifie qu’un certificat NXP est présent et qui peut être vérifié par le système) ne fait pas partie des meilleures pratiques.
A minima, il faut personnaliser la mémoire de la carte MIFARE en changeant les clés d’un secteur, puis aller par exemple écrire dans les blocks la signature du numéro de série. Bien sur on utilisera une clé diversifiée de la clé mère pour éviter qu’une carte ‘cassée’ n’entraine la casse de tout le système. Le système pourra ainsi vérifier à la fois le certificat de NXP, et vérifier que la signature présente dans le block est bien celle de l’UID lu directement. N’hésitez pas à nous contacter pour des conseils d’implémentation de la sécruité des badges MIFARE 1K.
6 Authentification / identification : différence pour la MIFARE 1K ?
Le terme « identification » n’implique pas de notion de sécurité : l’identité est connue de tous, peut être copiée, usurpée. En revanche, lorsque l’on parle d’authentification, elle implique que des moyens techniques ont été utilisés pour prouver que l’identité est authentique. En langage ‘carte à puce’ ou ‘cryptographie, on travaille avec deux choses : des algorithmes prouvés mathématiquement par la communauté mondiale, et des clés suffisamment longues contre les attaques en force brute.
L’idée de base est la suivante : si deux entités arrivent à savoir que l’autre connait un secret bien gardé, alors chacune estime que l’autre est authentique.
La difficulté est que l’on doit échanger avec l’autre entité sans jamais – dans ses messages – laisser trace du secret.
La réalité est plus complexe, mais en simplifiant, le lecteur envoie à la carte un numéro aléatoire, et lui demande de l’encrypter avec sa clé (le secret). La carte reçoit ce numéro ‘random’ en clair, l’encrypte car elle dispose d’un coprocesseur cryptographique, mais attend en retour que le lecteur à son tour encrypte sa réponse. Après plusieurs échanges (on parle de ‘3 pass authentication’), la carte comme le lecteur ont pu vérifier qu’à partir d’un nombre aléatoire, chacun a su faire le même calcul que l’autre et apporter le bon résultat que chacun a pu recalculer, prouvant que chacun a fait le calcul avec la même clé, donc le même secret. Les deux parties sont alors mutuellement authentifiées et peuvent, au travers d’un système de messages encryptés, s’échanger par exemple le mot de passe d’accès à un secteur du badge MIFARE 1K. Les attaques sur le MIAFRE 1K porte sur des défauts de CRYPTO-1, l’algorithme des MIFARE, et des clés de 48 bits, trop courtes pour s’avérer assez solide envers certaines attaques.
LA GAMME DES BADGES MIFARE 13,56 Mhz
Fondeur | Nom | Référence | FREQ. | ISO | EEPROM (Octet) | Sécurité |
NXP | MIFARE Ultralight ® EV1 | MF0 IC U1X | 13,56 MHz | ISO14443 | 64 (16 x 4) | aucune sauf OTP |
NXP | MIFARE Ultralight C ® | MF0 IC U2X | 13,56 MHz | ISO14443 | 192 (48 x 4 ) | 3DES + compteur |
NXP | MIFARE ® Classic Mini | MF1 S20 | 13,56 MHz | ISO14443 | 320 (5 x 64) | CRYPTO1 clé 56 bits |
NXP | MIFARE ® Classic 1K | MF1 S50 | 13,56 MHz | ISO14443 | 1024 (16 x 64) | CRYPTO1 clé 56 bits |
NXP | MIFARE ® Classic 4K | MF1 S70 | 13,56 MHz | ISO14443 | 4096 (32 x 64 + 8 x 256) | CRYPTO1 clé 56 bits |
NXP | MIFARE ® Plus S 2K | MF1 SPLUS 60 | 13,56 MHz | ISO14443 | 2048 (32 x 64) | AES128 (CMAC sig) |
NXP | MIFARE ® Plus S 4K | MF1 SPLUS 80 | 13,56 MHz | ISO14443 | 4096 (32 x 64 + 8 x 256) | AES128 (CMAC sig) |
NXP | MIFARE ® Plus X 2K | MF1 PLUS 60 | 13,56 MHz | ISO14443 | 2048 (32 x 64) | AES128 (CMAC sig+ enc.) |
NXP | MIFARE ® PlusX 4K | MF1 PLUS 80 | 13,56 MHz | ISO14443 | 4096 (32 x 64 + 8 x 256) | 3 DES AES128 (CMAC sig+ enc.) |
NXP | MIFARE ® DESFire EV1 2K | MF3 IC D21 | 13,56 MHz | ISO14443 | 2048 (file system) | 3 DES AES128 (CMAC sig+ enc.) |
NXP | MIFARE ® DESFire EV1 4K | MF3 IC D41 | 13,56 MHz | ISO14443 | 4096 (file system) | 3 DES AES128 (CMAC sig+ enc.) |
NXP | MIFARE ® DESFire EV 1 8K | MF3 IC D81 | 13,56 MHz | ISO14443 | 8192 (file system) | 3 DES AES128 (CMAC sig+ enc.) |
NXP | ICODE SLI ® SL2 (EOL) | SL2 ICS 2001 | 13,56 Mhz | ISO15693/18000 | 1024 (32 x 4) | Write protection |
NXP | ICODE SLI-L | SL2 ICS 5001 | 13,56 Mhz | ISO15693/18000 | 512 | Write protection |
NXP | ICODE SLIX (NEW) | SL2 ICS 2002 | 13,56 Mhz | ISO15693/18000 | 1024 (32 x 4) | Write protection |
NXP | ICODE SLIX-S (NEW) | SL2 ICS 5302 | 13,56 Mhz | ISO15693/18000 | 2048 | R/Wprotection |
NXP | ICODE SLIX-L (NEW) | SL2 ICS 5002 | 13,56 Mhz | ISO15693/18000 | 512 | R/Wprotection |
NXP | HITAG 2 | HT2 ICS 2002 | 125 Khz | ISO11784 | 32 (256 bit) | Write protection clé 48 bits |
ATMEL | ATA5577 – OPEN 26 bit/Q5/etc | ATA5577 | 125 KHZ | – | 1024 | Write protection |
EM | EM4200 | EM4200 | 125 Khz | – | Numéro de série |