Vous êtes sur la page 1sur 36

Les Cartes SIM/USIM

Samia Bouzefrane & Hai Binh LE


samia.bouzefrane@cnam.fr & hai-binh.le@cnam.fr Laboratoire CEDRIC CNAM http://cedric.cnam.fr/~bouzefra

GSM

En Europe, les quipements mobiles limits des frontires nationales car les systmes sont incompatibles Do: cration du Groupe Spcial Mobile (GSM) qui propose : - une bonne qualit de la voix - des terminaux pas trs chers - un support pour le roaming international etc. 1989: la responsabilit de GSM est transfre vers ETSI (European Telecommunication Standards Institute) 1990: Publication des spcifications GSM phase I 1991: Dmarrage du service commercial 1993: 36 rseaux GSM dans 22 pays 1995: 114 rseaux GSM dans 66 pays 1998: 304 rseaux GSM dans 120 pays 2001: 445 rseaux GSM dans 170 pays
2

GSM
Depuis 1989, lETSI (European Telcommunications Standard Institute) dite les spcifications du GSM et de lUMTS (Universal Mobile Telecommunications System, rseau de 3me gnration). Sige de lETSI Sophia Antipolis. En Europe, le standard GSM utilise les bandes de frquences 900 MHz et 1800 MHz. Aux Etats-Unis, la bande de frquence utilise est la bande 1900 MHz. Tri-bande : les tlphones portables pouvant fonctionner en Europe et aux Etats-Unis Bi-bande : les tlphones fonctionnant uniquement en Europe. La norme GSM autorise un dbit maximal de 9,6 kbps => transmission de la voix, des donnes numriques de faible volume, des messages textes (SMS, pour Short Message Service) ou des messages multimdias (MMS, pour Multimedia Message Service).

Les services fournis par le GSM

Services de tlphonie Services de donnes Services Fax SMS (Short Message Service) Service dchange de donnes (GPRS) Services supplmentaires itinrance (roaming) conversation multi-parties

Notion de rseau cellulaire

Un rseau de tlphonie mobile est bas sur la notion de cellules, Une cellule : est une zone circulaire qui couvre une zone gographique. Une cellule : centaine de mtres (zone urbaine), une trentaine de kms (zone rurale).

Chaque cellule dispose d'un metteur-rcepteur central appel station de base (en anglais Base Transceiver Station, BTS). Plus le rayon d'une cellule est petit, plus la bande passante disponible est leve. Chaque cellule est entoure de 6 cellules voisines. Les cellules adjacentes ne peuvent pas utiliser la mme frquence.
5

lments du rseau cellulaire


Un contrleur de stations (BSC, Base Station Controller) qui relie toutes les stations de base, charg de grer la rpartition des ressources.

Sous-systme radio (en anglais BSS pour Base Station Subsystem) = contrleur de stations + les stations de base. Centre de commutation du service mobile (MSC, Mobile Switching Center), gr par l'oprateur tlphonique, relie les contrleurs de stations au rseau tlphonique public et internet. Sous-systme rseau (NSS, Network Station Subsystem) auquel appartient le MSC, charg de grer les identits des utilisateurs, leur localisation et l'tablissement de la communication avec les autres abonns.

Architecture du rseau GSM

Bases de donnes manipules


Le registre des abonns locaux (HLR, Home Location Register): base de donnes contenant des informations (position courante, informations administratives, etc.) sur les abonns du rseau GSM. Un seul HLR par rseau GSM. Le registre des abonns visiteurs (VLR, Visitor Location Register): base de donnes contenant des informations sur les abonns se trouvant dans la zone contrle par le VLR. Le VLR rapatrie les donnes de labonn partir du HLR. Les donnes sont conserves pendant tout le temps de sa prsence dans la zone et sont supprimes lorsqu'il la quitte ou aprs une longue priode d'inactivit (terminal teint). Le registre des terminaux (EIR, Equipement Identity Register) : base de donnes rpertoriant les terminaux mobiles. Le centre d'authentification (AuC, Autentication Center) : est charg de vrifier l'identit des utilisateurs, contient une copie de chaque cl stocke sur une SIM, utilis pour lauthentification et le cryptage via le rseau cellulaire. 8

Mobilit

Le rseau cellulaire supporte la mobilit grce la gestion du handover, c--d le passage d'une cellule une autre.

Les rseaux GSM supportent aussi la notion d'itinrance (roaming), c--d le passage du rseau d'un oprateur un autre.

Station mobile

Station mobile : terminal de l'utilisateur Station mobile compose de : Une carte SIM (Subscriber Identity Module), pour identifier l'usager de manire unique et d'un terminal mobile (en gnral un tlphone portable). Un terminal est identifi par un numro d'identification unique de 15 chiffres appel IMEI (International Mobile Equipment Identity).

