Transcript

Mifare® by MICROTRONIC

ISO 14443A

Pourquoi Mifare® ?

Page 2 of 14

TABLE DES MATIERES

INTRODUCTION............................................................3

LE CHOIX DE LA TECHNOLOGIE ....................................4

QU’EST-CE QUE MIFARE ? ...........................................7

STRUCTURE DE LA PUCE MIFARE® ................................8

MAD (MIFARE APPLICATION DIRECTORY) .......... 10

ALL-IN-1-CARD ........................................................... 12

U-KEY ==> MIFARE®.................................................. 13

LE FORMATAGE .......................................................... 14

Page 3 of 14

INTRODUCTION

En 1988, MICROTRONIC a fait développer une série de puces (exécutions de 1 à 16 Kbit) pour système à contact pour son fameux et légendaire U-KEY. En 1992, MICROTRONIC a fait développer une puce de 2 Kbit (= 256 bytes) pour la version sans contact de ce U-KEY. Donc, depuis plus de 15 ans, MICROTRONIC a acquis une expérience incomparable dans les applications les plus diverses (comme: D.A., P.M.E., photocopieurs, accès on- et offline, timbrage, parcs, benzine, …) Et, avec le temps, ces applications ont évolué en fonction du retour (feed-back) de la part des clients (donc: expérience sur le terrain), ce qui donne (en prenant l’exemple du P.M.E.):

• Bloc logique P.M.E (d’origine), auquel s’est greffé successivement: • Bloc logique Jetons (consommations sociales). • Bloc logique Bonus (fidélisation de la clientèle) • Bloc logique Bonité • Bloc logique Subventions • Bloc logique Consigne • Bloc logique Caisse (et on n’en compte pas les variantes…) • etc..

Le U-KEY, de par sa capacité actuelle (de 256 bytes), supporte 21 blocs logiques. Le cloisonnement entre clients se fait au moyen du code pays et du code site. Entre-temps, la norme ISO 14443 a vu le jour. Force a été pour MICROTRONIC de devoir reconnaître cette norme et de s’y conformer à terme. Deux possibilités:

• Faire développer une nouvelle puce (avec les coûts, délais et mises au point que ça implique, sans parler des maladies d’enfance …).

• Choisir un produit du marché (donc conforme, éprouvé et fiable). Le choix du produit du marché étant évident, il restait pour MICROTRONIC comme alternative finale mifare® ou LEGIC, dont nous verrons le débat dans le prochain chapitre.

Page 4 of 14

LE CHOIX DE LA TECHNOLOGIE

MIFARE® < -- > LEGIC®

Pourquoi le choix de MICROTRONIC pour mifare® et non pas LEGIC ?

ARGUMENTS COMMERCIAUX

Argument Position LEGIC Position mifare® Commentaire

Norme Déclare expressé-ment ne pas être conforme à une norme

Compatible à 100% ISO 14443

Impératif de développer une nouvelle gamme de produit compatible à la norme Internationale ISO

Fournisseur Un seul exclusif:

LEGIC Identsystems

2 Sté possèdent la licence de fabrication:

PHILIPS semiconductors et INFINEON

D’un côté un seul fournisseur exclusif, de l’autre une production répartie dans le monde et de nombreux marchand de composant capable de livrer

PRIX Soumis à une licence d’entrée de:

50'000 CHF pour puce lecteur

50'000 CHF pour puce TAG

De plus soumis à une cotisation de 5'000 par année.

(Prix indiquée en CHF)

Aucune licence, ni cotisation annuelle

Les prix des puces sont définis par le jeu de l’offre et de la demande

Comment justifier l’amortissement de ces 100'000.— sur un produit qui finalement est identique de l’extérieur comme par ses fonctionnalités.

Page 5 of 14

ARGUMENTS TECHNIQUES

Argument Position LEGIC Position mifare® Commentaire

Espace mémoire

256 Bytes 1'024 Bytes (1Kbit)

divisés en 16 secteurs

La structure complète des applications MICROTRONIC nécessite un espace mémoire de 256 Bytes

Sécurité / inviolabilité

