Vous êtes sur la page 1sur 132

Introduction la carte puce

Jean-Pierre Tual 30/04/404

7/9/2004

Plan
Un peu dHistoire Panorama du march et grandes classes dapplications Technologies de base Architecture des cartes puce Les standards fondamentaux Les normes ISO 7816 La technologie JavaCard La scurit des cartes puce Exemples fondamentaux
Carte GSM/SIM Systmes de paiement EMV

Futures tendances de la carte puce


2 7/9/2004

Cartes puce: les pionniers


Brevets historiques
Guillou/Ugon

Memoire
Giraud/Mollier
03. 31. 77

Microprocesseur
Ugon
08. 26. 77

11. 30. 82

Guillou
02. 06. 79

Dethloff
09. 06. 76

Moreno
03. 25. 74

Halpern
08. 09. 72

Perron
05.72

Castrucci
05. 04.71

Ellingboe Arimura
03.03.70 10. 19. 70

Electronique

Cryptographie Informatique

7/9/2004

La base des cartes puce: le SPOM:

COMMANDE D'CRITURE Commande dcriture A1


memoire mmoire Non-volatile programmable programmable

RAM
D1

non-volatile

A2

D2

EPROM

ROM CPU

COMMANDE DE VERROUILLAGE Commande des latches

CPU, RAM, ROM

I/O

Octobre 1981: Premier SPOM industriel RAM: 36B, ROM: 1,6 KB, EPROM: 1 KB NMOS 3,5 - 42 KTransistors
4 7/9/2004

Premires exprimentations
1979 1980-1981 1981-1982 1983 1984 1984 1988 1988 1988 1989 1989 1989
5 7/9/2004

Premire carte microprocesseur (Bull) Premire carte pour la PayTV (Bull/Philips) Premires exprimentations de paiement
125 000 cartes bancaires (Bull/Philips/Schlumberger)

Premire Tlcarte (Schlumberger) Premire Telekarte (G&D) Premire exprience bancaire (Bull) Premire carte multi-application (Bull) Premire carte d universit (Bull) Premire exprimentations bancaires Premire carte club fidlit Premire exprimentation bancaires Premire carte GSM (Gemplus)

Quelques ralisations industrielles majeures


1985-1992
GIE-CB GIECBBanques Franaises & GIE CB Carte bancaire Franaise 41 M cartes en circulation en 2001
GIE SESAM-Vitale
Carte Nationale de Sant 40 M cartes en circulation en 2001
Porte Monnaie Electronique 80 M de cartes Proton livres dans 18 pays: Suisse, Belgique,Pays-Bas, Sude, Malaisie 80 M Geldkarte en Allemagne, Luxembourg, Islande

1996-1999

1996-2000

Tlphonie MobileGSM/Mobile

1992- 2000

Tlphonie Mobile
Pntration sans prcdent 1,5 Md de cartes SIM vendues

7/9/2004

Quatre marchs en croissance quasi-exponentielle


2003: 1,1 Milliard de cartes puce pour un potentiel de 3 Milliards Horizon 2006 : 1.8 Milliard de cartes puce
1 B TV 400 M de connects au Web 100 M stations de jeux

1 200 M Tlphones fixes 900 M cartes pr-payes 1000 M Mobiles

GSM/Mobile
# 1000 M dabonns GSM

Scurit et rseaux
80 M TV Set Top Box 1 M PC avec lecteurs

BANQUE
150 M Porteurs de cartes puce 1500 M cartes magntiques
7 7/9/2004

! Permis de ! conduire ! Identit ! Sant

E-gouvernement

Evolution du march de la carte puce


En volume (Mu)
Year
Bank Telco Pay TV Government Internet + IT security cards Transport

2002
135 470 45 40 3 43

2003
190 720 38 46 5 60

2004
230 800 45 58 8 75

2005
280 850 50 65 15 85

2006 CAGR 02/06


300 900 55 75 20 120 30% 24% 7% 23% 88% 41%

Total

736

1 059

1 216

1 095

1 470

26%

En valeur (Me)
Year
Bank Telco Pay TV Government Internet + IT security cards Transport

2002
160 1180 155 170 21 70

2003
310 1591 135 200 30 83

2004
380 1672 155 230 40 110

2005
470 1700 165 250 65 125

2006
580 1710 180 275 80 155

CAGR 03/06
23% 13% 2% 14% 46% 21%

Total Value

1 756

2 349

2 587

2 775

2 583

11%

7/9/2004

March et comptition en 2003


600.0 500.0 400.0 300.0 200.0 100.0 0.0 278 159 127 261 147 420 220 338 150 187 61 78 221 296 517
Microcontroler Memory Total IC card

498

pl us

d In ca r

al to

G &D

O rg

O C

G em

O th

Ax

er s

2058 Mu

TAM en Mu Microproc. 1130 Memoire 928 Total Cartes 2058

7/9/2004

Types de cartes (1/2)


"

Carte mmoire
# Mmoire simple (sans processeur) accessible en lecture sans protection, mais lcriture peut tre rendue impossible # Programmation impossible # Carte porte-jetons pour applications de prpaiement (carte tlphonique)

"

Carte logique cble


# Mmoire accessible via des circuits prprogramms et figs pour une application particulire # Carte scuritaire pouvant effectuer des calculs figs (accs un local )

10

7/9/2004

Types de cartes (2/2)

Carte puce ou SmartCard


# # # Microcontrleur encart (processeur + mmoires) Carte programmable pouvant effectuer tout type de traitements Interface lectrique par contacts ou via signaux RF

11

7/9/2004

Fabrication des cartes puce (1/2)


Wafer Test
Assemblage Micro-electronique

Sciage Puce
Motorola, Atmel Texas Instruments STMicroelectronics Siemens, Hitachi

Module

Protection

Assemblage

12

7/9/2004

Fabrication des cartes puce (2/2)


Impression - Lamination
Sky High Transit Sky High Transit

Dcoupage
Sky High Transit

Sky High Transit

Sky High Transit

Cavit Pr-dtachage
G Su p lu er e

Corps de Cartes

1234 Sky High Transit 1234 Sky High Credit

1234 5678 9012 3456


John Doe - Exp 13/999

Insertion Test srie

Personnalisation
13 7/9/2004

Architecture dune carte puce

ROM :

VCC GND RST CLK I/0

EEPROM, Application Memory

ROM, Operating system

Systme dexploitation

10 to 196 KB CPU 8, 16, 32 bits 6805/ 8051 /RISC RAM : Scratch Pad 128 bytes to 8 KB

EEPROM : Mmoire applicative +donnes prives 2 to 64 KB

14

7/9/2004

LOS de base ou Masque


Le Masque (Hard Mask) est le systme dexploitation de la carte. Il est gnralement crit en C ou en langage dassemblage. Il est stock en ROM et ne peut donc tre modifi durant la vie de la carte Que fait le masque ? Gre les communications avec le monde extrieur Execute les commandes reues via linterface I/O Supervise lexcution des programmes excutables stocks dans la carte Gre le SGF et assure un accs scuris lensemble des fichiers Assure les fonctions de cryptographie (DES, RSA, SHA, ECC,) Sur les cartes les plus modernes, integre une JVM (Java Virtual Machine) pour excuter des applets La fonction principale de l OS est une boucle qui attend larrive de commandes externes. A larrive dune commande, elle est excute, puis une rponse est mise vers lextrieur et la boucle redmarre.. 15 7/9/2004

Les Softmasks
Un Softt Mask est une extension du masque. Il est crit en gnral en C, compil, et li aux librairies du Masque. Il peut tre charg en EEPROM tant que la carte nest pas bloque. Quand a ton besoin dun Soft Mask ? Quand une nouvelle fonctionnalit doit tre ajoute une carte pour une application spcifique Pour les besoins de bug fixing au niveau du masque (cela arrive!) Quand lexcution dune commande du masque ne satisfait pas les besoins dun client particulier Quand certaines spcifications de clients ne peuvent pas tre implmentes en Java Quand une applet est trop lente => rcriture!

16

7/9/2004

Principales normes applicables (1/2)


Normes de base
Normes ISO/IEC 7816-x (x=1:16) Normes ISO/IEC 14443 (A,B,C) et 15693 pour cartes sans contact

Normes gnriques inter-domaines


