Précédent Sommaire Suivant

4-La carte SIM (Annexe VI.1)


	Un terminal mobile GSM ne peut accéder aux services GSM sans carte SIM (Subscriber Identity Module), excepté dans le cas de numéros 
d'appels d'urgence. En effet, la carte SIM, associée à l'équipement mobile pour former le terminal mobile, est un module contenant toutes les données 
concernant l'abonné ainsi qu'un processus d'authentification de l'abonné par le réseau GSM. Dans les phases 1 et 2 de GSM, la carte SIM était l'esclave 
du réseau qui l'utilisait pour authentifier l'abonné ou de l'équipement mobile qui y lisait les fichiers qu'elle contient. Dans la phase 2+ de GSM, la carte SIM 
reste esclave mais peut, le cas échéant, initier des échanges avec le réseau : elle est alors dite pro-active. Ainsi elle peut envoyer des commandes à 
l'équipement mobile. Associée à des messages courts lui étant transmis par le réseau, la carte SIM offre alors la possibilité à chaque opérateur de
 proposer des services à valeur ajoutée spécifiques.

VI.1.1 - Caractéristiques de la carte SIM

Différentes tailles de cartes SIM mais une architecture système commune et intégrée à la carte à puce

	Il existe deux tailles de cartes SIM (voir figure A1.1): la carte SIM ID-1, de la même dimension que nos cartes de crédit (facilement
 insérable et retirable du terminal mobile), et la carte SIM plug-in, de plus petite taille (insérée de façon quasi-permanente dans le terminal mobile).

  

Fig.A1.1 - Format des cartes SIM

La carte SIM plug-in est majoritairement utilisée dans les téléphones mobiles actuels, de par son faible encombrement. Comme toute carte à puce, 
la carte SIM possède 3 types de mémoires (RAM, ROM, EEPROM) articulées autour d'un microprocesseur dans une architecture système de type 
Von Newman (voir figure A1.2).
-La ROM (Read Only Memory) possède une capacité de 16 à 24 kilooctets et contient le système d'exploitation (OS, pour Operating System) de 
la carte, les mécanismes de sécurité (algorithmes A3, A8 et A38) et des applications spécifiques (API GSM) ;
	-l'EEPROM (Electrically Erasable Programmable Read Only Memory) possède une capacité de 8 à 32 kilooctets et contient des 
répertoires définis par la norme GSM (voir figure A1.3 tels que les numéros de téléphones fixes FDN ou abrégés ADN de l'abonné…) et des
 données liées aux applets (service de messages courts et applications spécifiques). En cas de non-alimentation de la carte SIM (lorsqu'elle 
est retirée de l'équipement mobile notamment ou lorsque ce dernier est mis hors tension), cette mémoire conserve les informations de l'abonné;
	-la RAM (Random Access Memory) possède une capacité de 256 à 512 kilooctets et permet d'effectuer des calculs ou de charger 
des instructions et les exécuter. Cette mémoire, volatile, s'efface lorsque le terminal mobile est éteint.

  

Fig. A1.2 - Architecture en couche d'une carte SIM V1

D'après cette architecture en couches, nous voyons que la ROM permet à la carte SIM d'enregistrer des mécanismes liés à la sécurité que nous
 allons détailler dans le paragraphe suivant.

Paramètres de sécurité de la carte SIM

	La carte SIM contient des clés de sécurisation des différents intervenants (encarteur, opérateur), des clés de cryptage (Ki) et algorithmes 
associés (A3, A8) ainsi que des codes secrets de 4 à 8 chiffres (CHV1 et CHV2).
-	Le code CHV1 (Card Holder Verification 1) ou code PIN (Personnal Identity Number) est utilisé pour identifier l'abonné. L'utilisateur peut 
ou non utiliser ce code et peut le modifier. Dans le cas où ce code serait utilisé, il sera demandé à l'utilisateur lors de chaque mise sous tension de son
 terminal mobile.
-	Le code CHV2 est destiné à permettre un complément de personnalisation par une société de commercialisation de services ou par l'opérateur 
par exemple. Contrairement au code CHV1, ce code ne peut être désactivé.
-	Les clés de déblocage PUK (PIN Unblocking Key) ou Unblocking CHV sont utilisées lorsque l'utilisateur a entré un code erroné 
CHV1 ou CHV 2 un certain nombre de fois et que la carte SIM a automatiquement été bloquée dans un état interdisant toute action sur le terminal
 mobile. Après 10 échecs de déblocage successifs, la clé de déblocage se bloque à son tour et le terminal mobile devient inutilisable par l'usager.
-	L'algorithme A3 calcule la signature SRES (Signed RESponse calculated by a SIM card) à partir de la clé d'authentification Ki et du 
nombre aléatoire RAND.
-	L'algorithme A5 chiffre et déchiffre les données transmises sur le canal radio à partir de la clé de chiffrement Kc (calculée par l'algorithme A8) 
et du numéro de trame courante.
-	L'algorithme A8 calcule la clé de chiffrement Kc à partir du nombre aléatoire RAND et de la clé d'authentification Ki.
-	L'algorithme A38 réunit les algorithmes A3 et A8.
-	La clé d'authentification Ki est spécifique à chaque abonné et est stockée dans la carte SIM et le centre d'authentification du réseau GSM 
(AUC, pour Authentication Center). Elle est codée sur 128 bits.
-	La clé de chiffrement/déchiffrement Kc est utilisée par l'algorithme A5 (contenu dans l'équipement mobile et les stations de bases) pour
 chiffrer/déchiffrer les données transmises sur le canal radio. Elle est codée sur 64 bits.