Possède un super-code d’accès (GPP): Structure identique aux clefs mécaniques

Le code B est l’accès le plus fort, et est individuel par secteur

Parmi les fonctions que nous fournissons: 2 P.M.E.

Il est impératif qu’aucun tiers ne puisse intervenir sur ces données. MICROTRONIC doit pouvoir garantir à 100% qu’aucun tiers ne puisse intervenir sur ces données. Ce n’est manifestement pas le cas chez LEGIC

structure Variable, par un principe en-tête / données, etc..

Fixe, par secteurs Si la partition est en bout de chaîne, le temps d’accès devient insupportable

Le dé-formatage devient inconvenant en cas de structure variable: laisse des «trous» de grandeur aléatoire

P.M.E. partagés

Il n’y a qu’un code d’accès

Code A offre un accès restreint (donc contrôlé)

Tient à garder le contrôle sur la structure de sa partition

Multi- application

Structure prédéfinie (et imposée) donc très restreint. Malheur à celui qui n’en tient pas compte

Libre à l’intérieur de la partition

La structure MICROTRONIC n’est pas intégrable dans une structure prédéfinie

Multi-propriétaire

Annonce jusqu’à 127 applications

Le MAD supporte max. 15 applications (40 sur la puce 4K)

De nouveau la confusion entre application et partition. Celle de MICROTRONIC supporte a elle seule une douzaine d’applications.

Page 6 of 14

Modification de partition

Impossible, par ce que figé une fois allouée

L’allocation / libération des secteurs est possible en tout temps

Une partition ne doit pas obligatoirement être contiguë, ça fait comme un disque dur non défragementé. Une partition peut être allongée / raccourcie après coup au besoin.

Effacement d’une partition

Impossible On peut restaurer une puce jusqu’à l’état vierge

Ceci prend une signification si le module se trouve dans une montre à 500 €.

Page 7 of 14

QU’EST-CE QUE MIFARE ? Il s’agit d’une puce pour applications sans contact ayant une capacité mémoire de 1 KByte, Sa fréquence de travail est de 13,56 MHz, la distance de lecture / écriture est de 8 cm au maximum lorsque le couple d’antennes lecteur/badge est optimalisé. L’emballage de ce module (donc puce + antenne) peut se présenter sous les formes les plus variées, p.ex.:

• Carte format ISO 7816 • Clé électronique (U-KEY) • Badge pour porte-clé • Module intégré dans une montre • Etc. …

Carte U-KEY mifare Montre Badge

Etant donné la variété des emballages possibles, le terme de puce sera utilisé par la suite de ce document. (et parfois le terme de module quand il s’agit de l’ensemble puce – antenne).

Cette puce peut accueillir différentes applications (multi-applications) qui peuvent être mises en place par différents fournisseurs (multi-propriétaires).

Elle garantit une séparation stricte entre les différentes applications ainsi qu’entre les différents propriétaires.

Elle offre même la possibilité de partager une zone précise d’une partition entre plusieurs propriétaires (p.ex. P.M.E non-propriétaire).

Elle garantit 100'000 cycles d’écriture ainsi qu’une pérennité des données sur au moins 10 ans.

Sa mémoire est divisée en secteurs, donc chacun a 2 codes d’accès propres (accès total ou restreint).

Les codes d’accès sont de 48 bits, donc: à 50 essais / seconde (de par la vitesse de transmission), il faut 180'000 années pour le casser.

MICROTRONIC calcule le code d’accès à chaque lecture/écriture pour chaque puce et chaque secteur. Cette méthode est préférable à un code fixe, qui pourrait être divulgué.

Il n’existe pas de super-code (qui permet un accès généralisé), ce qui fait que l’intimité des données est garantie.

Cette puce existe aussi en version 4 KB, notamment idéal pour des puces dites STATISTIQUES, pour le transfert de l’audit.

Page 8 of 14

