Está en la página 1de 8

Master MOCS-SEM

ED 1 : Interaction avec la carte puce selon les protocoles ISO 7816-3 et ISO 7816-4

Samia BOUZEFRANE http://cedric.cnam.fr/~bouzefra/pfsem10-11.html

Exemple de la carte SIM

Master MOCS-SEM

Partie I : Introduction
1. Introduction Les normes ISO 7816 Idenfication cards Integrated circuit cards with contacts ont t publies par lorganisation internationale de normalisation (ISO, International Organisation for Standardisation). Cest le plus important standard dfinissant les caractristiques des cartes puce qui fonctionnent avec un contact lectrique. Sachant que 15 normes sont proposes pour les cartes contact, nous dcrivons brivement ici uniquement les 7 premires normes. 1.1 ISO 7816-1 Cette norme dfinit les caractristiques physiques des cartes puce contact : la gomtrie, la rsistance, les contacts, etc. 1.2 ISO 7816-2 Cette norme spcifie le dimensionnement physique (extrieur) des contacts de la puce. Deux des huit contacts rservs une utilisation future (RFU) sont redfinis pour lutilisation USB dans la norme ISO 7816-12. 1.3 ISO 7816-3 Cette norme dfinit linterface lectrique et les protocoles de transmission : - les protocoles de transmission (TPDU, Transmission Protocol Data Unit) : T=0 : protocole orient octet, T1 : protocole orient paquet, T=14 : rserv pour les protocoles propritaires. - la slection dun type de protocole. - la rponse un reset (ATR, ou Answer To Reset en anglais) qui correspond aux donnes envoyes par la carte immdiatement aprs la mise sous tension. - les signaux lectriques, tels que le voltage, la frquence dhorloge et la vitesse de communication. 1.4 ISO 7816-4 Cette norme vise assurer linteroprabilit des changes. Elle dfinit les messages APDU (Application Protocol Data Units), par lesquels les cartes puce communiquent avec le lecteur. Les changes seffectuent en mode client-serveur, le terminal ayant toujours linitiative de communication. 1.5 ISO 7816-5 Cette norme dfinit le systme de numrotation et les procdures denregistrement et dattribution des identifiants des applications (AID, ou Application IDentifier). Un unique AID est associ chaque application et certains fichiers sur la carte. Ils sont reprsents par des tableaux doctets de taille allant de 5 16. Les cinq premiers octets reprsentent le numro denregistrement du fournisseur dapplication (RID, Registered Application Provider IDentifier en anglais) qui est

Master MOCS-SEM

attribu par la Copenhagen Telephone Company Ltd ou lISO. Ils sont suivis par lidentifiant optionnel PIX (Proprietary Application Identifier eXtension) dune longueur allant jusqu 11 octets. Lidentifiant RID est le mme pour le paquetage et l'applet, mais le PIX doit tre diffrent. 1.6 ISO 7816-6 Cette norme spcifie des lments de donnes inter-industrie pour les changes, tels que le numro du porteur de carte, sa photo, sa langue, la date dexpiration, etc. 1.7 ISO 7816-7 Cette norme dfinit les commandes inter-industrie pour langage dinterrogation de carte structure (SCQL). 2. ATR (Answer To Reset) dfini dans lISO 7816-3 Ds que la carte est mise sous tension, elle envoie un message de rponse dinitialisation appel ATR, il peut atteindre une taille maximale de 33 octets. Il indique lapplication cliente les paramtres ncessaires pour tablir une communication avec elle. Il fournit un nombre vari de paramtres lis la carte et au protocole de transmission utilis : Le protocole de transport ; Taux de transmission des donnes ; Numro de srie de la puce Le premier octet not TS ="3F" pour convention indirecte ou "3B" pour convention directe. 3. Echange de commandes avec le lecteur de carte puce tel que dfini dans l ISO 7816-4 La communication entre lhte et la carte est half-duplex. Elle se fait laide de paquets appels APDU (Application Protocol Data Units) en respectant le protocole de lISO 7816-4. Un APDU contient une commande ou une rponse. Le mode Matre/Esclave est utilis. Ainsi la carte joue un rle passif et attend une commande APDU partir de lhte. Elle excute linstruction spcifie dans la commande et retourne une rponse APDU.

Master MOCS-SEM

Figure 1 : Le modle de communication de la carte puce

3.1. Format des commandes APDU Commande APDU Entte obligatoire Corps optionnel P1 CLA INS P2 Lc Data field Le CLA (1 octet): Classe dinstructions : indique la structure et le format pour une catgorie de commandes et de rponses APDU. INS (1 octet): code dinstruction: spcifie linstruction de la commande. P1 (1 octet) et P2 (1 octet): paramtres de linstruction. Lc (1 octet): nombre doctets prsents dans le champ donnes de la commande. Data field (octets dont le nombre est gal la valeur de Lc): une squence doctets dans le champ donnes de la commande.

3.2. Format des rponses APDU Rponse APDU Corps optionnel Partie obligatoire Data field SW1 SW2 Data field (longueur variable): une squence doctets reus dans le champ donnes de la rponse. SW1 (1 octet) et SW2 (1 octet): Status words (Mots dtat) tat de traitement par la carte.

Master MOCS-SEM