PC/SC: APIs dintgration de cartes puce en environnement Windows OCF: Environnement Java et API pour applications smart-cards JavaCard (2:1 et 2:2) pour programmation des smart-cards PKCS #15: Stockage de clefs cryptographiques ISO/IEC 15408: drive des Critres Communs

Normes spcifiques du domaine bancaire


EMV (96 et 2000): spcifications cartes/terminaux multiapplicatifs Visa Open Platform: gestion (scuritaire) de cartes multiapplicatives CEPS: spcification dinteroprabilit pour les porte-monnaie lectroniques EN 1546: Spcifications gnriques de porte-monnaie lectroniques
17 7/9/2004

Principales normes applicables (2/2)


" Tlphonie mobile
#
#

# #

# #

GSM 11-11: Spcification de linterface SIM-ME (3GPP: TS 51.011) GSM 11-14: Spcification SIM Application Toolkit pour linterface SIMME GSM 03.19: API JavaCardTM de programmation pour la carte SIM Phase 2 GSM 03.40: Ralisation de la fonction Short Message Service (SMS); mode Point to Point (PP) GSM 03.48: Mcanismes de scurit pour la carte SIM application toolkit Stage 2 ETSI TS 102 221: Spcifications de la carte UICC et de linterface UICC terminal 3GPP: 31.101 V4.0.0, 31.102 V4.0.0 (Release 99)- cartes 3G (W-CDMA) 3GPP2-C00-1999-1206-1208: Spcification du module RUIM pout systmes large-bande (systmes CDMA 2000) ETSI TS 101 333: formats de signature letronique ETSI TS 101 808: spcification des politiques de gestion des CA CEN/ISSS: directive europenne pour la signature lectronique
7/9/2004

"

Signature lectronique
# # #

18

Norme ISO 7816-1

0,76 mm

"Format carte de crdit


54 mm

" Dfinition des contraintes physiques supportables (chaleur, humidit...)


85 mm

19

7/9/2004

Norme ISO 7816-2


"

La puce
$ $ $ $ $ $ $ $ $ $

Seule interface de communication avec lextrieur Lecteur de cartes = CAD (Card Acceptance Device) Surface 25 mm paisseur 0,3 mm Compose de 8 contacts mtalliques I/O: Z tat Haut- A tat bas: quitte ltat haut seulement en transmission VCC= 4,75 5,25 V jusqu 200 mA CLK: cap in/out < 30 pF, temps de transition < max( 0,5 s, 9%T) Activation: RST bas, Vcc haut, VPP repos, I/O Z, CLK entre 1 et 5 MHz Dsactivation: RST bas, CLK bas, VPP inactif, I/O tat A, VCC bas

20

7/9/2004

Norme ISO 7816-3


"

Caractristiques lectriques
# # Frquence dhorloge 1 - 5 Mhz Vitesse des communications < 115200 bauds:

"

Protocole de transmission
# # # # # TPDU (Transmission Protocol Data Unit) T=0 Protocole orient octet T=1 Protocole orient paquet Protocoles de communication asynchrones et half-duplex T=2 Asynchrone, full duplex, orient bloc => en cours de spcification

"

Slection du type de protocole


# PTS (Protocol Type Selection Rponse au reset :

"

Rponse au reset :
$

ATR (Answer To Reset)

21

7/9/2004

Normalisation et protocole de transport


" Horloge
# Freq: 3,579,545 Hz (valeur par dfaut des lecteurs de cartes) # Dbit par dfaut: 9622 bauds # Dure dun bit par dfaut: 1 etu= 372 = F/D priodes dHorloge # Horloge fournie par le lecteur compris entre 1 et 5 Mhz: F,D ngociables

" Format des caractres

" Conventions
# #
22

Directes: A=0: 1er caractre= 3B; b1:b8= A(ZZAZZZAA)Z Inverses: A=1: 1er caractre= 3F; b8:b1= A(ZZAAZZZZ)Z
7/9/2004

Structure gnrale dune ATR


TS T0
b1.b4 0 1 b5 b6 b7 b8 1

TA1

TB1
2

TC1

TD1

b1.b4

b5 b6 b7 b8

TA2
2

TB2
3

TC2

TD2

b1.b4

b5 b6 b7 b8

TA3
3

TB3
4

TC3

TD3

b1.b4

b5 b6 b7 b8

TA4
4

TB4

TC4

TD4
7/9/2004

T1, T2,,TK 0

TCK

23

ATR: rponse carte la RAZ (1/2)


" " Doit intervenir entre 400 et 40,000 cycles dhorloge Srie doctets (b8,b7,b6,b5,b4,b3,b2,b1) dont les deux premiers, TS et T0 sont obligatoires
$ $

TS: Transmission. 3B pour logique directe (positive), 3F pour une logique inverse (ngative) T0: Prsence doctets dinterface (TAi:TDi; I=1:4) et historiques (T1:T15)
$ $ $

B8=1 prsence TA1 B7=1 prsence TB1 B6=1 prsence TC1 B5=1 prsence TD1 B4 B3 B2 B0, nombre doctets historiques (015)

$ $ $ $

TA1 Valeur des paramtres dajustement detu F et D TB1 Paramtres de programmation de lEPROM (obsolte). 25=> (Vpp =Vcc) TC1 Nombre de bits stop excdentaires (N). La valeur par dfaut est 00. FF fixe la
valeur de N 0 pour T=0 (2 stop bits) et 1 (1 stop bit) pour T=1.

TD1 Indique le type de protocole de transport mis en uvre


# B4 B3 B2 B1, numro du protocole i= 015 # B8 B7 B6 B5 indiquent respectivement la prsence doctets TAi+1, TBi+1, TCi+1, TDi+1 fournissant des informations complmentaire sur le protocole i.

24

7/9/2004

ATR: rponse carte la RAZ (2/2)


"

TA2, indique la possibilit de ngocier les paramtres de transfert (PTS)


# B8=1 spcifie labsence de cette option.
Le numro du protocole de ngociation est renseign par les bits B4 B3 B2 B1,

# B5=1 notifie lusage de paramtres implicites dans les Tai # B5=0 signifie que les paramtres sont explicites

TB2, code la valeur de Vpp en dixime de volts. TC2, valeur dun paramtre WI (0255) permettant de calculer le temps dattente maximum dune rponse de la carte par le lecteur;
# WT = WI . 960 . F/f secondes, soit 1 s pour f=3,58 Mz, F=372, WIdfaut=10 (0A).

TAi+1, (i>2) indique la longueur max. du champ dinformation reu par la carte (IFSC) # Dfaut 32 B- Plage 1=> 254 TBi (i>2), fournit la valeur (0,15) des paramtres CWI et BWI utilis dans leprotocole T=1 pour calculer: # Le dlai max entre deux caractres dun mme bloc:
CWT = (2CWI + 11) etu (11 s avec CWI=1 )

# Le dlai max de rponse de la carte


BWT =( 2BWI *960* 372 / f ) + 11 etu (1,6s BWI=4))

Tci (I>2) dfinit le type de mthode pour la correction


"

b1= 0 => LRC- b1=1 => CRC TCK = XOR de lensemble des bytes de lATR jusqu TCK exclus
25 7/9/2004

Exemple dATR
Cas du GSM
TS= 3B => Convention directe T0= 89= 1000ll1001 => TD1 suit + 9 caractres historiques TD1= 40= 0010ll0000 => TC2 suit et protocole T=0 TC2= 14= 0001ll1110 => Waiting time 14 (1,4s) T1T9: 47ll47ll32ll34ll4Dll35ll32ll38ll30 => GG24M5520 (donne constructeur)

26

7/9/2004

Protocoles
PPS
Ngociation de la vitesse de transfert conditionne par absence de loctet TA2 (Pas de TA2 => PPS avec F= 372 et D=1) Echange dau plus deux sries de 5 octets

Lecteur => carte: PTSS (FF), PTS0 (~TDi), PTS1 ~(~TAi), PTS2 (00), PTS3 (00), PCK= PTSS+PTS0+PTS1+PTS2 Carte => lecteur: rptition des 5 octets prcdents si acceptation

Protocoles de transport
T=0

