microinformatique une basiccard

7
MICRO INFORMATIQUE 14 Elektor 4/2002 La carte Ă  puce « SIM » (Subscriber’s IdentiïŹ- cation Module) est le vĂ©ritable « sĂ©same » indispensable Ă  l’utilisation de tout tĂ©lĂ©phone portable GSM. Contenant tout Ă  la fois les identifiants secrets et les donnĂ©es person- nelles de l’utilisateur, elle est Ă©mise par un opĂ©rateur de tĂ©lĂ©phonie mobile, qui la conïŹe Ă  son client mais en conserve gĂ©nĂ©ralement la propriĂ©tĂ©. Une carte Ă  puce Ă  systĂšme d’exploitation ouvert, telle que la BasicCard, peut toutefois ĂȘtre transformĂ©e en carte SIM « de dĂ©velop- pement », autorisant une foule d’expĂ©rimen- tations en toute indĂ©pendance vis-Ă -vis des opĂ©rateurs. La BasicCard « Professionnelle » Depuis le lancement, en 1998, de la BasicCard « compact », ZeitControl a progressivement introduit des versions plus puissantes, dites « enhanced », puis tout rĂ©cemment « profes- sional ». Avec la ZC 4.1, c’est une Ă©tape majeure qui vient d’ĂȘtre franchie, puisqu’il s’agit de la toute premiĂšre BasicCard supportant le pro- tocole « T=0 ». Rappelons, en effet, que toutes les versions prĂ©cĂ©dentes de la BasicCard fonctionnaient exclusivement en protocole « T=1 », particu- liĂšrement populaire en Allemagne. Comme la spĂ©ciïŹcation GSM 11.11 de l’ETSI impose le protocole « T=0 », d’ailleurs de trĂšs loin le plus courant, pour les cartes SIM, il n’était jusqu’à prĂ©sent pas possible de faire fonctionner une BasicCard dans un tĂ©lĂ©phone por- table. Il faut savoir que la BasicCard « pro- fessional » est Ă©quipĂ©e de l’une des « puces » les plus performantes d’ATMEL, la AT90SC3232C. Avec 32 Koctets de mĂ©moire Flash pour le systĂšme d’exploitation, 32 Koctets d’EEPROM pour les pro- grammes « utilisateur », 1 Koctet de RAM, et un processeur RISC « AVR » secondĂ© par un coprocesseur cryp- tographique, ce composant parfaite- ment adaptĂ© Ă  la production de cartes SIM « Phase 2+ » et « SIM Toolkit », n’est guĂšre devancĂ© que par sa variante AT90SC6464C, prĂ©- vue notamment pour l’UMTS. C’est dire qu’il s’agit d’une puce de Une BasicCard Pour tĂ©lĂ©phones portables GSM DĂ©couvrez les secrets de votre tĂ©lĂ©phone GSM Patrick Gueulle Une carte Ă  puce du type BasicCard programmĂ©e constitue le « nerf » de cet article. Nous allons voir comment utiliser cet « Ă©mulateur de carte SIM » pour tester les principales fonctions accessibles par le « menu » nor- mal et le « menu » de maintenance de certains portables GSM.

Upload: others

Post on 08-May-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MICROINFORMATIQUE Une BasicCard

MICROINFORMATIQUE

14 Elektor 4/2002

La carte Ă  puce « SIM » (Subscriber’s Identifi-cation Module) est le vĂ©ritable « sĂ©same »indispensable Ă  l’utilisation de tout tĂ©lĂ©phoneportable GSM. Contenant tout Ă  la fois lesidentifiants secrets et les donnĂ©es person-nelles de l’utilisateur, elle est Ă©mise par unopĂ©rateur de tĂ©lĂ©phonie mobile, qui la confieĂ  son client mais en conserve gĂ©nĂ©ralementla propriĂ©tĂ©.Une carte Ă  puce Ă  systĂšme d’exploitationouvert, telle que la BasicCard, peut toutefoisĂȘtre transformĂ©e en carte SIM « de dĂ©velop-pement », autorisant une foule d’expĂ©rimen-tations en toute indĂ©pendance vis-Ă -vis desopĂ©rateurs.

La BasicCard « Professionnelle »Depuis le lancement, en 1998, de la BasicCard« compact », ZeitControl a progressivementintroduit des versions plus puissantes, dites« enhanced », puis tout rĂ©cemment « profes-sional ».Avec la ZC 4.1, c’est une Ă©tape majeure quivient d’ĂȘtre franchie, puisqu’il s’agit de latoute premiĂšre BasicCard supportant le pro-tocole « T=0 ».Rappelons, en effet, que toutes les versionsprĂ©cĂ©dentes de la BasicCard fonctionnaientexclusivement en protocole « T=1 », particu-liĂšrement populaire en Allemagne.Comme la spĂ©cification GSM 11.11 de l’ETSIimpose le protocole « T=0 », d’ailleurs de trĂšs