Chaque carte SIM possde un numro d'identification unique (et secret) : IMSI (International Mobile Subscriber Identity), qui peut tre protg l'aide d'une cl de 4 chiffres appels code PIN. La communication entre une station mobile et la station de base se fait par l'intermdiaire d'un lien radio, gnralement appel interface air.
10

Carte SIM
Notion introduite en 1988 Rle de la carte SIM (Subscriber Identity Module) : contient les dtails de labonnement : IMSI, Ki cl secrte dauthentification, langage de prfrence, carnet dadresses, etc. contient les secrets permettant de prouver que lutilisateur est bien lui : - codes secrets PIN (Personal Identification Code) et PUK (Personal Unlock Code) - cls secrtes pour lauthentification ou le cryptage. permet le chargement de services sur la carte dans un environnement scuris permettant : linteraction avec le mobile, laffichage dinfos sur lcran, la saisie des donnes par lutilisateur, composer des appels, interagit avec le rseau via lenvoi/rception de messages SMS, GPRS, obtient des infos de localisation, capable dinteragir avec le systme de fichiers de la SIM. Code 3 milliards de cartes SIM fabriques en 2007
11

Normalisation

12

Les standards ETSI

SIM
Gestion des Fichiers et Authentification : 3 GPP TS 51.011 (ETSI GSM 11.11) SIM Toolkit Applet Management : 3 GPP TS 51.014 (ETSI GSM 11.14) SIM API for Java Card : 3 GPP TS 43.019

USIM
Gestion des Fichiers et Authentification : 3 GPP TS 31.102 USIM Toolkit Applet Management : 3 GPP TS 31.111 USIM API for Java Card : 3 GPP TS 31.130

13

Mthodes de protection proposes dans GSM 02.09/1

1. La protection de lidentit dun abonn :


Labonn possde un identifiant (IMSI : International Mobile Subscriber Identity) permettant de retrouver les paramtres dabonnement dans le HLR (Host Location Register) : base de donnes des comptes client. Le rseau dlivre un TIMSI (Temporary Mobile Subscriber Identity) une identit temporaire qui change chaque appel pour interdire la traabilit des communications.

2. Lauthentification dun abonn :


Une authentification forte est ralise laide de lalgorithme A3 associ une cl Ki de 128 bits.

GSM 02.09: "Digital cellular telecommunications system (Phase 2+); Security Aspects".
14

Mthodes de protection proposes dans GSM 02.09/2

3. La confidentialit des donnes utilisateur :


Dans un rseau cellulaire radio, linformation est transmise par des ondes lectromagntiques (Over The Air) entre le tlphone mobile et la station de base. Les changes entre mobile et station de base sont chiffrs laide de lalgorithme A5 qui utilise une cl de chiffrement Kc. Kc est mise jour chaque appel (authentification) avec lalgorithme A8 de gnration de cls. A3 et A8 sont souvent confondus (nomms A38 ou A3A8).

4. La protection de certaines informations telles que :


IMSI, numros appels ou appelants, le numro de srie du tlphone (IMEI : International Mobile Equipment Identity).

15

Infrastructures dauthentification du GSM

Il existe cinq entits :


-La carte SIM -Le mobile -VLR (Visitor Location Register) : entit associe plusieurs entits de base -HLR (Host Location Register) : base de donnes clients -Le centre dauthentification (AuC, Authentication Center).

La norme 3GPP TS 43.020 identifie une cellule ou un ensemble de cellules laide de ltiquette LAI (Location Area Identity).
3GPP TS 43.020 Technical Specification Group Services & System Aspects; Security Related Network Functions (Release 5, 2002).
16

Services dauthentification
Carte SIM Mobile Station de Base VLR HLR/AuC

LAI, TMSI Requte dIdentit IMSI Requte dAuthentification Triplet(RAND, SRES, Kc)

RAND Kc=A8(Ki,RAND) SRES=A3(Ki,RAND) A5(Kc, TMSI) Acquittement Basculement en mode chiffr Acquittement RAND : nb alatoire de 16 octets SRES (Signed RESponse) : rponse signe SRES=A3(Ki, RAND) Kc : cl de chiffrement des communications, Kc=A8(Ki, RAND).

SRES=SRES ?

17

Services dauthentification

