Mifare

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

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[modifier | modifier le code]

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.

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[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, 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 lesquels 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 a 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[modifier | modifier le code]

Les cartes MIFARE Classic[modifier | modifier le code]

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. A 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. 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[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 que gérer les informations encodées et particulièrement l'aspect sécurité. ê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[modifier | modifier le code]

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 programmateurs 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 a 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[modifier | modifier le code]

  • 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

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é[modifier | modifier le code]

Utilisation de l'UID[modifier | modifier le code]

Quel que soit le type de carte Mifare, même pour Desfire, Toute technique de sécurité n'est que potentielle et ni CRYPTO1 (pour le type Classic), ni le coprocesseur dédié, Triple DES pour la V06 ou AES pour la version EV1 ne sont mis en valeur uniquement 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.

Mifare Classic: mémoire[modifier | modifier le code]

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

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 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 11 octobre 2008 :

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[modifier | modifier le code]

Si les cartes Desfire ont déjà fait l'objet d’attaques, Celles ci nécessitent des moyens et une compétence technique certaine. A ce niveau les failles de sécurité sont bien plus souvent au niveau des différentes étapes 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
    1. définition manuelle -
    2. génération aléatoire (pseudo random dans l'OS, librairie OpenSSL ou même matériel dédié de génération cryptographique)
    3. par cérémonie de clé ou .
    4. NOTE: la notion de diversification de clés est ici importante à considérer. 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 algorythmes 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é
    1. 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é"
    2. Dans un module sécurisé de type SAM (il faut néanmoins être attentif à la manière dont elles sont utilisées)
    3. Dans un HSM
  • Utilisation de la clé
    1. les différentes transmissions (carte lecteur, interne au lecteur, lecteur-contrôleur, contrôleur - cloud based services ...)
    2. Implémentation dans les lecteurs
    3. 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
  • Eléments importants :
    1. La taille de la clé: n'est importante que si c'est le même produit.
    2. 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é.
    3. DES: date de 1975, clé symétrique de 64 bits dont 56 de poids faible et 8 pour la version de la clé
    4. triple DES combine 3 opérations DES pour Chiffrer-Déchiffrer-Chiffrer
    5. AES: 128bits (Mifare EV1), 192 ou 256 bits. est utilisé dans les recommandations de la NSA pour les documents secret défense
    6. Les techniques de chiffrement Asymétrique (RSA, DSA baseés sur les nombres premiers ou dites a courbes elliptiques) ne sont pas utilisées aujourd'hui dans les cartes de type Mifare.

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

Notes[modifier | modifier le code]

  1. 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 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[modifier | modifier le code]

  1. (en) Mark Diodati, « The MIFARE Classic Card is Hacked », Burton Group Identity Blog, le 19 mars 2008
  2. (en) Episode 8: Interview with Mifare hacker Karsten Nohl, CR80News, le 2 avril 2008

Annexes[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]