STRUCTURE DE LA PUCE MIFARE® La puce (1 KB est divisée en 16 secteurs (64 bytes) chacun divisé en blocs (16 bytes).

Le secteur est l’unité d’allocation minimale pour un propriétaire. Le secteur 0 contient les données fabricant (no de série, ID fabricant, …) et le MAD (que nous verrons plus loin). Donc 15 secteurs (de 1 à 15) sont disponibles pour les différentes applications. Chaque secteur contient 3 blocs (blocs n° 0 à 2) utilisateur (espace pour les données) et un bloc de contrôle (bloc n° 3). Ce qui nous donne 15 x 3 x 16 = 720 bytes (5760 bit) de capacité nette sur cette puce. Le bloc 3 du secteur contient les deux codes d’accès (code A et code B), les droits d’accès au blocs (écriture, lecture ou aucun selon le code A ou B utilisé), ainsi qu’un byte à tout faire (general purpose byte GPB).

Donc les codes A et B ont chacun 6 bytes (48 bits). Les droits d’accès sont sur 12 bits, avec une copie de redondance (3 bytes). Le GPB est disponible comme donnée (souvent un identificateur). Les possibilités offertes par la technologie mifare® permettent un jeu de combinaisons assez étendu, par exemple, le 1er secteur de la partition MICROTRONIC: (Le droit d’écriture implique le droit de lecture)

Secteur propriétaire Code A

public Code B secret

Secteur 0 lecture écriture Secteur 1 - écriture Secteur 2 - écriture Secteur 3 - écriture

Secteur non propriétaire Code A

confidentiel Code B secret

Secteur 0 lecture écriture Secteur 1 écriture écriture Secteur 2 écriture écriture Secteur 3 - écriture

Page 9 of 14

A noter que le secteur 3 a un droit d’accès plus fin, et mifare® propose des droits d’accès encore plus spécialisés, mais ceci n’est pas du ressort de ce document. Le principe de la technologie mifare® est que le code B englobe tous les droits du code A, et ainsi le code B a les droits les plus étendus, ce qui signifie (en principe):

• Le fournisseur maîtrise le code B (et lui seul). • Pour une partition propriétaire, le fournisseur accorde par le code A des doits très

restreints (si pas carrément aucun). • Pour une partition non-propriétaire, le fournisseur accorde des droits plus étendus

par le code A mais celui-ci devient confidentiel entre le fournisseur et le(s) co-propriétaire(s).

Il existe même des configurations de codes d’accès qui permettent de figer à tout jamais le contenu d’un secteur (il suffit d’interdire l’accès en écriture sur les 4 blocs par le code B). La documentation de mifare® dit et répète à tout loisir que le fait d’écrire des données aléatoires dans le bloc 3 d’un secteur peut rendre celui-ci inutilisable de manière définitive et irréversible (rappel : il n’y a pas de super-code d’accès). La puce de 4K a une structure analogue, mais sur 40 secteurs: Secteurs 00 à 31: chacun 4 blocs. Secteurs 32 à 39: chacun 16 blocs. Là les secteurs 0 et 16 sont utilisés comme MAD, ce qui donne une capacité nette de 30 x 3 + 8 x 15 = 210 blocs à 16 bytes = 3360 bytes de capacité nette. A noter que la granularité de les droits d’accès est par bloc pour la puce de 1K et les secteurs 00-31 de la puce de 4K, et par groupe de 5 blocs pour les secteurs 32-39 de la puce de 4K. Pour en savoir plus:

• Description du chip mifare® 1 KB: http://www.semiconductors.philips.com/acrobat/other/identification/m001051.pdf

• Description du chip mifare® 4 KB: http://www.semiconductors.philips.com/acrobat/other/identification/m043531.pdf

Ces documents sont publics.

Page 10 of 14

MAD (Mifare Application Directory) Pour des puces multi-propriétaires la norme mifare préconise l’utilisation du secteur 0 comme MAD.

Il faut cependant préciser que le terme application directory est mal choisi et prête (surtout: a déjà prêté) à confusion. Il s’agit en fait d’une table de partition (partition table) à l’instar de celle d’un disque dur. Parce que si le fournisseur offre du multi-application, c’est à l’intérieur de sa partition qu’elle s’organise (et ceci d’une manière propre à chaque fournisseur).

Chaque propriétaire (= fournisseur) alloue un ou plusieurs secteurs (en fonction de son application, resp. de son système multi-applications) Le fournisseur doit demander l’attribution d’un ou plusieurs AID (en termes mifare®

Application ID, vu le problème de vocabulaire précité, à interpréter comme: furnisher ID). C’est mifare® qui gère l’attribution des AID. MICROTRONIC a l’AID (propriétaire) 3809 (hex). Le MAD (comme nous avons vu précédemment) occupe le secteur 0 de la puce, avec la structure suivante:

No de série Données fabricant (lecture seule) CRC CPS AID 1

AID 15 Code A (public) Droits d’accès GPB Code B (secret)

• Les données fabricant sont en lecture seule (indépendamment des droits

d’accès). • Le CRC (Cyclic Redundancy Check) se calcule sur les 31 bytes restants de cet

ensemble de deux secteurs (MICROTRONIC tient l’algorithme à disposition sur demande).

• Le CPS (Card Publisher Sector) indique le secteur contenant l’info du publicateur de la puce (en format texte brut), l’AID correspondant doit être mis à 0004 (hex) A noter que la présence de ce secteur n’est pas obligatoire. (MICROTRONIC, ne l’alloue pas, sauf en cas de demande expresse)

• Les AID indiquent à quel fournisseur (propriétaire) appartient le secteur correspondant (donc AID 1 = propriétaire du secteur 1, …, AID 15 = propriétaire du secteur 15). Les AID à 0000 signalent que les secteurs correspondants sont encore libres pour une allocation future.

• Le code A est public: (hex) A0 A1 A2 A3 A4 A5 (accès en lecture seule). • Les droits d’accès: (hex) 77 78 88 (Lecture par code A, lecture/écriture par

code B). • Le GPB (General Purpose Byte) contient (hex) C1 pour une puce 1 KB et C2 pour

une puce 4K (indiquant que le secteur 16 contient le MAD pour les secteurs 17-39).

• Le code B est secret (voir cependant les chapitres suivants) (accès en lecture/écriture).

Page 11 of 14

Un lecteur va donc lire en premier le MAD, et trouver là où sont le(s) secteur(s) de la partition qui le concerne (donc, pour MICROTRONIC: 3809) S’il les trouve, il continue, sinon, cette puce ne contient pas de partition MICROTRONIC (ce qui déclenche une erreur adéquate). Pour les puces avec application étendue (biométrie, puces STATISTIQUE, …), MICROTRONIC alloue deux partitions distinctes, l’une formatée U-KEY (AID 3809) et l’autre extended MICROTRONIC (AID 4889). Pour ces utilisations-là, MICROTRONIC alloue tout l’espace disponible de la puce. Donc par exemple, une puce qui contient 3 propriétaires:

No de série Données fabricant (lecture seule) 01 01 0004 0207 4807 3809 3809 3809 0

0 0 0 0 0 0 0 0 Code A (public) Droits d’accès GPB Code B (secret)

• Secteur 1: AID 0004: publicateur de la puce. • Secteur 2: AID 0207: Junghans Uhren GmbH • Secteur 3: AID 4807: Interflex Datensysteme GmbH. • Secteur 4-6: AID 3809: MICROTRONIC. • Les autres secteurs (AID 0000) sont encore libres.

Malheureusement, la définition du MAD par mifare® s’arrête là. Les déficits de cette spécification ont été comblés a l’initiative de Junghans Uhren GmbH sous la forme de la convention ALL-IN-1-CARD, que nous verrons au prochain chapitre. Pour en savoir plus:

• Description du MAD (et MAD2 pour la puce 4 KB): http://www.semiconductors.philips.com/acrobat/other/identification/m001823.pdf

• Liste actuelle des AID enregistrés: http://www.semiconductors.philips.com/acrobat/other/identification/mad102002.pdf (attention: le nom du fichier .pdf peut évoluer).

Ces documents sont publics.

Page 12 of 14

ALL-IN-1-CARD Comme signalé au chapitre précédent, la norme MAD de mifare® est incomplète et de par là présente d’importants déficits (ce qui présente de graves problèmes au fournisseur qui doit allouer une partition après coup), notamment:

• Le code B (indispensable pour ajuster le MAD) n’etant pas défini, chaque émetteur de puces (c à d. celui qui alloue la 1ère partition) se choisit un code B qui lui est propre, ce qui fait que le fournisseur qui veut allouer des secteurs par après se trouve devant un sérieux problème pour retrouver, négocier et gérer ce code.

• Le devenir des secteurs restés libres, à savoir si on les laisse en à l’état originel (appelé configuration de transport) ou si on les initialise à un état précis) n’est pas défini non plus.