1. Labonn dispose des valeurs (LAI, TMSI) stockes dans le module SIM, suite un appel prcdent. 2. Le mobile transmet au VLR les valeurs (LAI, TMSI). 3. Si le VLR choue pour retrouver lIMSI, il envoie une requte didentification au mobile 4. Le VLR rcupre lIMSI mmoris dans la carte SIM 5. Le VLR envoie au HLR/AuC une demande dauthentification 6. AuC produit un triplet GSM (RAND, SRES, Kc) 7. A la rception du triplet, le VLR transmet au mobile RAND 8. La carte SIM calcule SRES= A3(Ki, RAND) qui est envoy au HLR. 9. Le HLR vrifie lgalit entre SRES et SRES=> authentification de labonn en cas de succs. 10. Le VLR choisit un nouveau TMSI, le chiffre avec lalgorithme A5 et la cl Kc et lenvoie au mobile qui le dchiffre. Les oprations de chiffrement et de dchiffrement appliqus aux signaux radio sont ralises par le mobile (et non la carte SIM). Au-del des stations de base, dans le rseau cbl de loprateur, il ny a aucune garantie de confidentialit.
18

Services de cryptage

19

Algorithmes cryptographiques/attaques

La carte SIM ralise le calcul A3A8 dans un espace sr. En 1998, Mark Briceno, Ian Goldberg et David wagner (chercheurs luniversit de Berkeley) ont cass lalgorithme A3A8. Mme si GSM ne recommande aucun algorithme, les oprateurs utilisent la procdure secrte COMP128-1. Ces chercheurs ont aussi cass cet algorithme en retrouvant la cl Ki en 219 calculs (environ 500 000 essais). Pour cette raison, les composants qui intgrent COMP128-1 sont munis dun compteur limitant le nombre dappels 100 000. Les modules SIM sont aujourdhui bass sur lalgorithme COMP128-2 dont lalgorithme est pour le moment secret.

20

Caractristiques physiques dune carte SIM