loin le plus courant, pour les cartesSIM, il n’était jusqu’à prĂ©sent paspossible de faire fonctionner uneBasicCard dans un tĂ©lĂ©phone por-table.Il faut savoir que la BasicCard « pro-fessional » est Ă©quipĂ©e de l’une des« puces » les plus performantesd’ATMEL, la AT90SC3232C.Avec 32 Koctets de mĂ©moire Flashpour le systĂšme d’exploitation,

32 Koctets d’EEPROM pour les pro-grammes « utilisateur », 1 Koctet deRAM, et un processeur RISC « AVR »secondĂ© par un coprocesseur cryp-tographique, ce composant parfaite-ment adaptĂ© Ă  la production decartes SIM « Phase 2+ » et « SIMToolkit », n’est guĂšre devancĂ© quepar sa variante AT90SC6464C, prĂ©-vue notamment pour l’UMTS.C’est dire qu’il s’agit d’une puce de

Une BasicCardPour téléphones portables GSMDécouvrez les secrets de votre téléphone GSM

Patrick Gueulle

Une carte à puce du type BasicCard programmée constitue le « nerf » decet article. Nous allons voir comment utiliser cet « émulateur de carteSIM » pour tester les principales fonctions accessibles par le « menu » nor-mal et le « menu » de maintenance de certains portables GSM.

Page 2: MICROINFORMATIQUE Une BasicCard

MICROINFORMATIQUE

154/2002 Elektor

tĂ©lĂ©phones verrouillĂ©s (« SimlockĂ©s ») parl’opĂ©rateur qui en a sans doute « subven-tionnĂ© » la fourniture, et qui ne peuvent nor-malement fonctionner qu’avec leur carte SIMd’origine.De mĂȘme, notre carte donnera souvent accĂšsaux menus « cachĂ©s » des tĂ©lĂ©phones (notam-ment de marque Motorola), rĂ©servĂ©s en prin-cipe aux seuls techniciens habilitĂ©s.Il n’en faut pas davantage, par exemple, pourobtenir l’affichage d’un code de sĂ©curitĂ© mal-encontreusement oubliĂ©, ou pour activer desfonctions de repĂ©rage des relais des diffĂ©rentsrĂ©seaux disponibles en un lieu donnĂ©.Mais il y a mieux : la carte contient en effetsuffisamment de mĂ©moire EEPROM pour pou-voir enregistrer, dans un fichier interne,toutes les commandes que lui envoie le tĂ©lĂ©-phone, ou n’importe quel autre « terminal »dans lequel on voudra bien l’introduire (parexemple un PC exĂ©cutant une application degestion de cartes SIM).TĂ©lĂ©dĂ©chargĂ© ensuite par un utilitaire appro-priĂ©, ce fichier « LOG » pourra ĂȘtre analysĂ© Ă loisir, Ă  des fins didactiques ou de diagnostic.Enfin, notre carte est compatible « ProactiveSIM », ce qui signifie que, contrairement Ă une simple carte SIM de phase 1 ou 2, elle nese contente pas d’exĂ©cuter les ordres que luiadresse le tĂ©lĂ©phone : elle peut, de sa propreinitiative, prendre le contrĂŽle de celui-ci, etnotamment de son afficheur ou de son Ă©cou-teur.Une petite application indĂ©pendante a ainsipu ĂȘtre implantĂ©e, qui ne s’exĂ©cute que si letĂ©lĂ©phone est compatible « phase 2+ ».Moyennant quoi, l’écran affiche, au boutd’une minute environ, un mot hexadĂ©cimal (le« Terminal profile ») dont le dĂ©codage fournitun diagnostic dĂ©taillĂ© des possibilitĂ©s « SIMToolkit » du mobile.Par la suite, la carte s’immiscera toutes lesminutes dans le fonctionnement du tĂ©lĂ©phone(sans pour autant le perturber le moins dumonde) afin de lui faire afficher un court ins-tant « BasicCard » en diffusant une petitemĂ©lodie.

Entrons dans le dĂ©tailNotre carte SIM de dĂ©veloppement reconnaĂźt,et c’est la moindre des choses, la totalitĂ© descommandes normalisĂ©es (voir tableau 1)qu’un mobile GSM est susceptible de luienvoyer dans l’état actuel de la normalisation(phases 1, 2, et 2+).ReconnaĂźtre ne signifie pas nĂ©cessairementexĂ©cuter, en particulier lorsqu’il s’agit decommandes liĂ©es aux codes confidentiels.MĂȘme si la carte ignore purement et simple-ment telle ou telle commande, elle y rĂ©pondratoujours par un compte-rendu permettant la

