Badge MIFARE ® : la technologie, la sécurité, les prix

Le badge MIFARE : présentation générale

Carte magnétique RFID pour serrure électronique d’hôtel Onity et autres marques
Badge MIFARE Classic personnalisé par impression offset pour accès piscine
Badge magnétique puce sans contact MIFARE Classic NXP personnalisable

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.

SECTEUR MEMOIRE MIFARE 1K

 

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.

Badge MIFARE Classic 1k EV1 personnalisé par impression offset abonnement piscine

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
Logo Kronegger Logo nxp Logo em microelectronic Logo atmel Logo cardpresso Logo magicard Logo sato Logo zebra

Copyright RFID-Labs 2016 - tous droits réservés