Dbut des annes 90: Une carte SIM : un CPU (8 bits), RAM (128 octets), ROM (7 Ko), EEPROM (3 Ko). Anne 2008 : Une carte SIM : un CPU (32 bits), RAM (16 Ko), ROM (512 Ko), EEPROM/FLASH (512 Ko), processeur ddi au calcul cryptographique. La ROM (Read Only Memory) contient le systme d'exploitation de la carte, les mcanismes de scurit (algorithmes spcifiques (API GSM). l'EEPROM (Electrically Erasable Programmable Read Only Memory) contient des rpertoires dfinis par norme GSM (tels que les numros de tlphones l'abonn) et des donnes lies aux applets (service de messages courts et applications spcifiques). la RAM (Random Access Memory) permet d'effectuer des calculs ou de charger des instructions et les excuter.
21

Structure dune carte SIM

22

Systme de Fichiers selon la norme 3GPP TS 51.011

23

Le systme de fichiers de La SIM


Dedicated File Elementary File Fichier transparent Fichier linaire fixe Fichier cyclique Rpertoire racine : 3F 00 Sous rpertoires importants : GSM (DFGSM, 7F20) et TELECOM (DFTELECOM, 7F10).
- '3F': Master File; - '7F': 1st level Dedicated File; - '5F': 2nd level Dedicated File; - '2F': Elementary File under the Master File; - '6F': Elementary File under a 1st level Dedicated File; -'4F': Elementary File under 2nd level Dedicated File. Suite doctets enreg1 enreg2 enreg3 enreg1 enreg2 enreg3

Aprs la rception de lATR (Answer To Reset), le master file (MF) est implicitement slectionn.
24

EF ICCID (Integrated Circuit Card Identification)

EFICCID fournit le numro de srie de la carte SIM.

25

EF ELP (Extended Language Preference)

EFELP contient les langages dans lordre de prfrence par lutilisateur, fix par lutilisateur ou bien par loprateur.

26

Rpertoire GSM

Le fichier EFIMSI (6F07) contient le paramtre IMSI. Le fichier EFLOCI (6F 7E) contient principalement les paramtres : TMSI, LAI. EFLP (Language preference) EFKc (Ciphering key Kc) contient la cl Kc et le numro de squence de la cl. EFSST (SIM service table) : dresse la liste des services disponibles dans la carte. Service n1 : CHV1 disable function Service n2 : Abbreviated Dialling Numbers (ADN) Service n3 : Fixed Dialling Numbers (FDN) Service n4 : Short Message Storage (SMS) etc. EFACM (Accumulated call meter): contient le nombre total dunits pour lappel courant et les appels prcdents. EFSPN (Service Provider Name) contient le nom de loprateur.

27

Rpertoire TELECOM

Le rpertoire TELECOM comporte plusieurs fichiers : EFADN (6F3A) contient un annuaire abrg, EFFDN (6F3B) contient un annuaire tlphonique, EFSMS (6F3C) contient la liste des SMS mis et reus, EFMSISDN : contient le numro de tlphone de labonn MSISDN, EFLDN (Last Dialed Numbers): derniers numros de tlphone appels, etc.

Ces fichiers sont accessibles en lecture/criture et sont protgs par le code PIN de lutilisateur.

28

Conditions daccs aux fichiers

5 niveaux de priorits : ALWays (code 0) : le fichier est toujours accessible CHV1 (code 1) : fichier protg par le code PIN du porteur CHV2 (code 2) : fichier protg par le code PIN de lmetteur de la SIM ADM (codes de 4 E) : fichier gr par une autorit administrative NEVER (code F) : fichier inaccessible.

Niveau 0 1 2 3 4 14 15

Conditions daccs ALWays CHV1 CHV2 Rserv ADM NEver


29

Conditions daccs aux fichiers

ALWAYS : laction peut tre excute sans aucune restriction. (Card Holder Verification 1) : la valeur de CHV1 doit tre prsente. CHV2 : la valeur de CHV2 doit tre prsente. ADM : lallocation de ces niveaux est de la responsabilit de lautorit administrative approprie. NEVER : pas daccs.

30

Les commandes APDU

La norme 3GPP TS 11.11 (ancien GSM 11.11) dfinit 22 commandes APDU classes en 4 groupes : Six commandes de gestion de fichiers de la SIM : SELECT, READ, WRITE Cinq commandes de gestion de code PIN : vrification, modification, activation, suppression ou dblocage laide du code PUK. Excution de lalgorithme A3A8 grce la commande RUN GSM ALGORITHM. Dix commandes utilisation varie, dont des commandes dfinies dans le modle SIM Tool Kit permettant un programme excut sur la SIM davoir accs au clavier et lcran du mobile, ou de communiquer avec le monde extrieur via des messages SMS.

31

Les commandes APDU


COMMANDE
SELECT STATUS READ BINARY UPDATE BINARY READ RECORD UPDATE RECORD SEEK INCREASE

INS
A4 F2 B0 D6 B2 DC A2 32

P1
00 00 Offset high Offset high Rec N Rec N 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

P3
02 Lgth lgth lgth lgth lgth lgth 03

VERIFY CHV CHANGE CHV DISABLE CHV ENABLE CHV UNBLOCK CHV INVALIDATE REHABILITATE RUN GSM ALGORITHM SLEEP GET RESPONSE TERMINAL PROFILE ENVELOPE FETCH TERMINAL RESPONSE

20 24 26 28 2C 04 44 88 FA C0 10 C2 12 14

CHV N CHV N 01 01 Voir note 00 00 00 00 00 00 00 00 00

08 10 08 08 10 00 00 10 00 Lgth Lgth Lgth Lgth Lgth

32

Format des commandes APDU

33

La commande SELECT

A0 A4 00 00 02 XX XX (XX XX : FID du fichier/rpertoire slectionner).


La slection dun rpertoire entrane une rponse qui peut inclure des informations telles que : - la taille mmoire non utilise - le nom du rpertoire slectionn - le type du rpertoire (MF ou non) - prsentation du code PIN - nombre de sous rpertoires -ncessit ventuelle de prsentation du code PIN, avec le nombre dessais possibles.

34

La commande SELECT

35

Lectures de Fichiers

Lecture de lIMSI
Le fichier EFIMSI (6F07) du rpertoire GSM est de type transparent, il contient lIMSI. La slection du fichier retourne la taille du fichier. A0 B0 00 00 09 (READ BINARY 9 octets, taille de lIMSI).

Lecture de TMSI et LAI


Ces paramtres sont lus partir du fichier EFLOCI (6F 7E) A0 B0 00 00 B (READ BINARY 11 octets, 4 octets pour TSMI suivis de 5 octets pour LAI, ..)

36

Ecriture de fichiers Mise jour du fichier EFKc


Le fichier EFKc est mis jour par le mobile grce la commande UPDATE BINARY . Deux valeurs sont stockes dans le fichier : la cl et un octet de validation (=00 si cl valide et 07 sinon).

37

Algorithme dauthentification

Algorithme GSM A3/A8 utilis pour :


- Authentification (A3) - Cryptage (A8)

Excution de lalgorithme dauthentification du GSM


RUN-GSM-ALGORITHM excute la fonction A3A8 avec comme argument le nb alatoire RAND de 16 octets. La commande retourne la signature SRES (4 octets) et la cl Kc (8 octets).

38

RUN-GSM-ALGORITHM

39

Lecture de la tables des Services

Le fichier EFSIM-Service-Table (6F 38) contient la liste des services offerts par la SIM. Chaque service est associ deux bits (bit1 =1 si service prsent, bit2 =1 si service actif).

Exemple : Service n1 permet la dsactivation du code PIN de lutilisateur, Service n2 signale la prsence dun annuaire de numros abrgs (fichier EFADN), Service n3 notifie la prsence dun annuaire de numros non abrgs (fichier EFFDN), Service n4 signale la prsence du fichier des SMS (fichier EFSMS), etc. Les fichiers EFADN, EFFDN, EFSMS appartiennent au rpertoire DFTELECOM (7F 10).

40

Les fichiers Annuaire et SMS


Fichier des SMS : - not EFSMS, possde 6F 3C comme FID, - un fichier cyclique, - permet la lecture et lcriture des SMS dans la SIM.

Fichier de lannuaire des numros ADN not EFADN avec 6F 3A comme FID, - est un annuaire tlphonique. Cmd: A0 A4 00 00 02 6F 3A (READ BINARY EF-ADN) Rp: 91 0F (indique quil y a 0F donnes envoyer) Cmd : A0C0 00 00 0F (GET RESPONSE 0F octets) Rp: 00 00 1B 58 6F 3A 00 11 00 22 01 02 01 1C 90 00. Taille du fichier : 1B 58 (7 000 octets) et taille de lenregistrement (1C : 28 octets). Do le nb denregistrements : 7000/28=250 octets). Chaque numro contient une tiquette qui sobtient en soustrayant 14 de la taille de lenregistrement (28-14=14). Ltiquette a son bit de poids fort 0.