-	Le nombre aléatoire RAND (a RANDom challenge issued by the network) est le seul paramètre de sécurisation transmis sur le canal radio.
-	La signature SRES est le résultat de l'authentification de l'abonné. Elle est codée sur 32 bits.

Les clés de sécurisation Ki, Kc et SRES sont issues des étapes de personnalisation que nous allons étudier dans le paragraphe suivant.

VI.1.2 - Etapes de personnalisation des cartes SIM

Pré-personnalisation des cartes SIM

Lorsqu'une carte SIM est livrée par un fabriquant de cartes à puce, ou encarteur, (Oberthur, Gemplus, Schlumberger…), celle-ci ne contient ni 
clé d'authentification ni IMSI (International Mobile Subscriber Identity). Par contre elle contient l'algorithme d'authentification A3 et les différentes 
clés de protection. La pré-personnalisation de la carte SIM consiste créer un masque général sur la carte et à y inscrire des données dans des 
répertoires. Ce masque général permet de transformer la carte SIM en machine virtuelle au sens où elle est conçue par différents fabricants utilisant
 leur propre langage assembleur (assembler consiste à associer des éléments binaires aux cristaux composant la carte SIM ). Ainsi le système 
d'exploitation de la carte SIM, greffé sur ce noyau assembleur, est commun aux fabricants et permet aux développeurs d'utiliser le langage de
 programmation d' applets, Java card (voir figure A1.2 précédente). De même une arborescence de répertoires est créée dans la mémoire 
EEPROM (voir figure A1.3). Le répertoire racine s'appelle le MS, pour Master File et contient des sous-répertoires DF, pour 
Dedicated File (contenant eux-mêmes des sous-répertoires ou fichiers), et des fichiers EF, pour Elementary File 
(ne contenant pas de sous répertoires). Ces répertoires et fichiers seront remplis lors de l'étape de personnalisation suivante.

Personnalisation des cartes SIM

	Lors de la personnalisation, l' opérateur attribue à la carte SIM la clé d'authentification Ki et l'IMSI qui sont enregistrés dans
 les répertoires MF/EFiccid et MF/DFgsm/Efimsi respectivement (voir figure A1.3). Cette opération n'est possible qu'après présentation
 par l'opérateur d'une clé de personnalisation. L'opérateur crée alors les répertoires d'applications Telecom (DFtelecom) et GSM (DFgsm) 
et tous les fichiers définis dans la norme (EFadn, EFldn… dans DFtelecom et EFimsi, EFloci… dans DFgsm). Il y charge alors la clé de 
déblocage et tous les paramètres utiles par la suite.

  

Fig.A1.3 - Organisation des fichiers dans une carte SIM

	Remarquons que le numéro de téléphone de l'abonné (MSISDN) n'est pas stocké dans la carte SIM. Pour connaître son numéro 
de téléphone, la carte SIM envoie le couple (IMSI, Ki) au réseau qui authentifie l'abonné et lui retourne son numéro de téléphone. 