haut de gamme, dont l’originalitĂ©majeure est d’ĂȘtre entiĂšrement rĂ©ali-sĂ©e en technologie « FlashEEPROM ».Le systĂšme d’exploitation embarquĂ©est ainsi tĂ©lĂ©chargĂ© lors de la per-sonnalisation de la carte, et non plus« masquĂ© » dans une zone de ROMlors de la fabrication de la puce, cequi est infiniment plus souple.Dans une carte SIM conventionnelle,c’est gĂ©nĂ©ralement un systĂšme d’ex-ploitation dĂ©diĂ© qui est programmĂ©dans cette zone.La partie EEPROM accueille alors lesystĂšme de fichiers normalisĂ© GSM11.11, et s’il s’agit d’une SIM « Phase2+ », d’éventuelles applications« SIM Toolkit » (souvent des« applets » Java) implantĂ©es parl’opĂ©rateur ou par un fournisseur deservices (banque, par exemple).Dans une BasicCard, le systĂšmed’exploitation est de type « ouvert »,tout comme celui des Javacard,Multos, et autres Windows forsmart cards.Il s’agit, en l’occurrence, d’un inter-prĂ©teur permettant d’écrire les pro-grammes applicatifs dans ce lan-gage si populaire qu’est le BASIC,que l’on dirait d’ailleurs « taillĂ© surmesures » pour les cartes Ă  puce.Une fois mises au point Ă  l’aide d’unoutil de dĂ©veloppement performantmais nĂ©anmoins gratuit