41

Oprations sur les codes PIN


Le code PIN tient sur 8 octets. Les octets non significatifs sont cods par FF. VERIFY CHV : prsentation de code PIN A0 20 00 P2 0B PIN (P2=01 pour CHV1 : code PIN utilisateur, = 02 pour CHV2).

DISABLE PIN annule lutilisation du code PIN. A0 26 00 01 08 PIN

ENABLE PIN permet lutilisation du code PIN A0 28 00 01 08 PIN CHANGE CHV permet de modifier le code PIN A0 24 00 01 10 Ancien_PIN Nouveau_PIN UNBLOCK CHV permet de dbloquer une carte bloque aprs trois essais infructueux du code PIN (CHV1). A0 2C 00 01 10 PUK PIN (PUK est un code unique de 8 chiffres associ la SIM).

42

SIM Toolkit (STK)

Spcifi par le standard 3GPP TS 11.14 Environnement qui fournit des mcanismes permettant aux applications de la SIM dinteragir et dinter-oprer avec tout terminal mobile (ME) supportant les mcanismes spcifiques requis par ces applications. Mcanismes dpendants des commandes et protocoles relevant de la norme 3 GPP TS 51.011. Identifi grce au fichier EFSST Lapplication est dclenche par des actions externes (gestion des vnements).

43

SIM Toolkit (STK)

Permet aux applications de la SIM dinteragir avec le mobile Le standard ETSI GSM 11.14 dfinit linteroprabilit la SIM et le mobile Les applications STK peuvent : - initier des actions (commandes pro-actives) - dclencher des actions externes (gestion dvnements) - obtenir les caractristiques du mobile (profile du mobile).

44

Framework SIM Toolkit


Toolkit Applet 1 Toolkit Applet 3

Applet 2
Proactive commands

Applet n
sim.access package sim.toolkit package

Install Uninstall

Activation

(see NOTE 1)

P/C responses

File access

Toolkit Framework Applet triggering Proactive Command handler Applet install/uninstall


Security

Applet security manager

APDU e.g. Envelopes

Proactive polling, 91XX, Fetch, Proactive commands, Terminal Response

File access

GSM Framework
NOTE 1: The install / uninstall process is defined in GSM xx.yy [ ]

Files

APDU JCRE
45

Carte SIM proactive

La carte SIM proactive peut dialoguer avec tous les lments du terminal mobile laide de commandes proactives spcifiques : -Avec linterface radio du mobile (via les commandes proactives SET UP, SEND SHORT MESSAGE, SEND SUPPLEMENTARY SERVICES, etc.) - Avec lcran du mobile (DISPLAY TEXT, SET UP MENU, PLAY TONE, etc.) - Avec le clavier du mobile (GET INKEY, GET INPUT, etc.)

46

Commandes de SIM Toolkit

Interface utilisateur DISPLAY TEXT

Interface rseau

Interface mobile

Divers

SETUP CALL

PROVIDE LOCAL INFORMATION POLLING INTERVAL POLLING OFF TIMERS

TERMINAL PROFILE CALL CONTROL EVENT TRIGGERING LAUNCH BROWSER BEARER INDEPENDENT PROTOCOL
47

GET INPUT SELECT ITEM DISPLAY IDLE MODE TEXT GET INKEY