Transmission srie des octets (1 start, 8 bits, 1 parit, 2+N bits stop) Erreur de parit: 0 logique sur la ligne de transmission durant 1 ou 2 etu. Orient bloc: (NAD,PCB, LEN), INF (0:254 octets), LRC (1B) ou CRC (2B)
NAD: 3 bit adresse source, 3 bit adresse destination PCB: I(#bloc, more): blocs numrots modulo 2, more=1 => pas dernier bloc R(#bloc, erreur): numrotation modulo 2, n du prochain bloc attendu (erreur = 0) S notification de commandes diverses (RESYNC, IFS, ABORT,WTX)

T=1

27

7/9/2004

Norme ISO 7816-4


" Protocole Asynchrone de type commande rponse " APDU (Application Programming Data Units)

CLA : 1 octet pour identifier lapplication INS : 1 octet pour le code de linstruction P1 - P2 : Paramtres de linstruction Lc : Longueur du champ de donnes Le : Longueur maxi du champ de donnes de la rponse

SW1 - SW2 : Code dexcution 90 00 % OK

28

7/9/2004

Types de commandes (1/2)


Cas 1: Pas dentre / Pas de sortie
CLA INS P1 P2 P3 lgth (= 00 ) SW1 90 SW2 00

Cas 2: Pas dentre / Sortie de longueur connue


CLA INS P1 P2 P3 lgth Data de longueur lgth SW1 90 SW2 00

Cas 3: Pas dentre / Sortie de longueur inconnue


CLA INS P1 P2 P3 lgth (= 00 ) SW1 9F SW2 lgth1

GET RESPONSE
CLA INS P1 P2 P3 lgth2 Data de longueur lgth2 < lgth1 SW1 90 SW2 00

Note: lgth= 00 cause un transfert de donnes de 256 bytes


29 7/9/2004

Types de commandes (2/2)

Cas 4: Entre / Pas de sortie


CLA INS P1 P2 P3 lgth Data de longueur lgth SW1 90 SW2 00

Cas 5: Entre / Sortie de longueur connue ou inconnue


CLA INS P1 P2 P3 Lgth Data de longueur lgth SW1 9F SW2 lgth1

GET RESPONSE
CLA INS P1 P2 P3 Lgth2 Data de longueur lgth2 < lgth1 SW1 90 SW2 00

30

7/9/2004

ISO 7816-4
" Le systme de fichiers des cartes puce. Systme de fichiers hirarchique qui peut contenir 3 types de fichiers : "Master File" (Fichier racine) "Dedicated File" (Rpertoire + qq infos) "Elementary File" (Fichier de donnes)

31

7/9/2004

ISO 7816-4
4 structures de donnes :

32

7/9/2004

Exemples (1/3)
1. READ_BINARY. CLA B0 P1 P2 Le. Si P1(b8) = 1, EF est dsign par P1 (b5,b4,b3,b2,b1) et P2 reprsente loffset. Sinon loffset est gal (256*P1) +P2 Lecture de Le octets partir de offset dans un fichier transparent. 2. WRITE_BINARY. CLA D0 P1 P2 Lc [Lc octets] Si P1(b8) = 1, EF est dsign par P1 (b5,b4,b3,b2,b1) et P2 reprsente loffset. Sinon loffset est gal (256*P1) +P2 Ecriture de Le octets partir de offset dans un fichier transparent. 3. UPDATE_BINARY. CLA D6 P1 P2 Lc [Lc octets]. Si P1(b8) = 1, EF est dsign par P1 (b5,b4,b3,b2,b1) et P2 reprsente loffset. Sinon loffset est gal (256*P1) +P2 Ecriture de Le octets partir de offset dans un fichier transparent.
33 7/9/2004

Exemples (2/3)
5. READ_RECORD CLA B2 P1 P2 Le Lit un enregistrement dans un fichier P1, numro denregistrement ou premier enregistrement lire. P1= 00 indique lenregistrement courant P2= 04 lecture de lenregistrement P1, P2= 05 lecture des enregistrements partir de P1 jusqu' la fin du fichier. 6. WRITE_RECORD CLA D2 P1 P2 Lc [lc octets] Ecriture dun enregistrement. P1 numro denregistrement P2= 04 enregistrement P1

34

7/9/2004

Exemples (3/3)
13. INTERNAL_AUTHENTICATE CLA 88 P1 P2 Lc [Lc octets] Le Cette commande ralise un calcul dauthentification relativement une cl interne en transfrant un nombre alatoire (challenge) dlivr par le lecteur. P1 reprsente la rfrence dun algorithme. P2 est gal zro par dfaut. Le challenge est contenu dans les Lc octets sortants. 14. EXTERNAL_AUTHENTICATE CLA 88 P1 P2 Lc[Lc octets] Le Cette commande met jour ltat dune carte en fonction du rsultat dun calcul ralis par le lecteur partir dun nombre alatoire dlivr par la carte (CHALLENGE). P1, rfrence dun algorithme. P2 est gal zro par dfaut. 15. GET_CHALLENGE CLA 84 P1 P2 Le Cette commande produit un nombre alatoire
35 7/9/2004

Commandes ISO 7816-4 inter-industries

! READ BINARY ! WRITE BINARY ! UPDATE BINARY ! ERASE BINARY ! READ RECORD ! WRITE RECORD ! APPEND RECORD ! UPDATE RECORD

! GET DATA ! PUT DATA ! SELECT_FILE ! VERIFY ! INTERNAL_AUTHENTICATE ! EXTERNAL_AUTHENTICATE ! GET_CHALLENGE ! GET_RESPONSE ! ENVELOPE ! MANAGE CHANNEL

36

7/9/2004

ISO 7816-5
" Spcifie des identifiants dapplications (AID ou Application IDentifier) " Un AID = identification unique d'une application de la carte et de certains types de fichiers. " AID= chane de 16 octets # R premiers octets (RID) identifient le fournisseur dapplication # Les 11 octets suivants reprsentent lidentifiant " Activation dune application # Par exemple par SELECT_FILE (00 A4 04 00 10 [AID]) # Exemple: ATR stock dans ET_ATR en /3F00/2F01 est slectionn par 00 A4 02 00 02 2F01
37 7/9/2004

ISO 7816-6

" Spcifie les lments de donnes inter-industrie : Nom du porteur de la carte Date dexpiration

Etiquette Longueur valeur

38

7/9/2004

ISO 7816-7
" Donnes organises en tables, avec des colonnes, lignes, (Similarit aux bases de donnes) " Langage spcifique de requtes : SCQL (Smart Card Query Language)

2000 PicoDBMS : Un SGBD sur carte puce


39 7/9/2004

ISO 7816-8 10
" ISO 7816-8 : Scurit de l'architecture et des commandes inter-industrie. 2 commandes options # Manage Security environment & Passage dun template la carte # Perform Security Operations & Compute/Verify Cryptographic checksum & Encipher/Decipher/Hash & Compute/Verify Digital Signature & Generate Cryptographic key pairs " ISO 7816-9 : Commandes inter-industries amliores # Register File (DF or EF) # Create, Deactivate, Delete, Rehabilitate # Seulement si la carte est en environnement sr ! # Mthodes daccs aux ressources Smart-Cards " ISO 7816-10 : Spcifiques aux cartes synchrones

40

7/9/2004

Cycle de vie de la carte


" Fabrication
# Inscription d'un programme en mmoire ROM dfinissant

les fonctionnalits de base de la carte : "masque" fig traitant quelques commandes

" Initialisation
# Inscription en EEPROM des donnes de l'application

" Personnalisation
# Inscription en EEPROM des donnes relatives chaque

porteur

" Utilisation
# Echange d'APDU

" Mort
# Invalidation logique

41

7/9/2004

Dveloppement d'applications
Le code applicatif de la carte est grav en ROM au moment de la fabrication
carte fige dveloppeurs spcialiss pas d'volution possible : pas de chargement dynamique de nouveaux programmes en EEPROM

Implication
Si une application requiert de nouvelles fonctions carte => ncessit de re-dvelopper un nouveau masque

42

7/9/2004

Vers des cartes plus ouvertes


Problmes rsoudre et/ou besoins satisfaire
permettre le dveloppement de programmes pour la carte sans avoir besoin de graver un nouveau masque faire de la carte un environnement d'excution de programmes ouvert (chargement dynamique de code) faciliter l'intgration des cartes dans les applications

Elment de solution : Java Card


Utiliser le langage orient objet : Java Utiliser la plate-forme Java pour charger et excuter des applications dynamiquement
43 7/9/2004

Qu'est ce que la Java Card ?

Une carte puce qui excute des programmes Java

Java Card dfinit un sous-ensemble de Java (2.1 puis 2.2) ddi pour la carte puce :

Sous-ensemble du langage de programmation Java Sous-ensemble du paquetage java.lang Dcoupage de la machine virtuelle Java Modle mmoire adapt la carte APIs spcifiques la carte

44

7/9/2004

Java Card par rapport Java (1/4)


Pas de chargement dynamique de classes Objets : Allocation dynamique dobjets supporte (new)

Mais
# Pas de ramasse-miettes (gc) # Pas de dsallocation explicite non plus # ==> mmoire alloue ne peut pas tre rcupre # Pas de mthode finalize()

45

Java Card par rapport Java (2/4)


Types de base (nombres signs, complment 2) : byte, short, boolean (8 bits), int (16 bits)
Pas de types char (pas de classe String), double, float et long Pas de classes Boolean, Byte, Class, etc.

Tableaux une dimension :


Elments : des types de base

46

Java Card par rapport Java (3/4)


Pas de threads
#

Pas de classe Thread, pas de mots-cl synchronized Surcharge de mthodes, mthodes abstraites et interfaces Invocation de mthodes virtuelles Mots-cls instanceof, super et this Notion de paquetage et modifieurs public, protected et private identiques Java Pas de classe SecurityManager : politique de scurit implmente dans la machine virtuelle

Mcanisme dhritage identique Java


# # #

Scurit
# #

Mthodes natives (native) Atomicit


# #

Mise jour de champs dobjets doit tre atomique Modle transactionnel : beginTransaction(), commitTransaction() et abortTransaction()

47

Java Card par rapport Java (4/4)


Mcanismes dexception supports
Peuvent tre dfinis (extends Throwable), propags (throws) et intercepts (catch) Classes Throwable, Exception et Error supportes et certaines de leurs sous-classes (dans java.lang)
Throwable { public Throwable(); }
-- Exception -- RuntimeException -- ArithmeticException -- ClassCastException -- NullPointerException -- SecurityException -- ArrayStoreException -- NegativeArraySizeException -- IndexOutOfBoundsException -- ArrayIndexOutOfBoundsException

48

Java Card 2.2: principales extensions

" " " " " " "

Gestion des canaux logiques Destruction d Applet RMI JavaCard Ramasse-miettes Extension des classes APDU API daccs aux objets transtoires (tbc) API de Card Management

49

7/9/2004

Machine virtuelle
"

Implmentation en deux parties :


# La partie on-card (SmartCard) # La partie off-card (JavaCard)

50

7/9/2004

Librairies standard
" JavaCard.lang
#

Classes fondamentales (object, throwable) pour le langage JavaCard Classes et interfaces pour les fonctionnalits de base des applets JavaCard (ISO7816, PIN,AID, APDU,JCSystem, Exceptions) Classes et interfaces pour lenvironnement scuritaire (DesKey,DASPrivateKey,SecretKey,RandomData,Signature, MessageDigest) Classes de scurit et interfaces pour les fonctionnalits soumises contrle dexport (KeyEncryption, Cipher)

" JavaCard.framework
#

" JavaCard.security
#

" JavaCardx.crypto
#

51

7/9/2004

Compiler en Java (1/2)


" Obtention dun code JavaCard

52

7/9/2004

Compiler en Java (2/2)


" Rcapitulatif des oprations

53

7/9/2004

Architecture (1/5)

Card Executive Charge et slectionne les applications Communique avec le monde extrieur Gre le cycle de vie de la carte

Applet 1 Programme

Applet N Programme

Librairies standard (API) Interface cachant linfrastructure de la carte

Machine Virtuelle Java (interprteur) Excute les applets, garantit la scurit et gre le partage des donnes

Mthodes Natives Donnent accs aux ressources physiques telles que la mmoire, les E/S, le coprocesseur cryptographique

54

7/9/2004

Architecture (2/5)
" Mthodes natives
#

Fonctions de bas niveaux grant


Les E/S La mmoire Le coprocesseur cryptographique

"Machine virtuelle Java


# # # #

Excute le bytecode (obtenu aprs compilation et dition de liens) Offre le support du langage Gre le partage des donnes entre applications Implante au dessus du circuit intgr (OS + mthodes natives)

Indpendance totale par rapport la plate-forme de la carte

55

7/9/2004
Novembre 2001

Architecture (3/5)
" Librairies standard
#

Ensemble dAPIs # Cache les dtails de linfrastructure # Interface facile manipuler # Dfinition des conventions utilises par les applets pour accder aux mthodes natives

"

Applets
#

Programmes crits en JavaCard puis compils # Excution en rponse des demandes du terminal

56

7/9/2004
Novembre 2001

Architecture (4/5)
" Installation dune applet
# Ralis lors de la fabrication de la carte ou de sa mise jour

partir dun terminal # Chargement de lapplet en mmoire (ROM ou EEPROM) # Appel automatique de la mthode install () par le JCRE : phase de connaissance # Applet dfinitivement connue par le JCRE

57

7/9/2004
Novembre 2001

Architecture (5/5)
" Slection, activation et dsactivation dune applet
# Une Applet est inactive tant quelle nest pas slectionne pour # # # # #

tre excute Identification dune Applet par une cl unique Slection ralise par le terminal Suspension de lexcution de lApplet active : deselect() Activation de lApplet slectionne : select() Le JCRE redirige tous les APDUs de commande vers cette Applet

"Communication avec les applets


# Le JCRE appelle process() lorsquil reoit un APDU de

commande pour cette applet

58

7/9/2004

Cartes puce: architecture moderne

EEPROM

Root

Applet Register Applet 1 Applet 2 Applet N

+ Portabilit + Rapidit de development + Plate-forme ouverte + Multi-application


Java Card API GSM API

SGF GSM

Java Virtual Machine

ROM

Operating System Gnrique Interface driver HW et gestion coopration

Chip
59 7/9/2004

Scurit des cartes puce

60

7/9/2004

Types dattaques sur les cartes puce (1)


" Information transmises
#

Canaux de fuite (courant, paramtres dalgorithmes cryptographiques) Donnes (cls) ou code excutable Tension, horloge, mise hors specs de manire gnrale Chainage de commandes ou erreurs protocoles cryptographiques Dtection de changement de temps dexcution photographie temps rel des instructions en cours dexcution Post-traitement statistique des informations

" Information stockes


# #

" Mise en dfaut du Hardware " Dfauts du Software


#

" Attaques temporelles


#

" Attaques sur les consommations


# #
61 7/9/2004

Attaques sur les cartes puce (2)


" Attaques sur le chemin de test
#

Mise en mode test, sondes, reconstruction du design logique

" Ingnirie inverse


#

Reconstruction du Layout, dump du code ROM, rvlation chimique Utilisation de MEB, FIB ou autre pour rvlation du contenu EEPROM

" Glissements dalimentation ou interruption dhorloge


# #

Corruption de donnes sur le (les) bus Peuvent affecter un tout petit nombre de cycles CPU

" Attaques Lumire (Laser) " Mesures de radiations lectromagnetique


62

" Imagerie par scan Laser


7/9/2004

Exemple: attaque DPA (1/3)


X
(CLE)

CALCUL F(X,Y)
volt

CONSOMMATION U(t) = Fonction de X, Y

Y
(DONNEE)
t

CALCUL ROUND 1
RE=010001 K0=110101

P(K0,RE) utilis dans les calculs des rounds suivants

CONSOMMATION U(t) = Fonction de P,Y

volt

S1

P(K0,RE)=1010

Consommation au moment o intervient P(K0,RE) dans un calcul

63

7/9/2004

Exemple: attaque DPA (2/3)


HYPOTHESE DE CLE EXACTE
SO CON 1 2

SO CON
Classe 1 bit i du rsultat = 1
conso donne 1 conso donne 2

DPA

CON
Classe 0 bit i du rsultat = 0
conso donne 3

conso donne 4

CON SO 4

SO 3

HYPOTHESE DE CLE FAUSSE


Classe 1 bit i du rsultat = 1
conso donne 1

CON

SO 1

CON
conso donne 3

SO 3

DPA
CON

Classe 0 bit i du rsultat = 0


conso donne 2 conso donne 4

CON

SO 2

SO 4

64

7/9/2004

Exemple: attaque DPA (3/3)


N excutions du DES +
N mesures de consommation

+ +

+ +
i tn bi = 1

+
64 TRACES DPA

DONNEES

01011...1 10010...0
N donnes de 64 bits
1

01101...1
2

Hypothse de cl EXACTE

Nx64 Calculs du bit n i en sortie des S-box

bi tn

i =

+
0

+ + +

HYPOTHESES CLES

+
000000 000001
64 valeurs hypothtiques pour les 6 bits de la cl partielle K0

111111

65

7/9/2004

Cartes puce: Scurit Hardware


Scurit interne Scurit Externe
" Couches actives anti-intrusion " EEProm non rvlable " Scurit physique

- pas de retour mode test


" Dtecteurs de rayonnements
Reset Clock 0V

ADDRESSES Interface
and/or

Interface

5V NC I/O

RAM ROM

CPU DATA

EPROM EEPROM FeRAM

- UV, ionisation, etc... " Pas de comportement statique - frquence dhorloge minimale " Contrle des modes hors specs " Protection DPA/SPA " Protections auto-programmes " Pas dinterfrence OS/Interface
- contrle du PIN " Logique asynchrone, faible conso.

66

7/9/2004

Cartes puce: Scurit Software


"Masquage des points de synchronisation
#

Timing alatoires, oprations alatoires

"Masquage des actions cruciales


#

Duplication, fausses pistes, symtrisation,..

"Cryptographie "Contrle des droits d accs "Collaboration avec le MMU HW "Certification commune HW/SW ( Critres Communs )

67

7/9/2004

Exemple fondamental: La carte GSM/SIM

68

7/9/2004

Rappel: architecture Globale GSM


EIR PDN PSTN ISDN AUC HLR MS OMC VLR Connexion Physique

BSS MS

MSC

Connexion Physique Interfaces BSS

MSC

Shows relationships

Radio Interface MS: BSS: MSC: HLR: Mobile Station Base Station System Mobile Services Switching Centre Home Location Register

MSC-BSS Interface VLR: OMC: EIR: AUC:

Interface avec le rseau fixe Visited Location Register Operation and Maintenance Centre Equipment Identity Register Authentication Centre

69

7/9/2004

Fonctions de scurit offertes au niveau dun rseau GSM PLMN


" " " " " Confidentialit de lidentit du souscripteur (IMSI) Authentification de lidentit du souscripteur (IMSI) Confidentialit des donnes utilisateur lors des connexions physiques Confidentialit des donnes utilisateur en mode Connectionless Confidentialit des lments dinformation de signalisation

70

7/9/2004

GSM 11.11
Dfinit l interface entre le Subscriber Identity Module (SIM) et le terminal mobile ( Mobile Equipment ou ME ) pendant les phases dopration du rseau GSM Definit lorganisation interne de la carte SIM. Assure linteroperabilit entre SIM et ME independemment des diffrents fabricants et des oprateurs
SIM Partage de la Station Mobile (MS) ME

GSM Partage des fonctions Gestion de lAdministration

71

7/9/2004

Items couverts par la norme


"Caractristiques physiques, signaux lectriques protocoles de transmission "Modle pour la conception de la structure logique de la SIM "Caractristiques scuritaires "Fonctions dinterface "Description des commandes "Contenu des fichiers requis pour lapplication GSM "Protocole applicatif

72

7/9/2004

Carte SIM: organisation interne (1/3)


MF

DFGSM

DFTELECOM
EFADN

DFIS-41

EFICCID

EFELP

DFGRAPHICS

EFFND

EFSMS

EFCCP

EFMSISDN

EFSMSP

EFIMG

EFSMSS

EFLND

EFSMSR 4FXX

EFSND

EFEXT1

EFEXT2

EFEXR3

EFBDN

EFEXT4

Continued

73

7/9/2004

Carte SIM: organisation interne (2/3)


3F/ 7F/
5F/
MF

2F/
DFGSM DFTELECOM
EFADN

DFIS-41

EFICCID

EFELP

DFGRAPHICS

EFFND

EFSMS

6F/
EFCCP EFMSISDN EFSMSP EFSMSS EFLND

4F/

EFIMG

EFSMSR 4FXX

EFSND

EFEXT1

EFEXT2

EFEXR3

EFBDN

EFEXT4

Continued

74

7/9/2004

Carte SIM: organisation interne (2/3)


DFGSM EFLP

EFIMSI

EFKC

EFPLMNsel

EFHPLMN

EFACMmax

EFSST

EFACM

EFGID1

EFGID2

EFPUCT

EFCBMI

EFSPN

EFCBMID

EFBCCH

EFACC

EFFPLMN

EFLOCI

EFAD

EFPHASE

EFVGCS

EFVGCSS

EFVBS

75

7/9/2004

Continued

EFVBSS

Carte SIM: organisation interne (3/3)


DFGSM EFeMLPP

EFAAeM

EFECC

EFCBMIR

EFNIA

EFDCK

EFCNL

EFK.GPRS

EFLOCIGPRS

DFIRIDIUM

DFGlobst

DFICO

DFACeS

DFPCS1900

76

7/9/2004

Protocole Applicatif GSM


" Message: commande ou rponse. " Couple commande/rponse GSM : suite de messages consistant en une commande et la rponse associe. " Procdure GSM: suite de un ou plusieurs couples commande/rponse GSM " Session GSM: intervalle de temps entre la fin de la procdure dinitialisation et se terminant:
# Soit au dmarrage de procdure de fin de session GSM # Soit linstant dinterruption du lien SIM-ME

77

7/9/2004

Procedures
"Procdures gnrales:
Lecture dun EF Mise jour dun EF Extension dun EF ME ME ME

"Procdures de gestion SIM :


Initialisation SIM ME Fin de session GSM ME Requtes de codes dappel d urgence ME Requtes dextension de langage prfrentiel ME Requtes de langage prfrentiel ME Requtes dinformation administrative ME Requtes sur la table des services SIM ME Requtes de phase SIM ME

78

7/9/2004

Procedures
"Procdures lies la scurit GSM :
# # # # # # # #

Calcul dalgorithme GSM Requte dIMSI Requte dinformation type contrle daccs Requte intervalle de recherche HPLMN Informations de localisation Cl de Chiffrement Information canal BCCH Information sur PLMN interdits Vrification CHV Substitution de valeur CHV Dconnexion CHV Mise en route CHV Dblocage CHV

NET NET NET NET NET NET NET NET MMI MMI MMI MMI MMI

"Procdures lies au code CHV:


# # # # #

79

7/9/2004

Procdures
"Procdures de souscription:
#

# # # # #

# #

Numros dappel MMI/ME (ADN, FDN, MSISDN, LND, SDN, BDN) Short messages (SMS) MMI Indications de facturation (AoC) MMI Paramtres sur Capacits de Configuration (CCP) MMI Slection PLMN MMI Cell Broadcast Message Identifier MMI (CBMI) Group Identifier Level 1 (GID1) MMI/ME Group Identifier Level 2 (GID2) MMI/ME

80

7/9/2004

Procedures
"Procdures de souscription (suite.):
# # # # # # #

Nom du fournisseur de services (SPN) Voice Group Call Service (VGCS) Voice Broadcast Service (VBS) Pr-emption et Priorit Multi-niveau tendue (eMLPP) D-personnalisation des cls de contrle Status report sur les SMS (SMSR) Indicateurs dalerte rseau

ME MMI/ME MMI/ME MMI/ME ME MMI ME

81

7/9/2004

Commandes SIM
1 2 3 4 5 6 7 8 9 10 11 SELECT STATUS READ BINARY UPDATE BINARY READ RECORD UPDATE RECORD SEEK INCREASE VERIFY CHV CHAN GE CHV DISABLE CHV
MF * * DF * *

12 13 14 15 16 17 18 19 20 21 22
* * * *

ENABLE CHV UNBLOCK CHV INVALIDATE REHABILITATE RUN GSM ALGORITHM SLEEP (Obsolete: put SIM in Low Power) TERMINAL PROFILE ENVELOPPE FETCH TERMINAL RESPONSE GET RESPONSE
File EF linear fixed * * EF cyclic * *

Function SELECT STATUS READ BINARY UPDATE BINARY READ RECORD UPDATE RECORD SEEK INCREASE INVALIDATE REHABILITATE

EF transparent

* * *

* * *

* *

* *

* *

82

7/9/2004

Codage des commandes GSM


COMMAND SELECT STATUS READ BINARY UPDATE BINARY READ RECORD UPDATE RECORD SEEK INCREASE VERIFY CHV CHANGE CHV DISABLE CHV ENABLE CHV UNBLOCK CHV INVALIDATE REHABILITATE RUN GSM ALGORITHM SLEEP GET RESPONSE TERMINAL PROFILE ENVELOPE FETCH TERMINAL RESPONSE INS 'A4' 'F2' 'B0' 'D6' 'B2' 'DC' 'A2' '32' '20' '24' '26' '28' '2C' '04' '44' '88' 'FA' 'C0' '10' 'C2' '12' '14' P1 '00' '00' offset high offset high rec No. rec No. '00' '00' '00' '00' '00' '00' '00' '00' '00' '00' '00' '00' '00' '00' '00' '00' P2 '00' '00' offset low offset low mode mode type/mode '00' CHV No. CHV No. '01' '01' see note '00' '00' '00' '00' '00' '00' '00' '00' '00' P3 '02' lgth lgth lgth lgth lgth lgth '03' '08' '10' '08' '08' '10' '00' '00' '10' '00' lgth lgth lgth lgth lgth S/R S/R R R S R S S/R S/R S S S S S S/R R S S/R R S

CLA= A0 pour lapplication GSM


83 7/9/2004

GSM 11.14: vue densemble de lenvironnement SIM Application Toolkit


" Lenvironnement SIM Application Toolkit fournit des mcanismes permettant aux applications prsentes dans la carte SIM, dinteragir et dinter-oprer avec tout terminal mobile (ME) supportant les mcanismes spcifiques requis par ces applications. " Si $ (Multiple Card) $ est support une carte SIM supportant les mcanismes SAT doit tre capable de communiquer avec des cartes additionnelles et de recevoir de informations des lecteurs additionnels via le ME. " Les mcanismes SAT sont dpendants des commandes et protocoles relevant de la norme GSM 11.11.
# #
#

Dcouverts par une fin de procdure en 91 XX (ncessite Fetch Data de XX) SAT identifi dans le EFSST
Capacits du ME identifies dans la commande terminal profile

84

7/9/2004

Procdures SAT
"Procdures SIM Application Toolkit:
# # # # # # #

Tlchargement de donnes via SMS-CB (CBMID) NET Tlchargement de donnes via SMS-PP NET Slection de menu MMI Contrle dappel MMI/ME/NET SIM Proactive MMI/ME/NET Contrle SIM de SMS gnr par le ME MMI/ME/NET Requte dimage (si (Image) est supporte) MMI/ME

85

7/9/2004

GSM 11.14: Vue densemble de la structure SIM Application Toolkit


"Mcanismes de base
# # # # # # # # # #

Profile Download Proactive SIM Data download to SIM Menu Selection Call control by SIM MO Short Message control by SIM Event download Security Multiple card Timer Expiration

86

7/9/2004

Commandes et procdures SIM proactives


DISPLAY TEXT GET INKEY GET INPUT LANGUAGE NOTIF PLAY TONE SET UP IDLE MODE TEXT SELECT ITEM SET UP MENU CLOSE CHANNEL GET CHANNEL STATUS OPEN CHANNEL SEND SHORT MESSAGE SEND USSD SET UP CALL SEND DTMF
87 7/9/2004

RUN AT COMMAND SEND DATA RECEIVE DATA SEND SS POWER OFF CARD POWER ON CARD GET READER STATUS PERFORM CARD APDU POLL INTERVAL REFRESH POLLING OFF LAUNCH BROWSER PROVIDE LOCAL INFORMATION SET UP EVENT LIST TIMER MANAGEMENT

GSM 11.14: vue densemble de lenvironnement SIM Application Toolkit


Support du SIM Application Toolkit par les Equipments Mobiles
Command description CALL CONTROL CELL BROADCAST DOWNLOAD DISPLAY TEXT EVENT DOWNLOAD . MT call . Call connected . Call disconnected . Location status . User activity . Idle screen available GET INKEY GET INPUT GET READER STATUS (if $(MultipleCard)$ is supported) MENU SELECTION X X X X X X X X X X X Lc X Classe 1 2 X X X 3 X X X

88

7/9/2004

GSM 11.14: vue densemble de lenvironnement SAT


Support du SIM Application Toolkit par les Equipments Mobiles
Command description MO SHORT MESSAGE CONTROL MORE TIME PERFORM CARD APDU (if $(MultipleCard)$ is supported) PLAY TONE POLLING OFF POLL INTERVAL POWER ON CARD (if $(MultipleCard)$ is supported) POWER OFF CARD (if $(MultipleCard)$ is supported) PROVIDE LOCAL INFORMATION REFRESH SELECT ITEM SEND SHORT MESSAGE SEND SS SEND USSD SET UP CALL SET UP EVENT LIST SET UP MENU SMS-PP DOWNLOAD TIMER MANAGEMENT (if $(Timer)$ is supported) TIMER EXPIRATION (if $(Timer)$ is supported)
89 7/9/2004

Classe 2 X X X X

3 X X Lc X X X Lc Lc

X X X X X X X X X X

X X X X X X X X X X Lc Lc

Architecture GSM Java Card


Vue densemble de lAPI SIM base sur Java Card 2.1:

Applet GSMs

. . . Toolkit . . Applets . . . . . .

. . . . Applets . . . . . . .

Chargeur dApplets

SIM Toolkit Framework ..


Toolkit Registry Toolkit Handler File System

JCRE .. Interface partageable


90 7/9/2004

Le Framework SIM Toolkit


Toolkit Applet 1
Installation Dsinstallation

Applet 2

Toolkit Applet 3

Applet n
Package Sim.access Package Simtoolkit

Activation

Commandes Proactives P/C rponses

Accs Fichiers

Framework Toolkit
Activation Applet Proactive Commande Handler Gestionnaire de scurit Applet
APDU e.g. Enveloppes Polling Proactive, 91XX, Fetch, Commandes Proactives , Rponse Terminal

Installation Dsinstall./Applet

Securit
Accs Fichiers

GSM Framework ADPU JCRE

Fichiers

NOTE 1: The processus installation/dsinstallation est dfini dans les normes GSM []

91

7/9/2004

SIM et ME en action (1)


Receive ATR Execute PPS SELECT DFGSM GET RESPONSE SELECT EFPhase READ BINARY SELECT ELP GET RESPONSE READ BINARY VERIFY CHV STATUS SELECT EFSST GET RESPONSE READ BINARY
Initialisation

Basic Infos

User Authentification

Services disponibles

92

7/9/2004

SIM et ME en action (2)


TERMINAL PROFILE SELECT MF SELECT EF ICCD GET RESPONSE READ BINARY SELECT DFGSM SELECT EFIMSI GET RESPONSE READ BINARY SELECT EFAD GET RESPONSE READ BINARY SELECT EFLOCI READ BINARY

Identif+ Paramtres com

93

7/9/2004

SIM et ME en action (3)


"

SELECT EFKC READ BINARY SELECT EFBCCH READ BINARY SELECT EFFPLMN READ BINARY SELECT EFHPLMN READ BINARY SELECT DFTELECOM SELECT EFSMSS GET RESPONSE READ BINARY SELECT EFSMSp GET RESPONSE READ BINARY SELECT EFSMS GET RESPONSE Nx READ RECORD
7/9/2004

SELECT DF GSM RUN GSM ALGORITHM GET RESPONSE COM SELECT EFKC UPDATE BINARY SELECT EFLOCI UPDATE BINARY SELECT EFBCCH UPDATE BINARY SELECT EFLOCI UPDATE BINARY Off SELECT EFBCCH UPDATE BINARY

94

Distribution de la Scurit dans le rseau GSM

95

7/9/2004

Principe dauthentification dans le rseau GSM

" BS transmet un challenge de 128-bit RAND


" Le MEs retourne une rponse signe de 32-bit SRES via A3 " RAND et Ki sont combines via A8 pour donner une cl de 64-bit pour lalgorithme " Les trames de 114-bit sont chiffres en utilisant la cl et le numro de trame comme entre de A5
96 7/9/2004

Scurit du rseau GSM


"

La scurit du rseau GSM a t casse en Avril 1998


#

A3/A8= COMP128 V1 est faible, permet dextraire IMSI et Ki


! !

Accs direct au SIM (clonage du tlphone mobile) Requtes OTA au ME

Certains types de cartes ont t modifies depuis pour limiter le nombre de requtes COMP 128

" De nombreux pays ont t pourvus dune version affailblie de lalgorithme A5, dite A5/2:
#

Scurit du A5/1 : Brisable en temps rel avec 240 prcalculs Scurit du A5/2: Aucune (cassable en 5 cycles dhorloge);
7/9/2004

#
97

Principe de Cryptanalyse du COMP128


" Principes
# #

# #

Nombreuses itrations (5*8) Lapplication de gnration des clefs fk : r | r est applique 8 fois Chaque round est peu efficace: Les bytes i,i+8,i+16,i+24 la sortie du second round dependent seulement des bytes i,i+8,i+16,i+24 de lentre de COMP128 Tentative: Modification simultane de r0 and r8, et recherche de collisions internes [BGW98]

k0 k1

k16 r0 r1 r8

r16

rptition 8 fois

" Gnration de collisions!


#

k0

k16 r'0 r'1

r'16

Ca Camarche! marche!
98 7/9/2004

Deuxime exemple: la norme EMV pour les systmes de paiement

99

7/9/2004

Agenda

Pourquoi EMV? Un bref rappel sur EMV Les apports scuritaires Traitement des donnes scuritaires par les Rseaux Cartes VISA/MCI

100

7/9/2004

Pourquoi EMV - Le Business Case


Les objectifs fondamentaux
Fraude galopante Interoprabilit Cot des tlcoms Dmatrialisation des transactions

Rpondre de nouveaux contextes et crer de la valeur


E-commerce Banque en Ligne Services valeur ajoute

Etat de la Technologie:
Obsolescence de la technologie piste magntique (35 ans dage) Maturit de la technologie puce (25 ans dexistence)

101

7/9/2004

Types de fraude

BANK
04/01 CV MS SALLYWILSON

VISA

Perdue Vole Non reue

4976 9600 0019 1234

BANK
04/01 CV MS SALLY WILSON

VISA

Contrefaon Usage abusif Carte-non-prsente

4976 9600 0019 1234

102

7/9/2004

Les dimensions de la fraude


Poststatus Prestatus
(1)

PVN Contrefaon Usage abusif (2) National Emetteur International Acqureur International

(1) Perdue, Vole, Non Reue (2) Risque Crdit


103 7/9/2004

Une brve introduction EMV


EMV specifications globales pour les cartes, terminaux, & applications, developpes par Europay, MasterCard & Visa, pour assurer le bon fonctionnement et linteroprabilit des transactions puce pour les applications de dbit et de crdit. Interoprabilit
Nimporte quel terminal de paiement peut accepter des cartes originaires de nimporte quel Rseau de cartes. Tout carte mise dans un pays peut tre utilise dans dautres pays.

Dploye en UK Pilotes dans une vingtaine de pays Base du prochain systme bancaire franais
104 7/9/2004

Une brve introduction EMV (suite)


Ex: France: Droit au Rejet Ex: Israel : Le terminal est programm pour viter le blocage de la carte aprs 3 essais alors que 5 essais sont possibles

Options Nationales / par Emetteur


EUROPAY

VIS 1.4.0

Mchip/ Mchip Lite EMV 2000

& Europay

Standards ISO 7816

105

7/9/2004

Une brve introduction EMV (suite)

Card Script Processing Method (CSPM) Card Certification Method (CCM) Card Risk Management Method (CRMM) CardHolder Verification Method (CVM) Card Authentication Method (CAM) Card Application Selection Method (CASM)

106

7/9/2004

Card Authentication Method

Objectif
Eliminer la contrefaon carte Rendre la duplication carte difficile voire impossible

La Mthode
Le terminal vrifie les cryptogrammes SDA / DDA / CDA

107

7/9/2004

CAM : 3 niveaux: SDA / DDA / CDA


1ier niveau : SDA (EMV 96 et EMV 2000): le terminal contrle lauthenticit des paramtres de la carte PAN, Date de validit, ... Comme pour B0 (VA / VS). 2ime niveau : DDA(EMV 96 and EMV 2000): le terminal contrle la fois lauthenticit des paramtres de la carte (PAN, Date de validit, ...) et de la carte elle-mme. 3ime niveau : CDA ( EMV 2000) le terminal contrle la fois lauthenticit des paramtres de la carte (PAN, Date de validit, ...) et de la carte elle-mme. De plus il contrle lauthenticit de la dcision carte (accord de transaction offline, dcision daller online)

108

7/9/2004

Lauthentification en SDA

La CARTE contient : Card Issuer Public Key Certificate PI : Public information S=F(PI, Issuer Private Key)

Le TERMINAL contient : Scheme Provider Public Key

Le terminal lit les diffrentes informations dans la carte Le terminal recouvre la cl publique de lmetteur Le terminal vrifie la signature

109

7/9/2004

Lauthentification en DDA
La CARTE contient : Card Issuer Public Key Certificate Card Public Key Certificate Card Private Key Le TERMINAL contient : Scheme Provider Public Key

Le terminal lit les diffrentes informations dans la carte Le terminal recouvre la cl publique de lmetteur Le terminal recouvre la cl publique de la carte Le terminal envoie un challenge la carte La carte calcule un cryptogramme d authentification l aide de sa cl prive Le terminal vrifie la signature
110 7/9/2004

Lauthentification en CDA
La CARTE contient : Card Issuer Public Key Certificate Card Public Key Certificate Card Private Key Le terminal lit les diffrentes informations dans la carte Le terminal recouvre la cl publique de lmetteur Le terminal recouvre la cl publique de la carte Le terminal commence la transaction de paiement et envoie un challenge la carte La carte calcule un cryptogramme (MAC Triple DES) sur les donnes de la transaction l aide de la cl de transaction et calcule un cryptogramme d authentification l aide de sa cl prive Le terminal vrifie la signature et recouvre le cryptogramme de transaction
111 7/9/2004

Le TERMINAL contient : Scheme Provider Public Key

Cardholder Verification Method

Objectif
Eliminer la fraude lie aux cartes perdues, voles, non reues

La Mthode
Contrle local du code secret en clair ou chiffr Mthodes en vigueur : signature, contrle distant du code secret Techniques biomtriques

112

7/9/2004

Card Risk Management

Objectif
Limiter lusage abusif de la carte, lusage frauduleux des cartes perdues, voles, non reues

La Mthode
Limiter la fraude par lanalyse du risque par la carte; contrle de flux en montant et en nombre de transactions, mmorisation de lactivit transactionnelle de la carte pour aide la dcision, etc. Transaction accepte / refuse off-line Dcision de demande dautorisation

113

7/9/2004

Card Certification Method

Objectif
Avoir une preuve de la transaction Disposer dune mthode dauthentification carte / metteur forte Assurer la confidentialit et lintgrit des commandes de script

La Mthode
Calculer un crypto-certificat vrifiable par l Emetteur Disposer dun mcanisme cryptographique dauthentification forte de type Challenge / Rponse Supporter le mcanisme de Secure Messaging (Chiffrement + Intgrit) pour les commandes de Post-modification

114

7/9/2004

Card Script Processing Method

Objectif
Pouvoir modifier le comportement de la carte sur le terrain Post modification des paramtres de la carte

La Mthode
Commandes de Post-modification metteur vers la carte

115

7/9/2004

Exemples de commandes EMV (1)


"

Commande: ReadBinary
CLA INS P1 P2 Le xx xx Dataout String of bytes 00 00 B0 100b || SFI Address B0 Address

ISO ISO

Read (using SFI) Read (current EF)


"

Commande: WriteBinary
CLA INS P1 P2 Lc xx xx xx xx Datain String of bytes String of bytes + MAC (8 bytes) 00 00 04 04 D0 100b || SFI Address D0 Address

ISO ISO ISO ISO

Clear write (using SFI) Clear write (current EF) Secure write (using SFI) Secure write (current EF)
"

D0 100b || SFI Address D0 Address

Command: UpdateBinary
CLA INS P1 P2 Lc xx xx xx xx Datain String of bytes String of bytes + MAC (8 bytes) 00 00 04 04 D6 100b || SFI Address D6 Address

ISO ISO ISO ISO


116

Clear update (using SFI) Clear update (current EF) Secure update (using SFI) Secure update (current EF)

D6 100b || SFI Address D6 Address

7/9/2004

Exemples de commandes EMV (2)


Commandes transactionnelles
Commande: GetProcessingOptions
CLA INS Get Processing
MCL

EMV

P1 00

P2 00

Lc 02

Datain 8300

Le xx

Dataout AIP, AFL*

80

A8

Commande: GenerateAC
CLA INS P1 AC type AC type P2 00 00 Lc 1DEMV2 20MCL 1FEMV2 11MCL Datain CDOL1 data CDOL2 data Le Dataout 14EMV2 CID, ATC, 21MCL AC, IAD* 14EMV2 CID, ATC, 21MCL AC, IAD*

EMV EMV

1st GenerateAC 2nd GenerateAC

80 80

AE AE

* EMV2: template 80 / MCL: template 77

Commandes de script metteur


Commandes: BlockAppli, UnblockAppli, BlockCard
CLA INS
S S S

P1 00 00 00

P2 00 00 00

Lc 08 08 08

Datain MAC (8 bytes) MAC (8 bytes) MAC (8 bytes)

EMV EMV EMV


117

Block application Unblock application Block cardEMV2


7/9/2004

84 84 84

1E 18 16

Flot de transaction EMV


0 1 APPLICATION SELECTION INITIATE APPLICATION

2 READ APPLICATION DATA

3 OFFLINE DATA AUTHENTICATION 4 5 PROCESSING RESTRICTIONS CARDHOLDER VERIFICATION

TERMINAL RISK MANAGEMENT 6

7 8

TERMINAL ACTION ANALYSIS CARD ACTION ANALYSIS

ONLINE / OFFLINE DECISION OFFLINE

ONLINE

ONLINE PROCESSING & ISSUER AUTHENTICATION

SCRIPT PROCESSING

10

11
118 7/9/2004

COMPLETION

Schma dune transaction hors-ligne


BANK A

1 4
BANK C

2
Certificat Carte

3
TERMINAL TRANSACTION BOOK Transaction n1 Amount - Date - Currency etc... + Card Certificate Transaction n2 Amount - Date - Currency etc... + Card Certificate .... Transaction nN Amount - Date - Currency etc... + Card Certificate
119

Centre de traitement & de compensation

BANK B

BANK C

7/9/2004

Schma dune transaction en-ligne


BANK A

1 2
BANK C

5
Switching & clearing center

3 4

Card certificate + Online authorization

TERMINAL TRANSACTION BOOK Transaction n1 Amount - Date - Currency etc... + Card Certificate Transaction n2 Amount - Date - Currency etc... + Card Certificate .... Transaction nN Amount - Date - Currency etc... + Card Certificate

BANK B

BANK C

+ Online authorization
120 7/9/2004

Transaction EMV VS ...

Clearing System Card Authentication Method Cardholder Verification Method Card Risk Management Card Certification Method Script Processing Card Authentication Method Cardholder Verification Method Terminal Risk Management Authorization Host International International Payment Payment Scheme Scheme

121

7/9/2004

Transaction piste

Clearing System Card Authentication Method Cardholder Verification Method Card Risk Management Card Certification Method Script Processing Card Authentication Method Cardholder Verification Method Terminal Risk Management Authorization Host International International Payment Payment Scheme Scheme

122

7/9/2004

Impact des Mthodes EMV


Prestatus
(1)

Poststatus

LSN Counterfeit
(2)

Abuse

CAM CVM CRM Interoperability

National International Issuer International Acquirer

(1) Lost, Stolen, Not Received (2) Credit Risk


123 7/9/2004

Les types dattaques


Pour lauthentification carte
Copie dune carte

Facile pour une authentification SDA : Copie de donnes accessible en lecture Trs difficile en DDA, CDA : Ncessite une attaque sur le composant Trs difficile en SDA, DDA, CDA : Ncessite une crypto-analyse de la cl secrte RSA de lmetteur

Fausse carte (gnrer des cartes associes diffrents PAN)

Pour la gnration de certificats de transaction


Copie dune carte :

Trs difficile : Ncessite une attaque sur le composant (clef de certificats metteur) Trs, trs difficile : Ncessite la connaissance de la cl matre de gnration des certificats

Fausse carte :

124

7/9/2004

Les attaques et les rponses


Mode d'authentification SDA Attaques Copie de la carte Niveau de l'attaque Trs facile Rponses Surveillance par l'metteur du comportement du porteur Vrification des certificats de transaction pour mise jour de Black List Fausse carte DDA Copie de la carte Fausse carte Substitution de cartes CDA Copie de la carte Fausse carte Substitution de cartes Trs difficile Trs difficile Trs difficile Allongement de la taille de la cl metteur Amlioration de la scurit du chip et de l'OS Allongement de la taille de la cl metteur

"Facile" selon Rponse : CDA conditions Trs difficile Trs difficile Idem copie carte Amlioration de la scurit du chip et de l'OS Allongement de la taille de la cl metteur

125

7/9/2004

La gestion de la scurit

Composant sr et OS valu Gestion des cls secrtes metteur (renouvellement, revocation, stockage...) Contrle des certificats de transaction Gestion de liste noire

126

7/9/2004

Analyse par type de transaction

Type de transaction Retrait d'espces Paiement de proximit OnLine Paiement de proximit OffLine Automate (ticket, vido, essence) On-Line Automate (ticket, vido, essence) Off-Line Web On-line Web Off-line

Type de terminal ATM POS POS POS ddi POS ddi Server Server

Niveau de risque Trs Faible car transaction On-Line Trs Faible car transaction On-Line Faible. Le marchand peut tre acteur dans le processus de vrification. Trs Faible car transaction On-Line Fort Trs Faible car transaction On-Line Trs fort

127

7/9/2004

Carte puce Evolution de la technologie

128

7/9/2004

Cartes puce: nouvelles technologies (1/2)


Hardware
Migration vers le 32 bit vers 2003-2004
' '

MMU, Cryptographie intgre, acclrateurs HW (Java) Horizon 2003: CMOS 0.18, 8K RAM, 512 KB ROM, 128-256KB EEPROM

Support intgr du mode sans-contact Nouvelles interfaces I/O: USB, Nouvelles technologies de mmoires: Flash, FERAM, Flex

Architecture
Cartes ouvertes multi-applications avec pare-feux HW et SW Prise en compte directe au niveau de la carte de nouveaux protocoles : IEEE 802.11, TCP/IP, Bluetooth Multi-thread voire multitche

129

7/9/2004

Cartes puce: nouvelles technologies (2/2)


Logiciel
Architectures modulaires de type PC Evolutions de JavaCard: Scurit, RMI, Convergence vers Java Tlchargement scuris d applications (modes interprt ET natif)

Scurit
Diffrentiateur essentiel Importance de la mthodologie Critres Communs Approche scuritaire prventive supporte par des techniques de preuve et modlisation abstraites

Importance des standards mondiaux


ETSI/3GPP, EMV/Global Platform, ISO/IEC 15408,...

130

7/9/2004

Cartes puce: Evolution du Hardware


2008-2010 400 MHz - FlexMem 100 Mbytes NVM RSA 2048 in 10 ms 2006 200 MHz - Bluetooth 4 Mbytes NVM RSA 2048 in 10 ms PC 1997

Disponibilit de la technologie

PDA

2004

60-100 MHz - Flash 512KB-1 Mbyte NVM RSA 2048 en 50 ms

Mme puissance quun PC de 1997

2002

50 MHz -32 bit/ USB 256-512 Kbytes EE RSA 2048 en 300 ms

Mme puissance quune SUN 2 1982 plus DSP

2000

15 MHz 64-128 Kbytes EE RSA 2048 en 500 ms

Mme puissance quune VAXStation I (1981) plus cryptographie

1998

7 MHz 32 Kbytes EE RSA 1024 en 500 ms

Mme puissance quun PDP 11/70 (1979) , plus cryptographie

1996

3 MHz - RSA 4 Kbytes RSA 1024 en 500 ms

Mme puissance quun PC 1978, plus cryptographie

Taille du chip 25 mm2


131 7/9/2004

Cartes puce: Evolution du Software


2007 Connectique spontane Biomtrie avance Traitement crypto au vol OS temps rel multi-tche 3GPP- OS 32 bit Multi-application-

Disponibilit de la technologie
2005 2004 2003 2002 2001 2000 1999 1998 1997
132

2006

Remote communication Internet (Java RMI)

WIM/XML/TCP-IP/ Biomtrie

WAP Microbrowser (SIM Alliance)

Java Card combin avec PK RSA

Java Card +GSM Subscriber Identity Module (SIM) Java Card

7/9/2004

Vous aimerez peut-être aussi