Mifare
MIFARE est une marque déposée de NXP Semiconductors. Les produits de MIFARE sont des circuits intégrés trÚs répandus pour leur utilisation dans le domaine des cartes à puce sans contact et pour plusieurs autres applications, dans le monde entier. La gamme MIFARE comprend des circuits intégrés permettant de réaliser des cartes sans contact mais aussi des lecteurs permettant de communiquer avec ces derniÚres.
Technologie
La gamme MIFARE est fondée partiellement sur l'un des standards ISO décrivant les cartes à puce sans contact : l'ISO 14443 (en) de Type A fonctionnant à 13,56 MHz. Les produits de type MIFARE sont intégrés à la fois dans des identifiants comme des cartes et dans les lecteurs / encodeurs. Ces lecteurs sont fabriqués par différents fabricants sur la base d'un composant fourni par la société NXP.
Le nom MIFARE englobe deux types de cartes à puce sans contact trÚs différents :
- Les cartes MIFARE dites "Classic" sont des cartes Ă mĂ©moire (logique cĂąblĂ©e). Elles ne respectent que partiellement le standard ISO 14443A, puisqu'elles utilisent un jeu de commandes propriĂ©taire Ă la place du protocole de haut-niveau ISO 14443-4, et ne respectent pas le format de trames ISO 14443-3 dans les communications chiffrĂ©es. Elles utilisent un protocole de sĂ©curitĂ© propriĂ©taire NXP (CRYPTO1) pour l'authentification et le chiffrement qui a Ă©tĂ© cassĂ© en 2008[1]. Les cartes MIFARE Ultralight utilisent le mĂȘme jeu de commandes mais sans la partie sĂ©curitĂ©.
- Les cartes à micro-contrÎleur de NXP sont également vendues sous l'appellation MIFARE. Il s'agit de produits complÚtement conformes au standard ISO 14443A (jusqu'à la couche ISO 14443-4 T=CL). Il s'agit des cartes MIFARE ProX, MIFARE SmartMX, et MIFARE Plus mais le volume principal est réalisé par MIFARE DESFire EV1 et aujourd'hui DESFire EV2 (bientÎt MIFARE DESFire EV3[2]).
La communication plus rapide (T=CL) a pour effet une nette perte de distance de lecture pour un maximum terrain de 3-5 cm pour une distance théorique de lecture/écriture entre la carte et le lecteur de l'ordre de 10 cm (3 pouces)[note 1].
Usages
On distingue trois types d'utilisation :
- Lecture du numéro de série (en anglais Card Serial Number / CSN)
- Il s'agit de l'utilisation, comme identifiant, du numéro protocolaire renvoyé par la carte en réponse aux trames de recherche du lecteur. Les cartes MIFARE Classic disposent d'un numéro de série sur 4 octets (32 bits). Les nouvelles générations, comme les cartes DESFire disposent d'un numéro sur 7 octets. Cette lecture ne fait pas appel aux principales caractéristiques de la technologie parmi lesquelles on peut citer l'encodage d'information dans les différents secteurs de la mémoire et les dispositifs de sécurité (processus d'authentification mutuelle et clés de sécurité)
- Cette lecture est donc par essence non sĂ©curisĂ©e.L'envoi d'un numĂ©ro constant rend sa lecture accessible Ă tout smartphone Android et l'usurpation de ce numĂ©ro par un dispositif actif ou la crĂ©ation d'une copie par l'utilisation de cartes Ă numĂ©ro de CSN programmable est aisĂ©e. MĂȘme si la simple lecture de numĂ©ro de sĂ©rie concerne encore de nombreuses mises en Ćuvre de la carte MIFARE pour des questions de prix de lecteurs et de coĂ»t humain de l'action d'encodage, le risque de fraude est de moins en moins considĂ©rĂ© comme acceptable dans le domaine du contrĂŽle d'accĂšs en regard de la faible diffĂ©rence de prix d'une solution plus sĂ©curisĂ©e.
- L'absence de programmation entraine ainsi lâimpossibilitĂ© de l'utilisation de la carte pour de multiples applications.
- Lecture d'un identifiant stocké dans la mémoire
- Il s'agit cette fois d'utiliser comme identifiant non plus le numéro protocolaire mais une donnée encodée dans la carte. Selon le type de carte, cela peut se faire par une lecture en clair (MIFARE Ultralight), en chiffré aprÚs authentification CRYPTO1 (MIFARE Classic) ou dans une session plus sécurisée pour les cartes à micro-contrÎleur.
Dans le cas d'une lecture en clair, avec une clĂ© connue dite "de transport", l'usurpation n'est pas plus compliquĂ©e que l'Ă©mulation du numĂ©ro de sĂ©rie protocolaire. Les attaques sur CRYPTO1 ont montrĂ© que la lecture "sĂ©curisĂ©e" MIFARE Classic ne pouvait plus ĂȘtre considĂ©rĂ©e comme sĂ»re et de nombreux kits de copie sont disponibles pour quelques euros.
- Stockage de données
- Dans cette approche la carte n'est plus considĂ©rĂ© comme un simple identifiant (c'est-Ă -dire comme point d'entrĂ©e pour accĂ©der Ă des informations stockĂ©es dans une base de donnĂ©es ou un systĂšme d'authentification quelconque), mais comme une mĂ©moire stockant ses propres informations, Ă la maniĂšre d'une disquette ou d'une clĂ© USB. C'est notamment le cas dans les rĂ©seaux de transport (par exemple Oyster Ă Londres) oĂč sont stockĂ©s dans la carte MIFARE Classic le contrat d'abonnement et l'historique des mouvements. Dans ce cas la vĂ©rification de l'authenticitĂ© de la carte est primordiale. Depuis les attaques sur CRYPTO1, les rĂ©seaux de transports utilisant les cartes MIFARE Classic migrent trĂšs rapidement vers des technologies plus sĂ»res Ă base de cartes Ă micro-contrĂŽleur.
Types de cartes
Les cartes MIFARE Classic
Les cartes MIFARE Classic et MIFARE Ultralight sont des cartes mĂ©moires Ă logique cĂąblĂ©e, disposant d'un numĂ©ro de sĂ©rie (appelĂ© aussi UID ou CSN) de 32 bits (pour la MIFARE Classic) ou de 56 bits (pour la "MIFARE Ultralight" et la "MIFARE Classic EV1") prĂ©encodĂ© et d'un espace de stockage dĂ©coupĂ© en segments de donnĂ©es puis en blocs de donnĂ©es avec des mĂ©canismes de sĂ©curitĂ© simples. Ă l'origine, cet UID Ă©tait surtout utilisĂ© comme Ă©lĂ©ment dâanti-collision. Les UID des cartes MIFARE Classic ne sont dĂ©sormais plus uniques. Leur codage sur 32 bits permet environ 4 milliards de valeurs possibles, or NXP affirme avoir vendu plus de 10 milliards de puces MIFARE. Il y a donc potentiellement des doublons (au moins 1 si moins de 6 milliards de piĂšces ont Ă©tĂ© dĂ©truites). De plus, il existe des clones d'origine chinoise (tel que la puce FM11RF08 de Fudan Microelectronics) compatibles avec les produits MIFARE dont les numĂ©ros de sĂ©rie sont probablement assignĂ©s alĂ©atoirement ou sĂ©quentiellement.
- La carte MIFARE Classic 1k offre 752 octets de stockage rĂ©partis sur 16 secteurs. Chaque secteur est composĂ© de 3 blocs de 16 octets. Un bloc de sĂ©curitĂ© supplĂ©mentaire vient protĂ©ger l'accĂšs au secteur par deux clefs diffĂ©rentes (nommĂ©es A et B). Les secteurs peuvent ĂȘtre gĂ©rĂ©s via des opĂ©rations de lecture/d'Ă©criture de donnĂ©es ou d'incrĂ©mentation/dĂ©crĂ©mentation de valeurs. Le bloc 0 (premier bloc du premier secteur) contient l'identifiant unique de la carte. Il est programmĂ© en usine et est verrouillĂ© en Ă©criture.
- La carte MIFARE Classic 4k offre environ 4 kilooctets répartis sur 40 secteurs. Les 32 premiers secteurs sont composés de 4 blocs, les 8 secteurs suivants de 16 blocs.
- La carte MIFARE Ultralight a seulement 512 bits de mémoire (soit 64 octets) et ne dispose pas des sécurités que l'on trouve dans les MIFARE Classic. Son coût de revient trÚs bas fait qu'elle sert souvent de ticket jetable.
Les cartes disposent de circuits intégrés applicatifs spécifiques et ont par conséquent une capacité de calcul limitée. Avec leur prix relativement bas, elles sont essentiellement utilisées dans le transport (Oyster card) ou la billetterie. Dans l'entreprise elles conviennent à de nombreuses applications dont le porte-monnaie électronique, la gestion des accÚs (physiques et logiques), la gestion horaire et bien d'autres. La simplicité des cartes et la concurrence féroce fait qu'elles sont peu coûteuses, ce qui est une raison majeure de leur succÚs dans les déploiements à grande échelle.
Les cartes MIFARE T=CL
Les cartes MIFARE ProX et SmartMX sont Ă base de microprocesseur. En elle-mĂȘme, la puce de la carte ne fait que gĂ©rer les informations encodĂ©es et particuliĂšrement l'aspect sĂ©curitĂ©. La carte devant Ă l'origine ĂȘtre programmĂ©e avec un logiciel dĂ©diĂ© maniĂ© par un technicien, l'encodage des diffĂ©rents types de cartes MIFARE est maintenant une fonctionnalitĂ© de beaucoup de logiciels applicatifs qui peut ĂȘtre utilisĂ©e de maniĂšre transparente par n'importe quel utilisateur aprĂšs un paramĂ©trage initial. La plupart du temps le microprocesseur est couplĂ© Ă un coprocesseur spĂ©cialisĂ© pour les calculs cryptographiques rapides (comme les algorithmes Triple DES, AES, RSA, etc). Ces cartes ne sont pas capables d'exĂ©cuter des opĂ©rations complexes de façon aussi sĂ©curisĂ©e et rapide que les cartes Ă puce Ă contact que l'on connaĂźt qui contiennent des systĂšmes d'exploitation Ă base de Java comme JCOP, mais elles s'en rapprochent.
La carte peut ĂȘtre utilisĂ©e pour presque tous les types d'applications. Ce genre de carte est davantage utilisĂ© lĂ oĂč un plus haut niveau de sĂ©curitĂ© est requis (par exemple dans la sĂ©curisation des documents de voyage, des passeports Ă©lectroniques, les cartes de paiement etc).
Les cartes MIFARE DESFire
La carte MIFARE DESFire est une version spĂ©ciale de la plateforme NXP SmartMX. Elle existe en version V06 (en fin de vie), EV1 et EV2. Elle est vendue prĂ©programmĂ©e avec le systĂšme d'exploitation DESFire (ou DESFire operating system). Ce systĂšme d'exploitation offre bien plus de fonctions que les cartes MIFARE Classic. Les 4 ou 8 ko de stockage ne sont pas rĂ©partis sur 16 zones prĂ©dĂ©finies mais dans des espaces appelĂ©s applications (max 28 pour l'EV1 et uniquement limitĂ©s par la taille mĂ©moire pour l'EV2) que l'on est obligĂ© de crĂ©er. Ce travail de formatage qui nĂ©cessitait hier encore des dĂ©veloppeurs adaptĂ©s, peut s'effectuer aujourd'hui avec de simples lecteurs USB (PC/SC), des imprimantes avec module d'encodage ou mĂȘme des smartphones Android (en NFC). Il est Ă noter que la plupart des lecteurs RW (Ă lecture Ă©criture) utilisĂ©s pour les diverses applications sont en mesure d'Ă©crire dans une carte (lecteurs de contrĂŽle d'accĂšs, borne de transport, ou module dans un photocopieur...).
De nombreuses librairies Open source existent sur le Web (forums comme "developpez"ou "NFC tools").
Dans de nombreux systÚmes, notamment de transport en commun, les cartes MIFARE DESFire remplacent les cartes MIFARE Classic, jugées trop vulnérables.
Historique
- 1994 : Apparition de la technologie MIFARE Classic 1k sans contact
- 1996 : 1er systĂšme de transport Ă SĂ©oul utilisant des cartes MIFARE Classic 1k.
- 1997 : Apparition des MIFARE PRO avec coprocesseur Triple DES .
- 1999 : Apparition des MIFARE PROX avec coprocesseur Ă PKI
- 2001 : Apparition des MIFARE Ultralight.
- 2002 : Apparition des MIFARE DESFire, produit Ă base de microprocesseur
- 2004 : Apparition des MIFARE DESFire SAM, version de MIFARE DESFire à infrastructure sécurisée
- 2006 : Apparition de MIFARE DESFire EV1, premier produit Ă supporter 128-bit AES.
- 2008 : Apparition de MIFARE Plus, produit de remplacement de MIFARE Classic basé sur 128-bit AES.
- 2010 : Apparition de SAM AV2.
- 2016 : Apparition de MIFARE DESFire EV2
- 2020 : Apparition de MIFARE DESFire EV3
La technologie de MIFARE Classic (MIkron FARE-collection System) a Ă©tĂ© dĂ©veloppĂ©e par Mikron puis acquise par Philips en 1998. Mikron transmit la licence de la technologie MIFARE Classic Ă Atmel aux Ătats-Unis, Ă Philips aux Pays-Bas et Ă Siemens (maintenant Infineon Technologies) en Allemagne.
AprÚs l'acquisition par Philips, Hitachi a contracté une licence de produits MIFARE avec Philips pour le développement de solutions à base de cartes à puce sans contact pour la téléphonie à carte de NTT entre 1999 et 2006. Trois autres partenaires ont rejoint le projet des cartes sans contact pour les téléphones : Tokin-Tamura-Siemens, Hitachi (en contrat avec Philips pour le support technique), Denso-(Motorola pour la production). NTT demanda deux versions de la puce, comme MIFARE Classic, une avec petite capacité mémoire et l'autre avec une grande capacité mémoire. Hitachi a développé seulement la carte à grande capacité et retira une partie de la mémoire pour la version à faible capacité.
Siemens a développé seulement la puce à logique cùblée basée sur leur technologie MIFARE avec quelques modifications. Motorola tenta de développer une puce à logique cùblée similaire à MIFARE mais finit par abandonner. Le projet visait la production d'un million de cartes par mois pour commencer mais atteint 100 000 cartes par mois juste avant qu'il soit abandonné.
Sécurité
Utilisation de l'UID
Quel que soit le type de carte MIFARE (mĂȘme pour DESFire), toute technique de sĂ©curitĂ© basĂ©e sur CRYPTO1 (pour le type Classic), ou le coprocesseur dĂ©diĂ© (Triple DES pour la V06 ou AES pour la version EV1) sans utiliser le numĂ©ro de sĂ©rie n'est pas fiable. Dans ce cas, l'utilisateur ne bĂ©nĂ©ficie plus d'aucun avantage de la technologie.
MIFARE Classic: mémoire
Une présentation faite par Henryk Plötz et Karsten Nohl le lors du Chaos Communication Congress décrit un reverse-engineering partiel de l'algorithme d'authentification mutuelle de MIFARE Classic ainsi que certains problÚmes de sécurité du modÚle MIFARE Classic[3].
Depuis, le professeur Jacobs et son Ă©quipe identifiĂšrent la vulnĂ©rabilitĂ© de la puce dans un article qui devait ĂȘtre publiĂ© en . Cependant cette publication a Ă©tĂ© retardĂ©e aprĂšs que NXP, le fabricant a tentĂ© une action en justice visant Ă lâinterdire. Il a Ă©tĂ© finalement publiĂ© en octobre 2008 lors de lâ « European Symposium on Research in Computer Security (Esorics) 2008 » une confĂ©rence sur la sĂ©curitĂ© informatique organisĂ©e Ă Malaga en Espagne.
Les informations sensibles, stockĂ©es sur la puce MIFARE Classic, sont protĂ©gĂ©es par un numĂ©ro qui agit comme une clĂ©. La sĂ©curitĂ© de tout le systĂšme est basĂ©e sur le fait que cette « clĂ© » ne peut ĂȘtre dĂ©couverte. En mars, le Professeur Jacobs et son Ă©quipe ont dĂ©couvert quâil Ă©tait relativement facile de calculer ces clĂ©s Ă partir de donnĂ©es rĂ©cupĂ©rables, et Ă partir de lĂ , encore plus facile de crĂ©er ou de copier des cartes. Le temps actuel pour calculer ces clĂ©s peut descendre jusqu'Ă 6 secondes, avec un lecteur disponible sur internet.
Steve Owen, vice-prĂ©sident sales and marketing, identification de NXP Semiconductors, dĂ©clare alors Ă la BBC lors de lâĂ©mission Click du samedi :
« We do not recommend the use of MIFARE Classic for new installations. We are working with customers to review their security »
« Nous ne conseillons pas lâutilisation de la carte MIFARE Classic pour de nouvelles installations. Nous travaillons avec des clients pour revoir leur sĂ©curitĂ© »
MIFARE DESFire
Si les cartes DESFire ont dĂ©jĂ fait l'objet dâattaques, celles-ci ne concernent pas les versions DESFire EV1 (2008), EV2 et EV3. Actuellement, les failles de sĂ©curitĂ© sont bien plus souvent au niveau des diffĂ©rentes Ă©tapes de la gestion de la clĂ© de sĂ©curitĂ©. L'importance est mise ici non sur le potentiel des techniques de sĂ©curitĂ©, mais sur leur implĂ©mentation.
- La génération de la clé est réalisée soit par :
- définition manuelle,
- gĂ©nĂ©ration pseudo alĂ©atoire (random de l'OS, librairie OpenSSL ou mĂȘme matĂ©riel dĂ©diĂ© de gĂ©nĂ©ration cryptographique),
- par dérivation de clés en fonction d'autres données déduites ou secrÚtes.
- NOTE : la notion de diversification de clĂ©s est ici importante. Peu pratiquĂ©e, les clĂ©s diversifiĂ©es sont rĂ©alisĂ©es Ă partir d'une clĂ© de base (gĂ©nĂ©rĂ©e par les mĂȘmes mĂ©thodes dĂ©crites ci-dessus), en utilisant des algorithmes spĂ©cifiques, souvent implĂ©mentĂ©s dans le firmware du lecteur. Chaque carte possĂšde alors sa clĂ© propre alors que le lecteur n'aura que la clĂ© de base.
- Le stockage de la clé
- Encore aujourd'hui souvent dans la mĂ©moire vive (de l'ordinateur ou du lecteur). MĂȘme chiffrĂ©e, on ne parlera que de "demi sĂ©curitĂ©"
- Dans un module sĂ©curisĂ© de type SAM (il faut nĂ©anmoins ĂȘtre attentif Ă la maniĂšre dont elles sont utilisĂ©es)
- Dans un HSM
- Utilisation de la clé
- les différentes transmissions (carte lecteur, interne au lecteur, lecteur-contrÎleur, contrÎleur - cloud based services ...)
- Implémentation dans les lecteurs
- Importance de la différenciation des clés, par secteur ou application, par usage (lecture, écriture)
- Changement des clés : quels sont les risques de compromission
- ĂlĂ©ments importants :
- La taille de la clĂ© : n'est importante que si c'est le mĂȘme produit.
- Lâalgorithme utilisĂ© Ă©tant par dĂ©finition propriĂ©taire, il n'y a pas de rĂšgle tant qu'il n'a pas Ă©tĂ© cassĂ©.
- DES⣠: date de 1975, clé symétrique de 64 bits dont 56 de poids faible et 8 pour la version de la clé
- triple DES combine 3 opérations DES pour Chiffrer-Déchiffrer-Chiffrer
- AES⣠: 128bits (MIFARE EV1), 192 ou 256 bits. est utilisé dans les recommandations de la NSA pour les documents secret défense
- Les techniques de chiffrement asymétrique (RSA, DSA basées sur les nombres premiers, ou celles dites à courbes elliptiques), ne sont pas utilisées aujourd'hui dans les cartes de type MIFARE.
Notes et références
Notes
- Pour l'ensemble des technologies partiellement ou complĂštement compatibles avec les normes ISO 14443 A ou 14443 B, la distance ne dĂ©pend pas, et tant s'en faut, de la puissance du champ gĂ©nĂ©rĂ© par le lecteur et par la taille de son antenne. En effet la vitesse de transmission entrainant une demande accrue de puissance et la puce n'Ă©tant alimentĂ©e que par induction, la carte doit, pour ĂȘtre alimentĂ©e ĂȘtre extrĂȘmement proche du lecteur. Augmenter la puissance des lecteurs disponibles sur le marchĂ© les place hors de la rĂšglementation en vigueur. De plus, le tuning des antennes respectives des cartes et des lecteurs joue Ă©galement un grand rĂŽle dans la distance de lecture. ThĂ©oriquement Ă 13,56 MHz, il n'est pas rare de trouver des cartes au-dessus de 16, voir de 17 MHz. Plus la diffĂ©rence de rĂ©glage sera grande entre cartes et lecteurs, moins il y aura de distance de lecture. Il est intĂ©ressant de savoir que les produits rĂ©pondant Ă la norme ISO 15693 peuvent, eux, ĂȘtre lus thĂ©oriquement Ă plus d'un mĂštre. En pratique de bons lecteurs parkings offrent 30 Ă 40 cm.
Références
- (en) Mark Diodati, « The MIFARE Classic Card is Hacked », Burton Group Identity Blog, le 19 mars 2008
- (en) NXP, « For new designs please use replacement product "MIFARE DESFire EV3" », sur www.nxp.com (consulté le )
- (en) Episode 8: Interview with Mifare hacker Karsten Nohl, CR80News, le 2 avril 2008
Annexes
Articles connexes
Liens externes
- (en) Site officiel
- (en) Tableau comparatif - MIFARE DESFire EV1 / EV2 / EV3
- Badges à lecture/écriture : les bénéfices du dialogue, Magazine APS sur Info Expoprotection,
- Forum "Developpez.com" http://www.developpez.net/forums/d1363702/club-professionnels-informatique/actualites/liblogicalaccess-bibliotheque-open-source-rfid/x.php?title=Main_Page