SEND SHORT MESSAGE SEND USSD ENVELOPE (SMS-PP DOWNLOAD)

MORE TIME

Fonctionnement en mode proactif/1

La carte SIM qui veut envoyer une commande pro-active : doit attendre la rception dune commande STATUS par le ME (envoye toutes les secondes, mode polling) ou bien rpondre une toute autre commande en remplaant SW1 SW2 = 91 XX (XX le nb doctets envoyer). - Le ME rpond alors avec la commande FETCH la SIM pour quelle mette la commande proactive. - Le ME rpondra la commande proactive par lenvoi de la commande TERMINAL RESPONSE.

48

Gestion des fonctions de STK


Quatre commandes APDU sont dfinies pour la gestion des fonctions SIM Toolkit : FETCH : utilise pour transfrer une commande Toolkit de la SIM au ME : Entre : vide Sortie : la commande STK (proactive) envoye vers le ME. TERMINAL RESPONSE : sert envoyer du ME la SIM la rponse la commande SAT prcdemment excute : Entre : donnes constituant la rponse Sortie : vide ENVELOPE : utilise pour envoyer des donnes aux applications STK : Entre : donnes Sortie : la structure des donnes est dfinie dans TS 11.14. TERMINAL PROFILE : utilise par le ME pour transmettre la SIM, son profil : Entre : terminal profile Sortie : vide
49

Fonctionnement en mode proactif/2

ME

SIM

50

Gestion dvnements

51

Chargement du profile

52

La commande TERMINAL PROFILE

Le service SIM proactif doit tre activ dans la table de services SIM (TS 11.11). Un ME qui supporte le mode proactif est identifi lorsquune commande TERMINAL PROFILE est envoye durant linitialisation de la SIM. Le ME doit alors envoyer une commande STATUS la SIM des intervalles rguliers.

53

Polling proactif

54

Structure des commandes proactives

Les commandes et rponses SAT sont envoyes via linterface de donnes BER-TLV. Chaque commande APDU doit contenir un objet BER-TLV. TLV = (Tag, Length, Value). Le tag est une valeur constante, de 1 octet, indiquant que cest une commande SAT.
BER-TLV data object
SIMPLE-TLV data object Longueur 0-127 128-255

1..n SIMPLE-TLV objects

V 1..m elements Octet 1 Longueur (00 7F) 81

Octet 2 Non prsent Longueur (80 FF)

55

Liste des commandes proactives

56

API Java Card SIM (3GPP TS 43.019 API)

-Extensions des classes de lAPI Java Card 2.1.1. -Permettent laccs aux fonctions et donnes dcrites dans TS 51.011 et TS 51.014. LAPI utilise par la carte contient deux paquetages : sim.access : fournit les moyens aux applets daccder aux donnes et systmes de fichiers de lapplication GSM dfinie dans le standard TS 51.011. sim.toolkit : fournit les moyens aux applets de senregistrer aux vnements du framework toolkit, grer les informations sous format TLV et envoyer les commandes proactives selon la spcification 3GPP TS 51.014.

57

Algorithmes dauthentification SIM /USIM

Algorithmes dauthentification GSM sont secrets : exemple de COMP128 qui a t attack et qui nest pas recommand pour lutilisation.

ETSI a adopt lalgorithme (rendu publique) : Milenage bas sur lalgorithme AES.

58

Comparaison de lauthentification SIM/USIM

GSM Description Ki Subscriber authentication key RAND random challenge XRES exepected result Kc cipher key Bits 128 128 32 64 max A3 A8 Alg Description K Subscriber authentication key

UMTS Bits 128 128 32-128 128 128 48 48 16 64 f1 f2 f3 f4 f5 Alg

RAND random challenge XRES expected result Ck cipher key IK integrity key AK anonimity key SQN sequence number AMF authentication management field MAC message auth. Code

Example : algorithm COMP128-1

Example : algorithm Milenage

59

Milenage Algorithme

SIM

ME

60

Comparaison Usage SIM/USIM


Caractristique Classe utilise Rpertoire racine Support de canaux multiples Commande dauthentification Peut tre utilis pour laccs au GSM Peut tre utilis pour laccs 3G Support SIM Toolkit Dveloppement de standards Spcifi dans les versions SIM CLA=A0 MF (3F 00) Non USIM CLA=00 ADF USIM (7F FF) Oui

RUN GSM ALGORITHM AUTHENTICATE Oui Oui Oui Gel Release 1 Release 4 Oui Oui Oui En cours Release 99 Release 7
61

Exemple de lapplication sur la carte (U) SIM