(http://www.basiccard.com), lesapplications sont tĂ©lĂ©chargĂ©es dansla zone EEPROM.Dans le prĂ©sent projet, un pro-gramme BASIC de prĂšs de 450 lignesoccupe environ 17% de la zoneEEPROM, le solde Ă©tant partagĂ©entre un systĂšme de fichiers compa-tible GSM 11.11 et un gros fichier« log », dans lequel la carte pourraenregistrer, sur demande, l’histo-rique des commandes qu’elle rece-vra de l’extĂ©rieur.

Une carte SIM de dĂ©veloppementLa vocation d’une carte SIM dedĂ©veloppement n’est Ă©videmmentpas de tĂ©lĂ©phoner (encore qu’enprincipe, elle puisse tout de mĂȘmepermettre d’appeler le 112), maisplutĂŽt de rendre possibles toutes lesmanipulations normalement irrĂ©ali-sables avec une carte Ă©mise par unopĂ©rateur.Dans une « vraie » carte SIM, eneffet, les fichiers les plus « sen-sibles » sont protĂ©gĂ©s, en Ă©criture etparfois mĂȘme en lecture, pas descodes « administrateur » connus seu-lement de l’opĂ©rateur qui l’a Ă©mise.Dans le cadre de ce projet, tous lescodes confidentiels (y compris les« PIN » de l’utilisateur) sont dĂ©sacti-vĂ©s une bonne fois pour toutes, cequi libĂšre Ă  100% l’accĂšs Ă  l’en-semble des fichiers existants.On se gardera bien d’en dĂ©duire qu’ilsuffirait de recopier les identifiantsd’une carte SIM valide, pour en crĂ©erun « clone » utilisable.Deux « garde-fous » infranchissablesĂ©vitent en effet que notre projet nepuisse ĂȘtre dĂ©tournĂ© vers des appli-cations frauduleuses :– Tout d’abord, l’algorithme crypto-graphique (A3/A8) assurant l’au-thentification des cartes SIM au tra-vers des rĂ©seaux GSM est ici pure-ment factice, et il ne saurait ĂȘtrequestion de le modifier sans avoiraccĂšs au code source.– De plus, cloner une carte suppose-rait que l’on recopie, Ă  l’identique, laclef secrĂšte qui rĂ©side dans une zonede l’original rigoureusement ver-rouillĂ©e en lecture.En revanche, l’écriture de valeursbien particuliĂšres dans certainsfichiers peut permettre, par exemple,d’utiliser pour nos manipulations des

Tableau 1.Le « dictionnaire » descommandes normalisées GSM 11.11.

20h : verify CHV24h : change CHV26h : disable CHV28h : enable CHVC0h : get response32h : increase04h : invalidateB0h : read binaryB2h : read record44h : rehabilitate88h : run GSM algorithmA2h : seekA4h : selectFAh : sleepF2h : status2Ch : unblock CHVD6h : update binaryDCh : update record10h : terminal profileC2h : envelope12h : fetch14h : terminal response

Page 3: MICROINFORMATIQUE Une BasicCard

poursuite de la « session GSM » en cours.Si, par exemple, on demande l’activation ducode PIN, la carte rĂ©pondra « bonne exĂ©cu-tion » (9000h) mais ne rĂ©clamera pas, pourautant, ce code par la suite.De mĂȘme, si on tente de modifier le PIN, lacarte rĂ©pondra que l’opĂ©ration est exĂ©cutĂ©e,mais continuera imperturbablement Ă  consi-dĂ©rer n’importe quel code comme Ă©tant le bon.Ce stratagĂšme permet, et c’était prĂ©cisĂ©mentle but recherchĂ©, de jouer librement avec tousles fichiers de la carte.Cela Ă©tant, il est indispensable de prĂ©ciser icicomment est structurĂ©e une commande GSM.Non pas tant pour en construire de toutespiĂšces (ce sera plutĂŽt le rĂŽle de logiciels spĂ©-cialisĂ©s), mais pour pouvoir interprĂ©ter, lemoment venu, le contenu de ce fameux fichier« log ».Les cartes SIM fonctionnant en protocole« T=0 », toute commande destinĂ©e Ă  la cartecommence par cinq octets d’en-tĂȘte (header): CLA INS P1 P2 LEN.CLA est la « classe ISO » de la commande,toujours Ă©gale Ă  A0h pour une carte SIM.INS est un code opĂ©ratoire appartenant Ă  laliste du tableau 1.P1 et P2 sont deux paramĂštres dont la signi-fication varie d’un code opĂ©ratoire Ă  l’autre,et qui restent trĂšs souvent, par dĂ©faut, Ă  00h.LEN, enfin, indique la longueur du bloc dedonnĂ©e qui suit, Ă  moins qu’il n’y en ait pas(LEN = 00h).Il faut distinguer les « commandes entrantes »

(mobile vers carte), dont le bloc dedonnĂ©es est Ă©mis Ă  la suite de LEN,des « commandes sortantes » (cartevers mobile) oĂč la carte est priĂ©e derenvoyer LEN octets de donnĂ©es.Dans quasiment tous les cas, la carte

retourne au minimum deux octets de« compte-rendu » (SW1 et SW2) qui,lorsque tout s’est bien passĂ©, sontrespectivement 90h et 00h.Lorsque la carte a des donnĂ©es Ă renvoyer en rĂ©ponse Ă  une com-

MICROINFORMATIQUE

16 Elektor 4/2002

Tableau 2.Les fichiers disponibles dans notre carte.

RĂ©pertoire racine :2FE2 (ICCID)

Répertoire Télécom :6F3A (ADN, Abbreviated Dialling Numbers)6F3B (FDN, Fixed Dialling Numbers)6F3C (SMS, Short Messages)6F40 (MSISDN, Own Numbers)6F42 (SMSP, Short Messages Service Parameters)6F43 (SMSS, SMS Status)6F44 (LND, Last Number Dialed)

RĂ©pertoire GSM ou DCS :6F05 (LP, Language preference)6F07 (IMSI, International Mobile Subscriber Indentity)6F20 (Kc, Ciphering Key)6F30 (PLMN, Preferred PLMNs)6F31 (HPLMN search period)6F38 (SST, SIM Service Table)6F3E (GID1, Group Identifier level 1)6F3F (GID2, Group Identifier level 2)6F74 (BCCH, Broadcast Control Channels)6F78 (ACC, Access Control Class)6F7B (FPLMN, Forbidden PLMNs)6F7E (LOCI, Location Information)6FAD (AD, Administrative Data)6FAE (Phase)

Page 4: MICROINFORMATIQUE Une BasicCard

7F10h (Télécom)7F20h (GSM)7F21h (DCS, simple « fantÎme » du répertoireGSM, utilisé par les mobiles 1800 MHz)Pour sélectionner le répertoire « Télécom » àpartir du répertoire racine, on utilisera ainsiune commande de la forme

A0 A4 00 00 02 7F 10.

Le tableau 2 fournit la liste limitative desfichiers que contiennent les diffĂ©rents rĂ©per-toires de notre carte.Cette sĂ©lection, trĂšs Ă©tudiĂ©e, se compose desquelques fichiers dont l’existence est indis-pensable pour que la carte puisse exĂ©cuterune « session GSM » (autrement dit pourqu’elle soit reconnue comme une SIM), et deceux permettant de se livrer aux manipula-tions les plus intĂ©ressantes.AprĂšs sĂ©lection d’un fichier donnĂ©, des com-mandes de lecture (read binary, read record...)ou d’écriture (update binary, update record...)permettront de manipuler Ă  volontĂ© les don-nĂ©es qu’il contient.Pour une utilisation fructueuse de toutes lespossibilitĂ©s de la carte, il est Ă©videmmentnĂ©cessaire de connaĂźtre le rĂŽle de ces diffĂ©-rents fichiers.Bien que la seule rĂ©fĂ©rence officielle etexhaustive soit la spĂ©cification GSM(www.etsi.org), et en particulier sa sectionGSM 11.11, voici l’essentiel de ce qu’il fautsavoir.IntĂ©ressons nous donc en prioritĂ© au rĂ©per-toire GSM (ou DCS), qui offre le plus d’oppor-tunitĂ©s d’expĂ©rimentations instructives.Les fichiers Phase et SST (SIM Service Table),tout d’abord, jouent un rĂŽle important, dansla mesure oĂč ils renseignent le mobile sur lespossibilitĂ©s de la carte (le symĂ©trique, ensomme, du « Terminal profile » que peuventĂ©mettre certains mobiles).Le fichier Phase contient un seul octet, Ă©galĂ  02h en phase 2 ou 03h en phase 2+, et car-rĂ©ment absent dans la plupart des SIM dephase 1.Le fichier SST, pour sa part, contient unnombre d’octets d’autant plus important quela carte SIM est perfectionnĂ©e. Chaque « ser-vice » susceptible d’ĂȘtre supportĂ© par la carteest en effet matĂ©rialisĂ© par deux bits indi-quant respectivement si le service est dispo-nible ou non, et s’il est activĂ© ou non, selonl’affectation du tableau 3.D’habitude, seul l’opĂ©rateur a le pouvoir demodifier la SST (par exemple lorsque l’onsouscrit un service supplĂ©mentaire).Dans notre cas, la SST n’est pas protĂ©gĂ©e enĂ©criture, mais il ne faut pas y Ă©crire n’importequoi pour autant !Son contenu d’origine (DF 30 C3 F3 00 00 0003 ) reflĂ©tant fidĂšlement les possibilitĂ©s

mande entrante, elle rĂ©pond parSW1=9Fh, SW2 prĂ©cisant alors lenombre d’octets qu’il faut venir cher-cher avec une commande « GETRESPONSE » (A0 C0 00 00 SW2).C’est lĂ  une particularitĂ© importantedu protocole « T=0 », de ne pas sup-porter les commandes Ă  la foisentrantes et sortantes, possibles enprotocole « T=1 » et naturellement

moins lourdes Ă  manier.La commande la plus utilisĂ©e estsans aucun doute « SELECT », quisert Ă  se dĂ©placer dans l’arbores-cence des rĂ©pertoires et fichiers, unpeu comme la commande « CD »(Change Directory) de MS-DOS.Dans le rĂ©pertoire racine (repĂ©rĂ©3F00h), notre carte dispose des sous-rĂ©pertoires suivants :

MICROINFORMATIQUE

174/2002 Elektor

Tableau 3.Les services de la SIM Service Table.

Octet Actif Existe SERVICES GSM

b2 b1 Service 1: CHV (PIN)1 disable function1 b4 b3 Service 2: Abbreviated Dialling Numbers

(ADN) b6 b5 Service 3: Fixed Dialling Numbers (FDN)b8 b7 Service 4: Short Message Storage (SMS)

b2 b1 Service 5: Advice of Charge (AoC) 2 b4 b3 Service 6: Capability Config. Parameters

(CCP)b6 b5 Service 7: PLMN Selector b8 b7 Service 8: Party Subaddress

b2 b1 Service 9: MSISDN 3 b4 b3 Service 10: Extension 1

b6 b5 Service 11: Extension 2 b8 b7 Service 12: SMS Parameters

b2 b1 Service 13: Last Number Dialled (LND)4 b4 b3 Service 14: Cell Broadcast Message Identi-

fier b6 b5 Service 15: Group Identifier Level 1 b8 b7 Service 16: Group Identifier Level 2

b2 b1 Service 17: Service Provider Name 5 b4 b3 Service 18: Service Dialling Numbers (SDN)

b6 b7 Service 19: Extension 3 b8 b7 Service 20: RFU

b2 b1 Service 21: VCGS Group Identifier List (EFVGCS and EF VGCSS)

6 b4 b3 Service 22: VBS Group Identifier List (EFVBS and EF VBSS )

b6 b5 Service 23: Enhanced Multi-Level Precedence& Pre-emption Service

b8 b7 Service 24: Automatic Answer for eMLPP

b2 b1 Service 25: Data download via SMS-CB 7 b4 b3 Service 26: Data download via SMS-PP

b6 b5 Service 27: Menu selection b8 b7 Service 28: Call control

b2 b1 Service 29: Proactive SIM 8 b4 b3 Service 30: Cell Broadcast Message Identi-

fier Ranges b6 b5 Service 31: Barred Dialling Numbers (BDN) b8 b7 Service 32: Extension 4

b2 b1 Service 33: De-personalization Control Keys 9 b4 b3 Service 34: Co-operative Network List

RFU = Réservé pour de Futurs Usages

Page 5: MICROINFORMATIQUE Une BasicCard

offertes par notre sĂ©lection de fichiers, ilserait inopportun de tenter d’activer des ser-vices que la carte ne supporte pas.On pourra, par contre, toujours dĂ©sactiver occa-sionnellement tel ou tel service en mettant Ă zĂ©ro un ou plusieurs bits originellement Ă  1.De mĂȘme, on pourra faire passer temporaire-ment la phase de 03h Ă  02h, et Ă©tudier lesrĂ©actions qui en rĂ©sultent (inhibition des fonc-tions « Proactive SIM », par exemple).Si ICCID contient le numĂ©ro de sĂ©rie de lacarte, nullement confidentiel, IMSI identifiel’utilisateur auprĂšs de son opĂ©rateur. Son« numĂ©ro de compte », en somme...Le code de l’opĂ©rateur est d’ailleurs incorporĂ©dans IMSI, et c’est ce qui permet au « roa-ming » de fonctionner : lorsqu’un rĂ©seaureconnaĂźt un IMSI Ă©tranger, il demande Ă l’opĂ©rateur Ă©metteur de la SIM s’il autoriseson client Ă  utiliser ses services, et dans l’af-firmative, son nom s’affiche sur l’écran.Dans notre cas, le code rĂ©seau d’origine est001-01, valeur correspondant Ă  un rĂ©seau fic-tif et rĂ©servĂ©e aux SIM de test.Dans le mĂȘme ordre d’idĂ©es, nous avonsĂ©galement programmĂ©, par dĂ©faut, le fichierAD avec une valeur propre aux cartes detest. Cela prĂ©sente l’avantage que la cartene sera pas refusĂ©e par un mobile « sim-lockĂ© » par un opĂ©rateur ou un fournisseur deservices, et pourra donc ĂȘtre utilisĂ©e sansrestriction sur celui-ci.Les fichiers GID1 et GID2 jouent d’ailleurs unrĂŽle comparable, certains mobiles n’accep-tant que les SIM contenant une valeur bienprĂ©cise dans l’un ou l’autre de ces fichiersnormalement inaccessibles en Ă©criture.Le contenu de LOCI se trouvera, pour sa part,

mis Ă  jour par chaque rĂ©seau surlequel on tentera peut-ĂȘtre d’inscriremanuellement le mobile, tentativequi se soldera bien Ă©videmment parun Ă©chec puisque les identifiants dela SIM sont factices.On y retrouvera alors le code du der-nier opĂ©rateur sollicitĂ©, ainsi quequelques dĂ©tails concernant le lieuoĂč la tentative a Ă©tĂ© effectuĂ©e et laraison de l’échec de l’inscription.SimultanĂ©ment, le code de chaquerĂ©seau ayant rejetĂ© la SIM s’inscritdans le fichier FPLMN, Ă  concur-rence d’un maximum de quatre.Bien entendu, cette liste peut ĂȘtrevidĂ©e Ă  volontĂ©, en remettant tousles octets de FPLMN Ă  FFh.La plupart des fichiers du rĂ©pertoire« TĂ©lĂ©com » sont affectĂ©s aux don-nĂ©es personnelles de l’utilisateur :rĂ©pertoires de numĂ©ros de tĂ©lĂ©phoneet mini-messages « SMS ».DiffĂ©rentes options du menu de n’im-porte quel tĂ©lĂ©phone portable per-mettent d’intervenir sur le contenude ces fichiers, mais il existe aussides applications pour PC qui appor-tent un considĂ©rable surcroĂźt deconfort.

Les logiciels auxiliairesN’importe quel lecteur de cartes Ă puce asynchrones permet, en prin-cipe, d’intervenir sur tous les fichiersde notre carte Ă  partir du clavierd’un PC, cela par l’intermĂ©diaire de

commandes ISO 7816 de « basniveau ».Pour Ă©crire 02h dans l’octet« Phase », par exemple, on pourraitenchaĂźner les commandes sui-vantes :

A0 A4 00 00 02 3F 00A0 A4 00 00 01 7F 20A0 A4 00 00 02 6F AEA0 D6 00 00 01 02

Il faut pourtant bien reconnaĂźtre queles versions « Pro » des logiciels degestion de cartes SIM facilitent infi-niment les choses, grĂące Ă  leur « Ă©di-teur » incorporĂ©.L’un des meilleurs exemples en lamatiĂšre est SIMSurf Profi, livrĂ© danscertains kits bĂątis autour des lec-teurs « ChipDrive » de Towitoko(www.towitoko.de).Capables de fonctionner en modePC/SC (moyennant l’installation desdrivers ad-hoc), ces lecteurs trĂšspopulaires en Europe sont Ă©gale-ment compatibles avec l’utilitaireUTILPCSC.EXE nĂ©cessaire pourexploiter le fichier « LOG » que notrecarte est capable de mettre enoeuvre.Ses versions UTIL1.EXE etUTIL2.EXE, pour leur part, sont des-tinĂ©es aux lecteurs « CyberMouse »(ACR20S ou ACR30S de chez ACS)fournis dans les kits BasicCard(www.basiccard.com).Ces diffĂ©rents fichiers utilitaires Ă©vo-quĂ©s dans l’encadrĂ© ainsi que lefichier TP.IMG Ă  transfĂ©rer sur lacarte-SIM du type ZC4.1 sont dispo-nibles au tĂ©lĂ©chargement sur le sited’Elektor (www.elektor.fr) et pourceux qui n’auraient pas accĂšs Ă  laToile, sur une disquette (EPS010138-11) disponible auprĂšs des adresseshabituelles.Un driver spĂ©cial (disponible sur lesite http://www.acs.com.hk) permetĂ©ventuellement l’utilisation deUTILPCSC.EXE, mais il est au moinsaussi commode de rester en modesĂ©rie « natif » !DĂ©veloppĂ©, tout comme la carte SIM,en ZCBasic version 4, ce logicielprend en charge les quatre opĂ©ra-tions de base relatives au fichier« LOG » : activation (Activate),dĂ©sactivation (Deactivate), tĂ©lĂ©dĂ©-chargement (Download), vidage(Clear).En gĂ©nĂ©ral, on activera le fichier

MICROINFORMATIQUE

18 Elektor 4/2002

Page 6: MICROINFORMATIQUE Une BasicCard

MICROINFORMATIQUE

194/2002 Elektor

RĂ©alisation de la carteBien que ce projet ait Ă©tĂ© entiĂšrement dĂ©veloppĂ© au moyen d’un kit Basic-Card version 4.12, il n’est aucunement nĂ©cessaire de disposer de l’intĂ©gralitĂ©de celui-ci pour rĂ©aliser et utiliser l’émulateur de carte SIM.En pratique, il est nĂ©cessaire et suffisant de rĂ©unir les Ă©lĂ©ments suivants :– l’utilitaire BCLOAD.EXE, inclus dans le kit de dĂ©veloppement tĂ©lĂ©char-

geable gratuitement sur www.basiccard.com ;– un lecteur de cartes Ă  puce compatible, qui pourra aussi bien ĂȘtre le

« CyberMouse » fourni dans les kits BasicCard du commerce, que n’importequel lecteur PC/SC correctement installĂ© ;

– une BasicCard vierge compatible avec le fichier de programmation TP.IMG(en l’état actuel des choses, une ZC4.1 RSA [2001.09.28]).

Le lecteur de cartes Ă  puce Ă©tant installĂ© sur le PC selon les instructions deson fabricant, on ouvrira une fenĂȘtre MS-DOS sur un rĂ©pertoire de travailcontenant le fichier TP.IMG et l’utilitaire BCLOAD.EXE.On tapera alors simplement l’une ou l’autre des commandes suivantes :– BCLOAD –D –P1 TP.IMG si on utilise un « CyberMouse » branchĂ© sur

COM1:– BCLOAD –D –P2 TP.IMG si on utilise un « CyberMouse » branchĂ© sur

COM2:– BCLOAD –D –P101 TP.IMG si on utilise un lecteur compatible PC/SC, quel

que soit le port sur lequel il se trouve connectĂ©.Si le lecteur est correctement reconnu, il doit s’afficher une invitation Ă  insĂ©-rer la carte vierge (Ă©cran A).Sauf incompatibilitĂ© entre la carte et le fichier, qui serait alors signalĂ©e parBCLOAD (Ă©cran B), le processus de programmation doit se traduire par ledĂ©filement, sur l’écran, d’une liste d’adresses dont on attendra Ă©videmment lafin pour retirer la carte (Ă©cran C).Il faut maintenant initialiser la carte, en exĂ©cutant simplement la fonction« Clear LOG file » de notre logiciel. Attention, cela peut prendre plusieurssecondes la premiĂšre fois (Ă©cran D) !Trois versions distinctes du logiciel sont fournies :– UTIL1.EXE, destinĂ©e Ă  un « CyberMouse » branchĂ© sur COM1:– UTIL2.EXE, destinĂ©e Ă  un « CyberMouse » branchĂ© sur COM2:– UTILPCSC.EXE, destinĂ©e Ă  un quelconque lecteur PC/SC.Il ne restera plus qu’à dĂ©couper la carte au format « SIM Micro » lorsque seravenu le moment de l’insĂ©rer dans un tĂ©lĂ©phone portable GSM.La figure 1 fournit les cotes permettant d’exĂ©cuter ce travail avec toute laprĂ©cision voulue, si tant est que la BasicCard utilisĂ©e ne soit pas dĂ©jĂ  prĂ©dĂ©-coupĂ©e (cela dĂ©pend des sĂ©ries !). Si l’on sort alors la puce avec un minimumde soins on pourra toujours la remettre en place en dotant l’arriĂšre de lacarte, au niveau de la dĂ©coupe, d’un morceau de scotch Ă  effet temporaire. Lacarte pourra alors ĂȘtre rĂ©insĂ©rĂ©e en toute sĂ©curitĂ© dans le lecteur pour unenouvelle lecture des informations glanĂ©es dans le mobile.Notons que l’on trouve facilement, chez les revendeurs de tĂ©lĂ©phones por-tables, des adaptateurs permettant de ramener la carte Ă  son format primitif Ă chaque fois que l’on devra la rĂ©introduire dans le lecteur du PC.

Notons que les pro-grammes prĂ©sents dans lerĂ©pertoire BasicCardProcrĂ©Ă© lors de l’installationde l’environnement dedĂ©veloppement offrentnombre d’autres possibili-tĂ©s. Il est possible ainsi,d’obtenir des informa-tions sur les cartes quel’on enfiche dans le lec-teur (cf. Ă©cran E). Nousvous laissons le plaisird’expĂ©rimenter avec cetoutil Ă  la palette depotentialitĂ©s trĂšs riche.

C1

C2

C3

C4

C5

C6

C7

C8

4.0 max6.0 min

4.45

min

5.29

max

6.99

min

7.83

max

9.53

min

10.3

7 m

ax

12.0

7 m

in

2.75

max

(6.25)

11.62 max13.62 min

25 ± 0.1

3 ± 0.1

R = 1 ± 0.1

R = 1 ± 0.1

3 ±

0.1

15 ±

0.1

(16.

48)

Upper edgeLeft edge

Figure 1. Cotes d’une carte SIM à mettredans un mobile.

A

B

C

D

E

Page 7: MICROINFORMATIQUE Une BasicCard

« LOG » juste avant de placer la SIM dans untĂ©lĂ©phone GSM, et on le dĂ©sactivera aussitĂŽtaprĂšs l’en avoir retirĂ©e, afin d’écarter toutrisque de saturation ultĂ©rieure.On tĂ©lĂ©dĂ©chargera alors le fichier (qui se retrou-vera sur le disque dur du PC, sous le nomCARD.LOG), puis on le videra afin de libĂ©rer de

la place pour de nouvelles manipula-tions.CARD.LOG est un fichier ASCII,lisible Ă  l’aide de n’importe quel Ă©di-teur de texte, et contenant desvaleurs hexadĂ©cimales.Une ligne distincte est affectĂ©e Ă chaque commande reçue par lacarte, tandis que toute ligne videindique un RESET de la carte Ă  cetinstant prĂ©cis (arrĂȘt et remise enroute du tĂ©lĂ©phone, par exemple).Voici un court extrait enregistrĂ© lorsdes premiers instants de fonctionne-ment d’un mobile compatible Phase2+, Ă  la fin duquel on ne manquerapas de remarquer la commande« Terminal profile » par laquelle letĂ©lĂ©phone informe la carte SIM del’étendue de ses propres possibilitĂ©s

A0 A4 00 00 02 7F 20 A0 C0 00 00 16 A0 A4 00 00 02 6F AE A0 C0 00 00 0F A0 B0 00 00 01 A0 A4 00 00 02 6F 05 A0 C0 00 00 0F A0 B0 00 00 03 A0 A4 00 00 02 6F 05 A0 C0 00 00 0F A0 A4 00 00 02 7F 20 A0 C0 00 00 16 A0 A4 00 00 02 6F AE A0 C0 00 00 0F A0 B0 00 00 01 A0 10 00 00 04 0F 03 FF F7

C’est d’ailleurs ce mot hexadĂ©cimal0F 03 FF F7 qui s’affichera surl’écran du mobile lorsqu’il aura ter-minĂ© sa procĂ©dure d’initialisation(ces quelques longs instants pen-dant lesquels on obtient souvent lemessage « Essayez plus tard » si l’ontente d’appeler une fonction un tantsoit peu gourmande en ressourcesmachine).Son dĂ©codage (tableau 4) d’aprĂšs laspĂ©cification GSM 11.14 indique quece mobile supporte la totalitĂ© desfonctionnalitĂ©s SIM Toolkit actuelles,Ă  l’exception de la fonction « SendUSSD ».

Cela permet de dĂ©pister, parexemple, l’incompatibilitĂ© de cetappareil avec diverses fonctionsavancĂ©es (envoi de SMS, d’E-mails,etc.) d’une Ă©tonnante carte SIM prĂ©-payĂ©e internationale, la « GSM cardeasyRoam » de Swisscom(http://www.easy-roam.com), ce quene laisserait aucunement soupçon-ner l’étude de la notice du construc-teur !Mais nous arrivons lĂ  au stade ducas particulier : chaque modĂšle demobile donnera des rĂ©sultats diffĂ©-rents, d’ailleurs largement variablesen fonction des changements quel’on aura jugĂ© utile d’apporter aucontenu par dĂ©faut des fichiers de lacarte SIM.Bien entendu, l’auteur ne peut prĂ©-tendre avoir « fait le tour » de tous lestypes de tĂ©lĂ©phones portables en cir-culation, bien qu’il ait expĂ©rimentĂ©sa carte SIM avec des modĂšles aussibien rĂ©cents qu’anciens de Motorola,Nokia, Alcatel, Panasonic, Sagem,etc.Il n’a pas davantage Ă©puisĂ© toutesles dĂ©couvertes que permet poten-tiellement un tel outil, et invite cor-dialement ses lecteurs Ă  poussertoujours plus loin l’aventure !

(010138)

NdlR : le seul petit problĂšme quenous ayons rencontrĂ© pour le momentavec ce projet est le coĂ»t relativementĂ©levĂ© de ces cartes, prĂšs de 10 $USpar carte (ce qui se justifie par sacomplexitĂ©) avec un minimum, pourl’instant, de 10 cartes (l’impact desfrais de port se justifie difficilementpour un nombre plus faible).

MICROINFORMATIQUE

20 Elektor 4/2002

Tableau 4.ÉlĂ©ments d’interprĂ©tation du « Terminal profile ».

Octet 1:Bit 1 : Profile downloadBit 2 : SMS-PP data downloadBit 3 : Cell Broadcast data downloadBit 4 : Menu selection

Octet 2 :Bit 1 : Command resultBit 2 : Call Control by SIM

Octet 3 (Proactive SIM) :Bit 1 : Display TextBit 2 : Get InkeyBit 3 : Get InputBit 4 : More TimeBit 5 : Play ToneBit 6 : Poll IntervalBit 7 : Polling OffBit 8 : Refresh

Octet 4 (Proactive SIM) :Bit 1 : Select ItemBit 2 : Send Short messageBit 3 : Send SSBit 4 : Send USSDBit 5 : Setup CallBit 6 : Setup MenuBit 7 : Provide Local Information