Pour pallier à ces déficits, la société Junghans Uhren GmbH * a en collaboration avec notamment Philips, Infineon, Interflex, Kaba, IBM, HEWI, effeff, …, pris l’initiative ce combler ces déficits, par la convention

Cette convention englobe la spécification du MAD et, en plus, précise que:

• Le code B du MAD (confidentiel) est le même pour tout le monde, et peut être requis chez Junghans Uhren GmbH (http://www.all-in-1-card.com/) contre la signature d’un accord de confidentialité et de respect et d’observation de ces normes et conventions.

• L’émetteur de la puce initialise tous les secteurs libres avec 0 partout dans les blocs 0 à 2 et les Codes A et B ainsi que les droits d’accès identiques à ceux du MAD.

• Chaque propriétaire doit être en mesure d’enlever sa partition (c a d. de restaurer les secteurs que sa partition occupaient comme libres, avec les codes et droits d’accès ad hoc, et de remettre les entrées correspondantes du MAD à zéro).

• Donc interdictions de mettre en place des codes d’accès figés (qui interdiraient une restauration du secteur),

L’utilisation et l’obtention de cette convention (ainsi que de son code B) est ouverte. La société Junghans Uhren GmbH propose cependant une licence (payante) qui fait du fournisseur un partenaire officiel ALL-IN-1-CARD. Cette convention apporte des avantages non négligeables, notamment:

• Le formateur ne doit connaître que les codes de transport (publics), ainsi que le code B de ALL-IN-1-CARD pour initialiser ou repartitionner ses puces.

• Le formatteur n’as pas à gérer toute une pléthore de codes B possibles. • Le fournisseur n’as pas à entreprendre de démarches (longues, difficiles et

coûteuses) pour trouver l’émetteur de la puce (il faut passer par client -> revendeur -> fournisseur).

• Sans parler la négociation pour obtenir le code B (cher !)… • En plus chacun sait que chacun a signé les règles du jeu.

Ces avantages ont convaincu MICROTRONIC a’adopter cette convention, et de la promouvoir. * (à noter que Junghans Uhren GmbH, l’initiateur de ALL-IN-1-CARD, a aussi considéré LEGIC avant de se fixer pour mifare®).

Page 13 of 14

U-KEY ==> MIFARE®

La partition MICROTRONIC sur la puce mifare® est organisée de manière à supporter les 21 blocs logiques précités ainsi que l’en-tête (contenant les fonctions et attributs, ainsi que le code pays et le no utilisateur), ce qui a permis de transposes toutes les applications existantes (et riches de leur expérience) 1 à 1 sur mifare®.

Pour tout le volume d’un U-KEY, la partition occupe 5 secteurs (1/3 de la puce). Pour une application se limitant à un seul P.M.E, une partition de 3 secteurs (1/5 de la puce) est suffisante.

Donc, nous avons vu que tout de know-how (notamment dans le domaine de la D.A.) a pu être transposé 1:1 sur mifare® (au point que l’utilisateur, en allant prendre son café, ne remarque même pas que la nature du support de données a changé). Lors de cette transposition, MICROTRONIC a eu à résoudre trois problèmes qui sont inhérents au système sans contact (donc non spécifiques à mifare®), à savoir :

• L’existence de «trous» dans le champ de l’antenne, surtout pour les puces dont la fréquence de résonance est hors tolérance (le D.A. croit avoir affaite a deux introductions de puces distinctes).

• Le retrait inopiné de la puce pendant un cycle d’écriture (risque d’effacement de tout un bloc).

• La puce entre lentement dans le lecteur, et essaie de s’initialiser alors que le champ est encore insuffisant (la puce reste «morte» jusqu’on la retire et la réinsère)

Ces trois problèmes ont été résolus par des algorithmes spécifiques. Du fait de la triple capacité par rapport au U-KEY, des applications plus étendues sont possibles: Contrôle d’accès avec données bio métriques (l’empreinte digitale tient sur la puce). U-KEY STATISTIQUE pour le transfert d’audit (résumé C.A avec la puce de 1 KB, complet avec la puce de 4 KB). L’allocation des blocs logiques est fixe sur le U-KEY. Pour la partition U-KEY mifare®, l’allocation est glissante (seuls les blocs ouverts occupent de la place). La partition MICROTRONIC est organisée de manière analogue au formatage d’une disquette. Ce qui autorise au client une flexibilité du comment il veut exploiter cette puce:

• 1 secteur 1 bloc logique • 2 secteurs 7 blocs logiques • 3 secteurs 12 blocs logiques • 4 secteurs 17 blocs logiques • 5 secteurs 23 blocs logiques

MICROTRONIC propose actuellement les variantes 3 et 5 secteurs. Pour les puces spéciales (STATISTIQUE, biométrie, …), MICROTRONIC occupe toute la puce avec 2 partitions distinctes:

• Partition U-KEY (1 ou 3 secteurs) • Partition étendue MICROTRONIC (le reste)

MICROTRONIC garantit les modules qu’elle livre. Cependant, la majorité des clients ont déjà leurs modules.

Page 14 of 14

Dans ce cas, MICROTRONIC demandera une douzaine d’exemplaires à des fins de mesure (de la fréquence de résonance, entre autres…) et d’analyse de la faisabilité de la mise en place de la partition MICROTRONIC. Malheureusement, la tendance est que les clients sont enclins à acheter des modules à quatre sous, en oubliant que leur qualité vaudra aussi quatre sous. Comme les premières applications seront de mode lecture seule (accès, timbrage, identification, …), ce problème ne se fera pas sentir de premier abord, Mais dès l’implantation d’applications en mode écriture/lecture (telles que P.M.E.), des surprises peuvent surgir …

LE FORMATAGE On entend par formatage la mise en place (certains appellent cette procédure activation) de la partition MICROTRONIC sur la puce. Le formateur reconnaît automatiquement s’il a affaire à un module vierge ou pré-formatée (par un fournisseur précédent), le temps requis est de:

• env. 1.4 secondes pour formater un module vierge (initialisation complète) • env. 0.5 secondes pour la mise en place la partition sur un module déjà formaté.

MICROTRONIC propose deux méthodes de formatage:

• Par l’éditeur MDSedit, en copiant un module existant avec formatage au passage (requiert un PC connecté au lecteur).

• Au travers d’un module fait modèle, qu’on met dans le lecteur (cette fois-ci, le lecteur est indépendant, mais requiert un afficheur), toutes les modules insérés subséquemment en seront des copies conformes.

Dans les deux cas, le no utilisateur (entre autres) est incrémenté à chaque formatage. Si la méthode module modèle est utilisée, il faut insérer celui-ci en fin d’opération (afin que le no utilisateur soit remis à jour sur ce dernier). Chaque formatage consomme une unité du crédit de formatage. L’alimentation de ce crédit des fait au moyen d’un module livré par MICROTRONIC (une solution par e-mail est à l’étude). Le lecteur est aussi capable de dé-formater un module. Ceci prend une signification si le module est intégré dans une montre qui est (très) chère, et que l’employé quitte l’entreprise. Le dé-formatage se procède par le lecteur en communication avec un PC, sur lequel tourne MDSedit ou une application client par le biais de M-Protocol. Le dé-formatage ne consomme pas de crédit (par contre, un re-formatage, oui). Le module dé-formaté se retrouve avec la partition MICROTRONIC enlevée, et au cas où celle-ci était l’unique partition, à l’état d’un nodule formaté ALL-IN-1-CARD vide.


Recommended