Description de lapplication On va construire une application qui nous permet denregistrer des donnes personnelles confidentielles, per exemple: coordonnes bancaires, mots de passe etc. Les lments de base Une applet sur la carte (U)SIM Une Midlet sur le tlphone mobile Communication effectuer: Entre Midlet et Applet Entre Midlet (Tlphone mobile) et le rseau mobile

62

La logique de lexemple
Exemple propos par Serge Chaumette et Jonathan Ouoba, voir: http://www.labri.fr/perso/chaumett/papers/misc2008/usim La carte (U)SIM Terminal mobile Envoi Envoyer un texto avec linformation chiffre - Chiffrement de linformation - Retourne linformation chiffre au terminal mobile avec une commande proactive

Rception Afficher linformation dchiffre sur lcran

- Dchiffrement de linformation - Retourne linformation dchiffre au terminal mobile avec une commande proactive

63

LApplet
public class Applet_Misc extends javacard.framework.Applet implements toolkitInterface, uicc.toolkit.ToolkitConstants { public Applet_Misc(byte[] bArray, short bOffset, byte bLength) public static void install(byte[] bArray, short bOffset, byte bLength) public void processToolkit(short event) public void process(APDU apdu) private void initCrypto() private void padUserData (byte[] smsUserData, short len, short pad) private void appendUserData (byte[] smsUserData, byte inputData, short offset) private void sendSMS(byte[] smsUserData)
}

1- Le constructeur Applet_Misc Enregistrer lapplet auprs de la plateforme JavaCard Lutilisation du paquetage uicc.toolkit de Gemalto reg = ToolkitRegistrySystem.getEntry(): registrer lapplet auprs de SIM Toolkit Framework uiccView = UICCSystem.getTheUICCView(JCSystem.CLEAR_ON_RESET); Linvocation de la mthode initCrypto pour crer et initier une instance de lobjet de crypto

64

LApplet
public class Applet_Misc extends javacard.framework.Applet implements toolkitInterface, uicc.toolkit.ToolkitConstants { public Applet_Misc(byte[] bArray, short bOffset, byte bLength) public static void install(byte[] bArray, short bOffset, byte bLength) public void processToolkit(short event) public void process(APDU apdu) private void initCrypto() private void padUserData (byte[] smsUserData, short len, short pad) private void appendUserData (byte[] smsUserData, byte inputData, short offset) private void sendSMS(byte[] smsUserData)
}

2- La mthode Install() Appele par la plateforme JavaCard dans le processus de linstallation pour crer une instance de lapplet

65

LApplet
public class Applet_Misc extends javacard.framework.Applet implements toolkitInterface, uicc.toolkit.ToolkitConstants { public Applet_Misc(byte[] bArray, short bOffset, byte bLength) public static void install(byte[] bArray, short bOffset, byte bLength) public void processToolkit(short event) public void process(APDU apdu) private void initCrypto() private void padUserData (byte[] smsUserData, short len, short pad) private void appendUserData (byte[] smsUserData, byte inputData, short offset) private void sendSMS(byte[] smsUserData)
}

3- La mthode Process() Charge de manipulation des commandes APDU La commande APDU dont le champ INS est de type 0xC1, linformation confidentielle est chiffre avec dtre retourne dans la rponse APDU: Formatage de linformation avec padUserData Chiffrer linformation avec la mthode cipher3DESEnc.doFinal() Linformation chiffre est retourne dans le tableau apduDataEncrypted
66

LApplet
public class Applet_Misc extends javacard.framework.Applet implements toolkitInterface, uicc.toolkit.ToolkitConstants { public Applet_Misc(byte[] bArray, short bOffset, byte bLength) public static void install(byte[] bArray, short bOffset, byte bLength) public void processToolkit(short event) public void process(APDU apdu) private void initCrypto() private void padUserData (byte[] smsUserData, short len, short pad) private void appendUserData (byte[] smsUserData, byte inputData, short offset) private void sendSMS(byte[] smsUserData)
}

3- La mthode Process() La commande APDU dont le champ INS est de type 0xC3, linformation confidentielle contenue dans le champ de donnes de la commande est dchiffre avant dtre retourne dans la rponse APDU: Dchiffrer linformation avec la mthode cipher3DESDec.doFinal() Linformation chiffre est renvoye en rponse APDU avec la mthode apdusendBytesLong()
67

LApplet
public class Applet_Misc extends javacard.framework.Applet implements toolkitInterface, uicc.toolkit.ToolkitConstants { public Applet_Misc(byte[] bArray, short bOffset, byte bLength) public static void install(byte[] bArray, short bOffset, byte bLength) public void processToolkit(short event) public void process(APDU apdu) private void initCrypto() private void padUserData (byte[] smsUserData, short len, short pad) private void appendUserData (byte[] smsUserData, byte inputData, short offset) private void sendSMS(byte[] smsUserData)
}

