microinformatique une basiccard
TRANSCRIPT
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.
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
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)
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
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
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
« 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