Post-personnalisation des cartes SIM

	La société de commercialisation de services (l'opérateur par exemple) peut préciser un certain nombre de paramètres tels que la 
table des services utilisés, les réseaux préférentiels… en gérant ses propres fichiers (dans son répertoire DFgsm ) ce qui constitue la post-personnalisation. 
De même, il est possible de télécharger des applications spécifiques codées en Java card, ou applets, et les stocker dans le répertoire DFgsm/Dftoolkit 
de la mémoire EEPROM. Ces applets utilisent les outils spécifiés par le SIM Application Toolkit (recommandation ETSI 11.14 de GSM), c'est-à-dire
 les fonctions et commandes. Les applets peuvent alors dialoguer avec l'équipement terminal et le réseau à l'aide du service de messages courts 
(SMS, recommandations ETSI 3.40 et 3.48 de GSM). La carte SIM peut devenir un calculateur, un analyseur et un enregistreur à part entière 
comme nous allons le voir au cours des paragraphes suivants.

VI.1.3 - Echanges de données entre la carte SIM et l'équipement mobile

Protocole d'échange

La carte à puce classique peut dialoguer via un contact électrique avec un débit de 9,6 kbit/s (pour la phase 2 et plus pour la phase 2+ ) avec
 l'équipement dans laquelle elle est insérée. Les données sont échangées grâce au protocole " T=0 " défini pour l'ensemble des cartes à puce. 
La transmission est asynchrone (la carte SIM n'a aucune notion du temps ) et se fait caractère par caractère avec détection d'erreur (bit de parité )
 et reprise sur erreur immédiate. 
	Dans la phase 2 (recommandation ETSI 11.11 de GSM), les dialogues se font uniquement sur l'initiative de l'équipement mobile. 
ne commande émise par l'équipement mobile reçoit des réponses de la carte SIM. Une commande comprend un en-tête de 5 octets 
(champs CLA, INS, P1, P2 et P3) et des données utilisateur éventuellement (voir figure A1.4).
 
  

Fig. A1.4 - Protocole d'échange entre la carte SIM et l'équipement terminal (fig.12.4. page 338 réf. [GSM 4])

	-La classe d'instruction CLA précise le type d'application (en hexadécimal) ;
	-Le champ INS donne l'instruction ;
	-Les champs P1 et P2 précisent, si nécessaires, des paramètres d'instruction ;
	-Le champ P3 donne la longueur de la commande ou de la réponse attendue.

Une réponse contient un épilogue (" en-queue ") sur 2 octets (champs SW1 et SW2 pour Status Word) et des données le précèdent 
éventuellement voir figure A1.4) :

	-Le code SW1 est compris entre 90 (acquittement positif) et 9F en hexadécimal ou bien entre 60 et 6F pour signaler un 
problème indépendant de l'application ;
	-Le code SW2 précise la raison de non-exécution de la commande le cas échéant.

	Afin que la carte puisse envoyer les données requises par la commande précédente à laquelle elle a déjà répondu 
(SW1 = 9F et SW2 donnant la longueur des données à transmettre), l'équipement mobile lui envoie une commande GET RESPONSE 
sans données permettant à la carte d'envoyer ses données. Les commandes classiques présentées dans les tables suivantes sont initiées 
par l'équipement terminal et ne permettent pas à la carte SIM d'établir une communication téléphonique par elle-même.

Types de commandes classiques

  

  

  

Table des commandes SIM classiques
	
Les commandes classiques surlignées dans les tables ci-dessus sont utilisées dans les exemples suivants (voir figure A1.5 et A1.6).

Exemples de dialogues
 
  

Fig.A1.5 - Lecture d'un fichier de la carte SIM (fig.12.5. page 341 réf. [4])

   

Fig.A1.6 - Authentification d'un abonné (fig.12.6. page 341 réf. [4])

Limite des échanges avec la carte SIM " non active " (phase 2)

	La carte SIM classique (ou " non active ") présentée jusqu'ici ne fonctionne qu'en tant qu'esclave en ne fournissant à l'équipement mobile
 que des réponses à ses commandes c'est-à-dire que l' équipement terminal est toujours maître. La carte SIM de phase 2 n'est interrogée que pour y 
lire les données stockées dans ses répertoires (numéros de téléphones abrégés, dernière zone de localisation, identité de l'abonné…). 
La carte SIM pro-active (phase 2+ et recommandation ETSI 11.14 de GSM) reste l'esclave de l'équipement terminal mais peut initier des actions lors 
des réponses retournées à l'équipement mobile. Le SIM Application Toolkit (SAT) définit toutes les commandes que la carte SIM pro-active peut envoyer
 à l'équipement mobile. La carte SIM peut alors activer un service de télécommunications (afficher un texte à l'écran, définir un menu complétant de manière 
transparente le menu standard proposé à l'abonné…)

VI.1.4 - La carte SIM pro-active

Initiation de commandes pro-actives par la carte SIM

Munie de ses capacités de calcul (computing), d'analyse et d'enregistrement, la carte SIM pro-active peut dialoguer avec tous les éléments du 
terminal mobile à l'aide de commandes pro-actives spécifiques que nous aborderons plus loin :
-	L'interface radio de l'équipement mobiles (commandes pro-actives SET UP CALL, SEND SHORT MESSAGE, 
SEND SUPPLEMENTARY SERVICES…) ;
-	L'écran de l'équipement mobile (DISPLAY TEXT, SET UP MENU, PLAY TONE…) ;
-	Le clavier de l'équipement mobile (GET INKEY, GET INPUT…);
-	La 2ème fente d'insertion d'une carte à puce (carte bancaire) dans le cas de terminaux bi-slots (GET READER STATUS, 
PERFORM CARD APDU…).

Pour émettre une commande pro-active, c'est-à-dire initier une action, la carte SIM doit attendre que l'équipement mobile l'interroge. 
Pour cela, l'équipement mobile interroge périodiquement la carte SIM par une commande classique STATUS (toutes les secondes environ).
 La carte SIM pro-active peut alors lui signaler si elle souhaite émettre une commande pro-active. Mais elle peut également le signaler au cours 
d'une réponse à une commande quelconque de l'équipement mobile en positionnant SW1 à 91. L'équipement mobile envoie alors une 
commande FETCH (textuellement " aller chercher ") à la carte SIM pour qu'elle émette sa commande pro-active. L'équipement mobile 
répond alors à la carte SIM par une commande TERMINAL RESPONSE (voir figure A1.7).

   

Fig.A1.7 - Envoi d'une commande pro-active sur interrogation périodique (fig.12.7. page 342 réf. [4])

Dans cet exemple, l'émission d'une réponse SW1=90, SW2=00 (ou " 9000 ") signifie que la commande classique a été exécutée correctement 
par la carte SIM. Par contre une réponse de type 91XX signifie que la carte SIM souhaite émettre une commande pro-active. L'équipement 
terminal envoie alors une commande FETCH à la carte SIM qui émet alors l'une des commandes pro-actives des tables suivantes.

Types de commandes pro-actives

  

Table des commandes SIM pro-actives définies par le SIM Application Toolkit

VI.1.5 - Téléchargement d'applets en Java Card dans la carte SIM

Machine virtuelle JAVA

	Les cartes SIM à microprocesseur CISC (Complex Instruction Set Computeur, microprocesseur à jeu d'instructions étendu)
 permettent de les utiliser pour des applications pour lesquelles elles n'ont pas été conçues. En effet, ce type de microprocesseur supporte
 le langage Java (Java Card) et permet de ne plus assigner de tâche précise à la carte SIM. De plus plusieurs applications, ou applets, peuvent 
coexister sur une même carte (voir figure A1.2). Chaque fabricant de cartes à puces dotant les cartes de leur propre système d'exploitation, 
une machine virtuelle Java permet de s'en affranchir. Avec ce type de carte SIM à usage universel, la carte à puce devient une plate-forme 
standard indépendante du microprocesseur et du système d'exploitation.

Langage Java Card et téléchargement d'applets

Les spécifications de la " carte à puce Java " correspondent, dans la domaine du GSM, à la phase 2+ . Dans ces spécifications, un système 
de cryptage, permettant de sécuriser les authentifications de l'utilisateur, les transactions et les applications, est implémenté. Ces spécifications 
ont été élaborées par SUN Microsystems (inventeur du langage Java) et sont apparues en décembre 1999 pour la version Java card 2.1. Cette
 version nécessite une ROM d'au moins 24 kilo octets pour contenir la machine virtuelle Java et les API associées, une EEPROM de 16 kilo octets 
pour télécharger les applets (ou cardlets) et une RAM de 512 octets. Les cartes V1 fournies par Oberthur Card Systems possèdent une EEPROM 
de 16 à 32 kilo octets afin d'accueillir les applets " Mobile Banking " et "Mobile Prepaid " entre autres.

VI.1.6 - Atouts et handicaps de la carte SIM pro-active

Handicaps de la carte SIM pro-active

	La carte SIM pro-active connaît certaines limites comme la faible capacité des mémoires qui ne permettent de télécharger que 32 kilo 
octets d'applets, limitant le nombre des services à valeur ajoutée offerts à l'abonné radio-mobile. D'autant plus qu'à l'échelle du monde Java, 
l'environnement offert par ce type de carte est très réduit. Pour augmenter le nombre d'applets stockées dans la carte SIM, deux voix de 
développement ont été envisagées. D'une part, la langage Java a été compressé, ce qui a donné naissance au Java card. D'autre part, la capacité 
des circuits intégrés de la carte à puce a été augmentée selon la loi de Moore, en augmentant le nombre de transistors par centimètre carré. Une 
limite actuelle de l'EEPROM se trouve entre 128 et 256 kilo octets. Au-delà, la carte à puce devient trop fragile pour être viable.
	La carte SIM ne possédant pas d'horloge de synchronisation et un mode de communication asynchrone avec l'équipement mobile, il 
est difficile d'imaginer des applets utilisant le temps-réel.
	
Atouts de la carte SIM pro-active

		La carte SIM pro-active, contrairement à sa version classique, peut activer, d'elle-même, des services de télécommunication :

-	établir un appel téléphonique à l'aide de la commande pro-active SET UP CALL ;
-	émettre un message court (SEND SHORT MESSAGE) ou une commande pro-active de service supplémentaire (SEND SS ou SEND USSD) ;
-	gérer des dialogues homme-machine (en utilisant l'écran ou le clavier de l'équipement mobile) comme afficher un texte sur l'écran temporairement 
ou jusqu'à ce que l'utilisateur l'efface ou tape un caractère/texte au clavier ;
-	proposer à l'utilisateur un menu déroulant contenant un texte de quelques caractères pour chaque choix possible (ce menu étant intégré aux menus 
déjà proposés à l'utilisateur) et lorsque l'utilisateur fait son choix, l'équipement mobile envoie une commande classique ENVELOPE à la carte SIM contenant 
un élément d'information MENU SELECTION précisant la sélection effectuée ;
-	initier une session pro-active sur réception d'un message court. La carte SIM enclenche alors les actions correspondantes ;
-	générer une tonalité ;
-	contrôler les appels (l'équipement mobile avertit la carte SIM de l'émission d'un appel par l'abonné, avant de le déclencher, en envoyant un 
message CALL CONTROL à la carte SIM, encapsulé dans une commande classique ENVELOPE, qui précise le numéro appelé et le type de service 
support demandé) ainsi la route est ouverte aux cartes SIM prépayées qui sont interrogées lors de l'émission d'un appel pour vérifier que le crédit qu'elles
 contiennent n'est pas épuisé (c. f. Mobicarte d'Itinéris) et déclencher l'appel ;
-	permettre aux réseau d'accéder à de nouvelles données techniques (le réseau GSM sélectionné, la zone de localisation, l'identité de la cellule 
courant ou l'IMEI du terminal mobile) ;
-	être personnalisée à travers l'interface radio (OTA, pour Over The Air ) par téléchargement de nouvelles applets
 (par transmission de messages courts), de nouveaux répertoires téléphoniques (à partir du réseau sans avoir à rentrer les numéros de téléphone
 avec le clavier du terminal mobile, le serveur distant de l'opérateur contenant alors ces répertoires), gérer un porte-monnaie électronique
 (des menus spécifiques sont alors téléchargés dans le terminal), offrir des services de téléachat et télévente (supermarché virtuel, bourse…),
 accéder à des serveur de news (sport, météo, trafic…), accéder aux services de transport (SNCF, compagnies aériennes, taxis…). 
Des messages courts avec un format défini par l'opérateur sont alors transmis par la carte SIM vers un serveur spécialisé par l'intermédiaire 
du réseau GSM. De nombreuses opportunités de services à valeur ajoutée s'offrent alors à l'opérateur. La plate-forme ASP développée par
 la société Rapsodia Software constitue un véritable exemple de serveur spécialisé.

Devant le succès de ce type de carte, hébergeant de multiples applications, la concurrence est vive entre les systèmes d'exploitations. 
Le Java card de SUN Microsystems doit maintenant lutter contre les systèmes d'exploitation Multos de Master Card et Windows Card de Microsoft.

 

Précédent Sommaire Suivant
On line since january 2002 - Do NOT make any copy of this document, please.