4- La mthode processToolkit() Lapplet reste inactive jusqu quand elle est active par un vnement Cette mthode prend en charge des oprations lies aux vnements dfinis par le dveloppeur. Lutilisation du paquetage uicc.toolkit et uicc.access

68

LApplet
public class Applet_Misc extends javacard.framework.Applet implements toolkitInterface, uicc.toolkit.ToolkitConstants { public Applet_Misc(byte[] bArray, short bOffset, byte bLength) public static void install(byte[] bArray, short bOffset, byte bLength) public void processToolkit(short event) public void process(APDU apdu) private void initCrypto() private void padUserData (byte[] smsUserData, short len, short pad) private void appendUserData (byte[] smsUserData, byte inputData, short offset) private void sendSMS(byte[] smsUserData)
}

5- La mthode initCrypto() Initialiser tous les lments ncessaires lutilisation dune cl 3DES Elle est charge de linitialisation des objets cipher3DESEnc et cipher3DESDec qui contiennent respectivement les mthodes pour chiffrer et dchiffrer les donnes

69

LApplet
public class Applet_Misc extends javacard.framework.Applet implements toolkitInterface, uicc.toolkit.ToolkitConstants { public Applet_Misc(byte[] bArray, short bOffset, byte bLength) public static void install(byte[] bArray, short bOffset, byte bLength) public void processToolkit(short event) public void process(APDU apdu) private void initCrypto() private void padUserData (byte[] smsUserData, short len, short pad) private void appendUserData (byte[] smsUserData, byte inputData, short offset) private void sendSMS(byte[] smsUserData)
}

6- La mthode sendSMS() lenvoi de linformation confidentielle par SMS Cest fait par une commande proactive pour le terminal mobile

70

Bibliographie
http://www.commentcamarche.net/contents/telephonie-mobile/gsm.php3 http://discobabu.blogspot.com/2006/02/gsm-milenage-implementing-it-at.html Normes GSM : http://www.etsi.org Article de Pascal Urien, La carte SIM ou la scurit du GSM par la pratique , Magazine MISC, hors Srie Cartes puce , Nov. /Dec. 2008. Article de Serge Chaumette et Jonathan Ouoba, Java Card (U)SIM et Applications scurises sur tlphones mobiles , Magazine MISC, hors Srie Cartes puce , Nov. /Dec. 2008. Description des SMS : http://www.dreamfabric.com/sms/ Smart Card Handbook, Third Edition, Wolfgang Rankl and Wolfgang Efng, Giesecke & Devrient GmbH, Munich, Germany, Translated by Kenneth Cox, John Wiley & Sons, 2002. Rapport de stage Niang Souleymane ralis chez Trusted Logics, Master SEM, septembre 2008. Keith E. Mayes and Konstantinos Markantonakis, Smart Cards, Tokens, Security and Applications, Springer, 2008, 392 pages. 3 GPP TS 11.14. Specification of the SIM Application Toolkit for the Subscriber Identity Module-Mobile Equipement interface (Release 1999). 3 GPP TS 11.11. Technical Specification Group Terminals Specification of the Subscriber Identity Module-ME interface (Release 1999). 3GPP TS 43.019 V6.0.0 (2004-12), Technical Specification, 3rd Generation Partnership Project; Technical Specification Group Terminals; Subscriber Identity Module Application Programming Interface, (SIM API) for Java Card, Stage 2, (Release 6), http://www.3gpp.org 3GPP TS 51.014 V4.5.0 (2004-12), Technical Specification, 3rd Generation Partnership Project; Specification of the SIM Application Toolkit for the Subscriber Identity Module - Mobile Equipment (SIM - ME) interface (Release 4) 3GPP TS 51.011 V5.0.0 (2001-12), Technical Specification, 3rd Generation Partnership Project; Technical Specification Group Terminals; Specification of the Subscriber Identity Module - Mobile Equipment (SIM - ME) interface, (Release 5) ETSI SAGE Task Force for 3GPP, Authentication Function Algorithms, VERSION 1.0, Security Algorithms Group of Experts (SAGE); General Report on the Design, Specification and Evaluation of The MILENAGE Algorithm Set: An Example Algorithm Set for the 3GPP, Authentication and Key Generation Functions, 2000 (http://www.3gpp.org/ftp/tsg_sa/TSG_SA/TSGS_10/Docs/PDF/SP-000630.pdf). 3GPP TS 43.020 Technical Specification Group Services & System Aspects; Security Related Network Functions (Release 5, 2002). SIM Toolkit training, Cours dispens par Patrick Biget, Trusted Logics, Janvier 2009.

71

Fin

72