Mifare

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

MIFARE est une des technologies de carte à puce sans contact les plus répandues dans le monde avec 3,5 milliards de cartes et 40 millions de modules de lecture/encodage. La plupart des téléphones NFC sont équipés d'une puce permettant l'émulation de cette carte. La marque, lancée par Philips, est propriété de la société NXP.

Technologie[modifier | modifier le code]

MIFARE est fondée (partiellement ou complètement selon les modèles) sur l'un des standards ISO décrivant les cartes à puce sans contact : l'ISO 14443 (en) de Type A fonctionnant à 13,56 MHz. La technologie est intégrée à la fois dans les 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.

En fait, le nom MIFARE englobe deux types de cartes à puce sans contact très différents :

  • Les cartes MIFARE dites Classic (ou Standard) 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 est 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, MIFARE DESFire et MIFARE Plus.

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)[2].

Usages[modifier | modifier le code]

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 disposent d'un numéro sur 7 octets. Cette lecture est par essence non sécurisée. L'usurpation de numéro par un dispositif actif voire par une autre carte est aisée. Pourtant, la simple lecture de numéro de série concerne la majorité des mises en œuvre de la carte MIFARE, d'une part car elle permet aux fabricants de faire des lecteurs pouvant lire ce numéro sans intégrer de technologie propriétaire NXP, et d'autre part car le risque de fraude est souvent considéré comme tout à fait acceptable en regard du prix d'une solution plus sécurisée.
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 que porte 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 véritablement sécurisée pour les cartes à micro-contrôleur.

Dans le cas d'une lecture en clair, 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.

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 dans ce mode migrent très rapidement vers des technologies sûres à base de cartes à micro-contrôleur.

Types de cartes[modifier | modifier le code]

Les cartes MIFARE Classic[modifier | modifier le code]

Les cartes MIFARE Classic et MIFARE UltraLight sont fondamentalement des cartes mémoires disposant d'un numéro de série ou CSN de 32 bits (pour la MIFARE Classic) ou de 56 bits (pour la "MIFARE UltraLight") 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.

  • La carte MIFARE Classic 1k offre 768 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.
  • 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 suivant 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 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 de base fait qu'elles sont peu coûteuses, ce qui est une raison majeure de leur succès dans les déploiements à grande échelle comme Oyster card.

Les cartes MIFARE T=CL[modifier | modifier le code]

Les cartes MIFARE ProX et SmartMX sont à base de microprocesseur. En elle-même, la puce de la carte ne fait rien : elle doit être programmée avec un logiciel dédié : un système d'exploitation. 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 sont 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.

Selon le logiciel installé, la carte peut être utilisée pour presque tous les types d'applications. Ce genre de carte est davantage utilisé là où un 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[modifier | modifier le code]

La carte MIFARE DESFire est une version spéciale de la plateforme NXP SmartMX. Elle existe en version V06 et EV1. 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 Standard. 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) que l'on est obligé de créer. Ce long travail de formatage nécessite des programmateurs adaptés.

Historique[modifier | modifier le code]

  • 1994 : Apparition de la technologie MIFARE 1k sans contact
  • 1996 : 1er système de transport à Séoul utilisant des cartes MIFARE 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.

La technologie MIFARE (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 à 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 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 Classique, 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é[modifier | modifier le code]

Son potentiel de sécurité accru, coprocesseur dédié, Triple DES pour la V06 et AES pour la version EV1 ne sont mis en valeur que si le numéro de série n'est pas utilisé. Dans ce dernier cas, l'utilisateur ne bénéficie plus d'aucun avantage de la technologie.

Une présentation faite par Henryk Plötz et Karsten Nohl le 28 décembre 2007 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 mars 2008. 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 est de 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 11 octobre 2008. « We do not recommend the use of MIFARE Classic for new installations. We are working with customers to review their security », soit « 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é »

Notes et références[modifier | modifier le code]

  1. (en) Mark Diodati, « The MIFARE Classic Card is Hacked », Burton Group Identity Blog, le 19 mars 2008
  2. Pour l'ensemble des technologies partiellement ou complètement compatibles aux normes ISO 14443 A ou 14443 B, la distance ne dépend pas, et loin 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.
  3. (en) Episode 8: Interview with Mifare hacker Karsten Nohl, CR80News, le 2 avril 2008

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]