4. Exemples de cartes Le tableau suivant donne des exemples de commandes APDU utilises dans le monde de la carte. Champ de la commande CLA INS Valeurs BC = cartes de crdit franaises, cartes vitales franaises, A0 = cartes SIM (tlphonie) 20 = prsentation du PIN, 40 = validation (ratification du code PIN) B0 = Lecture B2 = Lecture de record D0 = Ecriture DC = Ecriture de record A4 = Slection du rpertoire (directory) C0 = Demander une rponse (get an anwer) paramtres contenant des adresses lire longueur prvue pour la rponse ou bien longueur de largument delinstruction. contient LEN octets (octets crire, PIN vrifier, etc.)

P1, P2 LEN ARG

La rponse APDU sert accuser rception la commande APDU envoye par le terminal. Ainsi, la carte rpond en envoyant le code instruction INS, suivi de donnes de longueur LEN en terminant par SW1 et SW2 (0x90 0x00 lorsque la commande sest droule avec succs). En cas dchec, seuls les champs SW1 et SW2 seront envoys au terminal avec les codes derreur suivants : 0x6E 0x00 0x6D 0x00 0x6B 0x00 0x67 0x00 0x98 0x04 0x98 0x08 0x98 0x40 ... CLA error INS error P1, P2 error LEN error Bad PIN Unauthorized Access Card blocked

Master MOCS-SEM

Partie II: Interaction avec la carte SIM Les premires commandes APDUs en utilisant un outil de script PC/SC

Exploration de la carte SIM Lobjectif de ce TP est dexplorer larborescence de fichiers dune carte puce. Nous avons choisi dutiliser une carte SIM car son arborescence de fichiers est trs riche. Dautre part, les informations lire ne sont pas toutes confidentielles. Le TP propos ici sinspire de larticle Pascal Urien, La carte SIM ou la scurit du GSM par la pratique paru dans le magazine MISC, hors-srie, Cartes puce, nov/dc. 2008. Ce TP sera ralis : Dans un premier temps, laide dun script qui interroge la carte en envoyant des commandes APDUs. Dans un deuxime temps, laide dun programme Java qui tourne sur le terminal et qui interroge la carte.

Sous lenvironnement Windows : Installer le driver du lecteur de carte SIM (GENERIC2KXP USB Smart Card Reader) laide du CD dinstallation. Tlcharger le script partir de ladresse suivante : http://www.springcard.com/download/find.php?file=gscriptor gscriptor : script Perl servant envoyer des commandes en utilisant une interface graphique.

Exercice :
Le tlphone portable, ds quil est mis sous tension, slectionne le rpertoire GSM, dtecte si la prsentation dun code PIN est ncessaire, et prsente cette valeur via la commande VERIFY. Ensuite, le portable lit le fichier EF-Phase (FID= 6FAE) qui contient le numro de version fonctionnel de la carte. Aprs cela, le tlphone peut crire ou lire diffrents fichiers. Cest ce que nous allons faire dans cet exercice.

Raliser la suite des commandes suivantes en utilisant le tableau des commandes APDU donn ci-dessous. - Slection du rpertoire GSM

Master MOCS-SEM

Prsentation du code PIN Lecture de lIMSI Lecture des paramtres TMSI et LAI Excution de lalgorithme dauthentification du GSM Mise jour du fichier EF-Kc Lecture de la table des services SIM (EF-SIM-Service-Table) Lecture et criture des SMS dans la SIM Lecture de lannuaire des numros, ADN
INS A4 F2 B0 D6 B2 DC A2 32 20 24 26 28 2C 04 44 88 FA C0 10 C2 12 14 P1 00 00 Offset high Offset high Record number Record number 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 P2 00 00 Offset low Offset low Mode Mode Type/mode 00 CHV number CHV number 01 01 P3 02 Length Length Length Length Length Length 03 08 10 08 08 10 00 00 10 00 Length Length Length Length Length

COMMANDE SELECT STATUS READ BINARY UPDATE BINARY READ RECORD UPDATE RECORD SEEK INCREASE VERIFY CHV CHANGE CHV DISABLE CHV ENABLE CHV UNBLOCK CHV INVALIDATE REHABILITATE RUN GSM ALGORITHM SLEEP GET RESPONSE TERMINAL PROFILE ENVELOPE FETCH TERMINAL RESPONSE

00 00 00 00 00 00 00 00 00

Master MOCS-SEM

Bibliographie : Pascal Urien, La carte SIM ou la scurit du GSM par la pratique , Magazine MISC hors-srie carte puce, dcouvrez leurs fonctionnalits et leurs limites, novembre/dcembre 2008, pages 26-37. Technology for smart cards: architecture and programmers guide, Zhiqun Chen, Addison Wesley, sept. 2000 Les Cartes puce: thorie et mise en uvre, Christian Tavernier, 2me dition, Ed. Dunod, 2007. Pierre Paradinas, Support de cours sur Java Card , UV de Systmes Enfouis et Embarqus, Samia Bouzefrane, cours cartes puce, http://cedric.cnam.fr Wolfgang Rankl and Wolfgang Effing, Smart Card Handbook, 3rd Edition, John Wiley & Sons Ed., 2003, ISBN 0-470-85668-8.

También podría gustarte