45
La carte à microprocesseur De la carte à mémoire à Java Card Un exemple de système embarqué Pierre.Paradinas @ cnam.fr Cnam/Cedric Systèmes Enfouis et Embarqués (SEE) P. Paradinas - Cnam - 2006 Plan La carte à “mémoire” histoire d’une technologie La carte à microprocesseur Architecture matériel Normes et standards Autre modèle d’OS (BasicCard, Multos, .Net,...) Nouveaux modèles applicatifs Enjeux et perspectives de l’industrie Java Card 1 2

La carte à microprocesseur De la carte à mémoire à …cedric.cnam.fr/~paradinas/sem/master/CoursCarte.pdf · compte, à l'ordinateur central, était aussitôt diminué de la valeur

Embed Size (px)

Citation preview

La carte à microprocesseurDe la carte à mémoire à Java CardUn exemple de système embarqué

Pierre.Paradinas @ cnam.frCnam/Cedric

Systèmes Enfouis et Embarqués (SEE)

P. Paradinas - Cnam - 2006

Plan

La carte à “mémoire” histoire d’une technologie

La carte à microprocesseur

Architecture matériel

Normes et standards

Autre modèle d’OS (BasicCard, Multos, .Net,...)

Nouveaux modèles applicatifs

Enjeux et perspectives de l’industrie

Java Card

1

2

P. Paradinas - Cnam - 2006

L’invention de la carte...

Les origines sont multiples :

Les années 70...

Brevets : japonais (Arimura), allemand (Juergen Dethloff), Rolland Moreno (France), USA,...

1974 : mémoire protégée par code d’accès (Innovatron/Moreno),

Roman de R. Barjavel “La nuit des temps”

L’implication d’industrielle de Bull et Schlumberger

• Voir : http://www.cardshow.com/musee_carte.php

P. Paradinas - Cnam - 2006

La nuit des temps

Chaque fois qu'un Gonda désirait quelque chose de nouveau, des vêtements, un voyage, des objets, il payait avec sa clé. Il pliait le majeur, enfonçait sa clé dans un emplacement prévu à cet effet et son compte, à l'ordinateur central, était aussitôt diminué de la valeur de la marchandise ou du service demandés.

René Barjavel, in “La nuit des temps”, cité dans le n° 176 de “La Recherche”, avril 1986, “Les cartes à puce”, Michel UGON, Louis GUILLOU, p.470

3

4

P. Paradinas - Cnam - 2006

Et des implémentations...

On retrouve aussi cette forme dans un prototype de R. Moreno, le Java Ring de Sun Microsystem Inc, et le iButton de Dallas Semiconductor

P. Paradinas - Cnam - 2006

Premiers prototypes/produits

1978 : appel d’offre des banques françaises,

3 familles de produit apparaissent :

carte mémoire,

carte logique cablée,

carte à microprocesseur (SPOM/MAM).

5

6

P. Paradinas - Cnam - 2006

Les familles de produit

Carte

Carte à contacts Carte sans contact

MémoireLogique cablée

Microprocesseur

P. Paradinas - Cnam - 2006

La carte à mémoire

Carte

Carte à contacts Carte sans contact

MémoireLogique cablée

Microprocesseur

7

8

P. Paradinas - Cnam - 2006

La carte mémoire

1ère génération : fonction logique de stockage de données, pas de CPU.

notion de zone:

zone à valeur fixe, non modifiable [identifiant émetteur],

zone pour l’écriture, modifiable [compteur d’unité],

notion de fusible, cycle de vie de la carte [par exemple la zone à valeur fixe devient non modifiable après que le fusible soit grillée : OTP (One Time Programing)].

Exemple la télécarte

(mémoire de 256 bits = ZP (96) + ZL (150))

Pros : coût très bas. Cons : “clonage” simple.

P. Paradinas - Cnam - 2006

La carte à mémoire

Pour pallier à la faiblesse de résistance au clonage, introduction d’algorithme d’authentification dynamique de la carte.

En effet, avant une partie de la mémoire (EPROM) est inscrite en pré-perso chez les fabricants :

état vierge :

état après pré-personnalisation de toutes les cartes :

Télécarte :

Pas une “télécarte” :

Pour pallier à cette faiblesse on introduit une authentification dynamique.

0 0 0 0

0 0 1 1

1 1 0 0

9

10

P. Paradinas - Cnam - 2006

Carte à logique cablée

Carte

Carte à contacts Carte sans contact

MémoireLogique cablée

Microprocesseur

P. Paradinas - Cnam - 2006

T2G (Télécarte de deuxième génération)

Principe : (d’après http://gemplus.com)

11

12

P. Paradinas - Cnam - 2006

Caractéristiques des cartes mémoires

Plusieurs produits “génériques” :

Eurochip II,

T2G (Protocole allemand).

Caractéristiques (cas GPM 375, T2G) :

Le passage de l’EPROM à l’EEPROM a permis l’introduction de compteur (ici 32,767 unités).

Algorithme dynamique d’authentification (vérifié par un SAM = Security Access Module), procédure CBC (Cipher Block Chaining) pour lier authentification et signature de transaction.

Tension 5v, Protocole synchrone (5 contacts).

Durée de rétention , protection contre l’ESD > 4,000 volts.

P. Paradinas - Cnam - 2006

Organisation de la mémoire

Adresse Contenu Rôle

0-15 Card manufacturer area Identifies chip & card manufacturer

16-23 Issuer reference Identifies issuer or application

24-63 Card identification areaContains card serial number, secret key index, initial face value...

64-103 Abacus counter area Holds balance of the card (units)

128-191 Authentication key Contains card secret key

288-319 Pull-out flagsEnables to restore final counter value if transaction interrupted

320-375 56-bit user defined area Erasable

13

14

P. Paradinas - Cnam - 2006

Autres cartes de ce type

Carte de plus grande capacité, le contrôle d’accès et la logique d’accès sont “cablés”.

d’après http://gemplus.com

Produit GPM 2K ou 8K :

Protection par code secret,

5v,

Utilise aussi le protocole 7816-3, partie synchrone

P. Paradinas - Cnam - 2006

Autres Aspects

Coût ≈ 0.2$ (en quantité...)

Production annuelle en baisse, néanmoins 600 M unités ?

Tendance du marché :

Après les années de déferlement (199x)

Marché en stagnation :

Dans les pays émergents le GSM à beaucoup baissé en prix les autorités passent plus directement aux réseaux mobiles (avec pré-paiement si nécessaire),

Dans les pays plus riches tout le monde à un téléphone mobile donc le besoin en téléphonie public est plus faible.

Carte avec matière recyclable, carte de collection, etc... sont des moyens de diversification.

15

16

P. Paradinas - Cnam - 2006

La carte à logique câblée

Fonction : la carte comporte de la mémoire et des règles d’utilisation de celle-ci.

La logique des règles est implantée de manière physique dans le silicium du composant de la carte.

Pros : simple à définir,

Cons :

Pas de souplesse, d’évolutivité de la carte : une caractéristique correspond à un ensemble de porte logiques,

Un silicium <=> une fonctionnalité, T2M plus long qu’avec une approche microcontrôleur et programme.

Conduit à la carte à microprocesseur.

P. Paradinas - Cnam - 2006

La carte à microprocesseur

Carte

Carte à contacts Carte sans contact

MémoireLogique cablée

Microprocesseur

17

18

P. Paradinas - Cnam - 2006

Carte à microprocesseur

1978 brevet SPOM, Bull, Michel Ugon

Self Programming Once Memory (ou MAM : Microcalculateur Autoprogrammable Monolithique)

CPU + bus : permettant l’exécution de programmes, contrôlant l’accès à des mémoires, et la programmation d’une mémoire.

1ère implémentation de la “smart card” (CP8)

RAM : 36o

EPROM : 1ko

ROM : 1,6 ko

P. Paradinas - Cnam - 2006

Architecture logicielle

Gestion protocole d’E/S

Gestion de la mémoire

Fonction cryptographique

“Telepass” algorithme secret : Telpass (Data, Key)

19

20

P. Paradinas - Cnam - 2006

Particularité du “système d’exploitation”

SE et application sont imbriqués (de manière inextricable) :

Pas de notion de SE.

Modèle absent ou rudimentaire :

Une structure de données = plan mémoire avec des zones et valeurs comme indicateurs de statut ou avancement dans le cycle de vie de la carte.

On parle de “mapping” carte.

Une suite de fonction = activable ou pas en fonction des valeurs de verrous (locks) qui agissent plus ou moins directement sur la mémoire.

On parle de “jeu de commandes”.

P. Paradinas - Cnam - 2006

Exemple de “mapping” (carte M4)

Clés

Mémorise les accès

Adresses + Locks + n° série

Zone secrète

Zone des accès

Zone des transactions

Zone libre

Zone de fabrication

Zone confidentielle

A la préperso (à l a sortie de l’usine) : clé d e fabrication

21

22

P. Paradinas - Cnam - 2006

Fonctionnement (1)

A la préperso (à la sortie de l’usine) : clé de fabrication

Clés

Mémorise les accès

Adresses + Locks + n° série

P. Paradinas - Cnam - 2006

“Personnalisation”

ZS

Mémorise les accès

ZC

ZLAdresses + Locks + n° série

Fonctionnement (2)

Zone secrète (émetteur et porteur)

Zone des accès

Zone libre (information)Zone de fabrication

Zone confidentielle (information)

23

24

P. Paradinas - Cnam - 2006

Fonctionnement (3)

ZS

Mémorise les accès

ZC

ZT

ZLAdresses + Locks + n° série

Zone secrète (émetteur et porteur)

Zone des accès

Zone libre (information) : lecture possibleZone de fabrication

Zone confidentielle (information) :Lecture après présentation de code

Zone transaction (information) :Lecture & Écriture en fonction des protections

P. Paradinas - Cnam - 2006

Fonctionnement (4)

Format du mot de 32 bits :

Avec rôle particulier pour V, C et CA.

V C CA _ _ _ _ _

25

26

P. Paradinas - Cnam - 2006

Fonctionnement (3)

Cycle de vieFABRICATION

PRÉ-PERSONALISATION

PERSONALISATION

ACTIVATION UTILISATION FIN DE VIE

BLOCAGE

CONTRÔLE

TRANSPORT SÉCURISÉ

CONTRÔLE

TRANSPORT SÉCURISÉ

CONTRÔLE

P. Paradinas - Cnam - 2006

Les grands familles de SE

Les prémisses (avant 1990):

M4, BO, COS,...

Mono-application

Plus ou moins figé dans les fonctions et structures

COS : possibilité d’ajouter des fonctions

Les évolutions (1990-1995) :

MP, MP100, MCOS

Multi-application (répertoire ?)

CQL (1993), Basic Card,....

En avant vers l’ouverture...

27

28

P. Paradinas - Cnam - 2006

A propos du COS...

et de l’ajout de fonctions...

Programme=

FonctionnalitésMémoire

Un programme

Est ce possible ?

Quels risques !!!!

P. Paradinas - Cnam - 2006

Exercices

Dans quelles conditions on peut réaliser ce type d’ajout de fonction ?

Le RESET doit être non contournable (pourquoi ?)

Table d’aiguillage

Mémoire

RESET

Lecture Cmde

Cmde Std

Cmde Filtre :

- CmdAdd1

- CmdAdd2Un programme

Mémoire

29

30

P. Paradinas - Cnam - 2006

Architecture matérielle aujourd’hui

CPU : 8, 16 & 32 bits,

Coeur 8051, AVR, ARM, MIPS, propriétaire

Mémoires :

RAM : 128o à 8/(16+16)ko

NVM (EEPROM/Flash) : 768 ko + user page 256 ko

ROM : 256/512 ko

Co-processor

Java Card : exécution directe de Byte Code Java Card Technology 2.2

P. Paradinas - Cnam - 2006

A propos de la mémoire

MMU :

User Flash 768ko + 256 ko User Page Flash,

Organisée en secteur

User Flash : 12*64 ko (sous secteur de 8 ko)

• Effacement 1.5 s, programmation de mot de 32-bit 100 μs

User Page Flash : 128 * 2 ko

• Effacement sous secteur : 50 ms, programmation de mot de 32-bit 200 μs

• 32-bit word Erase in 2 ms typical3 V TO 5.5 V SUPPLY VOLTAGE

La Ram user peut servir de “page” à des secteurs de la Flash

31

32

P. Paradinas - Cnam - 2006

Chargement du code peut être sécurisé (chargement chiffré, déchiffrement dans la carte)

Un MPU contrôle :

1 accès code et 1 accès data par BUS séparé,

Pare feu entre application,

Accès aux périphériques (I/O, générateur de nombre aléatoire, timer,...)

A propos des accès et gestion mémoire

P. Paradinas - Cnam - 2006

Performance des co-processeurs

En cryptographie :

Algo Fonction Tps (horloge interne à 33Mhz)

RSA (1024) Signature avec CRT 79 ms

RSA (2048) Signature 485 ms

DESSimple 18 µs

Triple 8 µs

AES avec calcul sous clés 85 µs

33

34

P. Paradinas - Cnam - 2006

Détecteur de sécurité

Horloge (haute/basse)

Tension

Température

Glitch sensor

Lumière

Voir aussi cours sécurité et cartes (MASTER SEM & DLS)

P. Paradinas - Cnam - 2006

Les standards

Les normes liées à la carte :

ISO,

ETSI,

EMV,

ICAO,

Santé,

...

35

36

P. Paradinas - Cnam - 2006

Les standards ISO

SC 17, WG4...

XXX

ISO/IEC 7816-1Identification cards -- Integrated circuit(s) cards with contacts -- Part 1: Physical characteristicsCartes d'identification - Cartres à circuit(s) intégré(s) à contacts - Partie 1 : Caractéristiques physiquesPublished on 1998-10-15 (First Edition)The approved new title, Identification Cards - Integrated circuit cards Part 1: Cards with contacts: Physical characteristics, (see SC 17 resolution 499), will replace the current one at the next revision.

ISO/IEC 7816-1:1998/AM 1Identification cards – Integrated circuit cards - Part 1 – Cards with contacts: Physical characteristics -- Amd 1 Maximum height of the IC contact surface FPDAM Ballot 17n2070 2002-01-30 to 2002-05-31FPDAM Ballot Results 17n2127 2002-06-05FDAM text sent to ISO/CS for FDAM ballot 17n2179 2002-09-20FDAM Ballot 17n2317 2003-05-08 to 2003-07-08FDAM Ballot Results 17n2335 2003-07-16FDAM Disposition of Comments wg4n1764.pdf 2003-10-28Published on 2003-11-15 (First Edition )

P. Paradinas - Cnam - 2006

Partie 1 : caractéristique physique

Dimension :

85.60 x 53.98 x 0.76 mm

Contraintes : flexion et torsion

AMD 1 (Amendement 1) : décalage maximum des contacts de la puce par rapport à la surface 0.1 mm (voir exposé sur la normalisation...)

37

38

P. Paradinas - Cnam - 2006

Les standards ISO

ISO/IEC 7816-2Information technology -- Identification cards -- Integrated circuit(s) cards with contacts -- Part 2: Dimensions and location of the contacts Technologies de l'information - Cartes d'identification - Cartres à circuit(s) intégré(s) à contacts - Partie 2 : Dimensions et emplacements des contactsPublished on 1999-03-01 (First Edition )The approved new title, Identification Cards - Integrated circuit cards Part 2 – Cards with contacts: Dimensions and location of the contacts, (see SC 17 resolution 499), will replace the current one at the next revision. Systematic Review Ballot 2004-02-12 to 2004-08-12Systematic Review Results : 17n2683 2005-02-01

ISO/IEC 7816-2:1999/AM 1Identification cards – Integrated circuit cards - Part 2 – Cards with contacts: Dimensions and location of the contacts -- Amd 1 Assignment of contacts C4 and C8 PDAM Ballot Results 17n2078 2002-02-20PDAM Disposition of Comments WG 4 N 1637 2002-05-16FPDAM Ballot : 17n2191 2002-09-20 to 2002-12-18FPDAM Ballot Results : 17n2256 2002-12-20FPDAM Disposition of Comments wg4n1708 2003-07-10FDAM Ballot 2004-02-26 to 2004-04-26FDAM Ballot Results 17n2509

P. Paradinas - Cnam - 2006

Partie 2 : dimensions et positions des contacts

Les 8 contacts :

Plus de VPP depuis 1990

C1VCC

(Supply voltage) Gnd C5

C2 RST (Reset)VPP

(SPU :standard or proprietary use)

C6

C3 Clock I/O C7

C4 RFU RFU C8

39

40

P. Paradinas - Cnam - 2006

Evolution

C6 : connexion d’une antenne

C4 + C8 : utilisation pour le protocole USB

P. Paradinas - Cnam - 2006

Les standards ISO

Public :

ISO/IEC 7816-3:1997 Part 3: Electronic signals and transmission protocols Partie 3 : Signaux électroniques et protocoles de transmission

ISO/IEC 7816-3:1997/Amd 1:2002 Amendement 1 : Electrical characteristics and class indication for integrated circuit(s) cards operating at 5 V, 3 V and 1,8 V

En chantier :

ISO/IEC 7816-3Part 3: Electronic signals and transmission protocols Partie 3 : Signaux électroniques et protocoles de transmission

41

42

P. Paradinas - Cnam - 2006

La partie 3

Voltage, 3 classes :

5 V for class A, 60 mA,

3 V for class B, 50 mA,

1,8 V for class C, 30 mA.

Au démarrage :

Le lecteur doit activer la carte mise (sous tension) et effectuer un RESET à froid,

La carte et le lecteur peuvent échanger de l’information,

La carte est désactiver électriquement.

P. Paradinas - Cnam - 2006

Le RESET

Le RESET va permettre de stabiliser les paramètres d’utilisation :

RESET à froid, en fonction de la réponse de la carte le terminal pourra présenter une autre classe (l’ordre n’est pas précisé),

Après le choix de la classe, et à l’aide RESET à chaud la carte et le terminal pourront s’entendre sur d’autres paramètres comme une vitesse de communication supérieur.

!"#$!%&'()!"'*+,-./012234%5'

!"#$%&#'(")**+","-.."/01234"/545/657' ,,"

-6/61' "7879:;<='<>':?7':@A=BC;BB;<='D@<:<9<8'

-835/" 325"9:4;5/"3<"/5453=" 325">9/7"429..";903" 8</">29/9>35/4"3/9:4?03357"@A" 325" 0:35/89>5"7560>5B" "C25">9/7"429.."0:35/D/53"325?"9>></70:1"3<"325"?<75"<8"<D5/930<:"94"8<..<;4B"

! #8"C-1" 04"D/545:3"0:"325"-:4;5/E3<EF5453"G455"HBIBIJ=" 325:"325"?<75"<8"<D5/930<:"04"4D5>080>B""C25">9/7"429.."K45"325"3/9:4?0440<:"D/<3<><."/585/5:>57"@A"325"3AD5"C"5:><757"0:"C-1"G455"HB)JB"

! #8"C-1" 04"9@45:3=" 325:" 325"?<75"<8"<D5/930<:" 04":51<[email protected]" "-:"L0?D.0>03"D/<3<><."45.5>30<:M" 04"D<[email protected]"@9457"<:"325"69.K5"<8"325"80/43">29/9>35/"/5>50657"@A"325">9/7B"

• #8"325"69.K5"04":<3"NOON="325:"325">9/7"429.."K45"325"L80/43"<885/57"3/9:4?0440<:"D/<3<><.M"G455"HBIBPJB"

• #8" 325"69.K5" 04" NOON=" 325:" 325">9/7"429.."K45" 325"Q/<3<><."9:7"Q9/9?535/4"$5.5>30<:" GQQ$="455"RJB""-835/"9"4K>>5448K."QQ$"5S>29:15"G455"RBPJ="325">9/7"429.."K45"325":51<309357"3/9:4?0440<:"D/<3<><.B"

T%C'"I" C25"69.K5"<8"QQ$$"GNOON="455"RB)J"04"0:69.07"8</"(U-"GCV*="455"I*BPB)J"9:7"8</"T-W"GCVI="455"IIBPB)BIJB"

T%C'")" #:"9"?K.30ED/<3<><.">9/7"<885/0:1"CV*"0:":51<[email protected]"?<75="<:.A"CV*">9:"@5"0?D.0>03.A"45.5>357B"

-4"325"9:4;5/"3<"9";9/?"/5453"?9A"70885/"8/<?"325"9:4;5/"3<"325"D/560<K4"/5453="325"0:35/89>5"7560>5"?9A";9/?"/5453"325">9/7"3<"3/A"3<"4;03>2"325"?<75="93"9:A"30?5="565:"7K/0:1"325"9:4;5/"3<"/5453="@K3":<3"@58</5"/5>5D30<:"<8"325"?9:793</A">29/9>35/4"C$"9:7"C*"G455"XB)"9:7"HBIBIJB""C25";9/?"/5453"429..":<3"@5"0:0309357"

.544"329:"Y"YZY"GV"I)"""PX)J">.<>[">A>.54"9835/"325".5970:1"5715"<8">29/9>35/"C*B"

\-FT#T]" -";9/?"/5453"0:0309357"7K/0:1"325"9:4;5/"3<"/5453"?9A"79?915"9">9/7"><?D.09:3";032"325"D/560<K4"57030<:"G#$%&#'("XHIZEP^IRRXJB"

T%C'"I" -">9/7"3/9:4?0330:1">29/9>35/"C-1"3<"9:"0:35/89>5"7560>5":<3"9;9/5"<8"325"5S0435:>5"<8"4D5>080>"?<75">9::<3"

/5.A"<:"9";9/?"/5453"3<"4;03>2"325"?<75B"

T%C'")" -:" 0:35/89>5"7560>5"2960:1"7535>357">29/9>35/"C-)"42<K.7":<3"0:030935"9";9/?"/5453"@58</5"9":<3"4KDD</357"69.K5"04"8<K:7"0:"325"/5>50657">29/9>35/4"</"325">9/7"294"30?57"<K3B"

T%C'"P" -:" 0:35/89>5"7560>5" 89>0:1" 9" >9/7" 0:":51<[email protected]"?<75"9:7"4KDD</30:1" :50325/"QQ$"5S>29:15" :</" 325" L80/43"<885/57"3/9:4?0440<:"D/<3<><.M">9:"50325/";9/?"/5453"</"/5_5>3"325">9/7B"

O01K/5"P"4K??9/0`54"325"D/0:>0D.54"<8"45.5>30<:"<8"325"3/9:4?0440<:"D/<3<><.B"

! !"#$%&%$'()*+,-%,,%.+'/).0.$.1'

2%),0'3&&#)#4'()*+,-%,,%.+'/).0.$.1'

5#6.0%*0#4'()*+,-%,,%.+/).0.$.1'

-:4;5/"3<"F5453"

T51<[email protected]"a<75"

$D5>080>"a<75"7*)-'8#,#0'

7*)-'8#,#0'

C-)"D/545:3^""$D5>080>"?<75"

C-)"9@45:3^""T51<[email protected]"?<75"

9.14'8#,#0' QQ$"'S>29:15"

"(;EF@7'/'G'H@;=9;D87B'<>'B7879:;<='<>':?7':@A=BC;BB;<='D@<:<9<8'

(.9K45"I)"4D5>08054" 325" 3/9:4?0440<:"<8"><??9:7E/54D<:45"D90/4"@A"CV*=" 325"29.8E7KD.5S" 3/9:4?0440<:"<8">29/9>35/4";032" 325" 0:35/89>5"7560>5"94" 325"?9435/"94"4D5>08057" 0:">.9K45"I*="9:7"@A"CVI=" 325"29.8E7KD.5S"3/9:4?0440<:"<8"@.<>[4"94"4D5>08057" 0:" >.9K45"IIB" "\25:":<" 3/9:4?0440<:" 04"5SD5>357" 8/<?" 325">9/7" G5B1B="9835/"D/<>5440:1"9"><??9:7E/54D<:45"D90/"9:7"@58</5"0:030930:1"325":5S3"<:5J="325"0:35/89>5"7560>5"?9A"43<D"325">.<>["401:9."08"325">9/7"4KDD</34">.<>["43<DB"

-6/6/' IA@C'@7B7:'

->></70:1"3<"O01K/5"Y="325"0:35/89>5"7560>5"0:0309354"9";9/?"/5453"G93"30?5"!>J"@A"DK330:1"F$C"3<"43935"U"8</"93".5943"Y**">.<>[">A>.54"G75.9A""5J";20.5"b(("/5?90:4"D<;5/57"9:7"(Uc"D/<60757";032"9"[email protected]"9:7"[email protected]">.<>["401:9.B""C25">9/7"429.."453"#&%"3<"43935"d";0320:")**">.<>[">A>.54"G75.9A""7J"9835/"325"43935"U"04"9DD.057"3<"F$C"G93"30?5"!>!"!"7JB""C25"0:35/89>5"7560>5"429.."01:</5"325"43935"<:"#&%";20.5"F$C"04"93"43935"UB"

43

44

P. Paradinas - Cnam - 2006

Les protocoles

PPS (Protocol and Parameter Selection) permet d’ajuster les paratmètres dans la phase de RESET :

Type de protocole, vitesse,

Actuellement de 9 600 Bds à 115 000 Bds

Les protocoles :

T = 0 à T = 15

T = 0 : Protocole par “caractères” half duplex

T = 1 : Protocole par “blocs” half duplex

P. Paradinas - Cnam - 2006

Les autres protocoles réservés

T=2, and T=3 sont réservés pour le full-duplex; T=4 pou half-duplex caractères,

T=5 to T=13 réservé pour l’ISO/IEC JTC 1/SC 17,

T=14 pour protocole propriétaire,

T=15 pas un protocole, mais pour interface octet.

45

46

P. Paradinas - Cnam - 2006

Le T=0

Le lecteur initialise la communication par la transmission de 5 octets de commande entrante ou sortante :

P1 et P2 paramètres;

P3 nombre d’octets échangés dans la commande.

si cmde sortante P3 = 0 => 256 octets,

si cmde entrante P3 = 0 => pas de données.

Après réception des 5 octets la carte répond avec un procédure byte :

CLA INS P1 P2 P3

P. Paradinas - Cnam - 2006

Le procédure byte

Trois types de réponse :

NULL c’est l’octet ‘60’, pas d’action attente...

SW1 : dans ce cas la valeur est ‘6x’ ou 9x’, attendre l’octet suivant qui est le SW2 (valeur ‘xy’),

ACK :

Transport des données restantes (INST, sauf ‘6x’ et ‘9x’)

Transport d’un packet de données (INST est INS ⊕ 'FF')

Les autres valeurs sont impossibles.

47

48

P. Paradinas - Cnam - 2006

La réponse SW1/SW2

La réponse SW1/SW2 indique la fin de la commande exécutée par la carte.

Les valeurs de SW1/SW2 :

'9000' indicates that the command is normally completed.

'6E00' indicates that the class of commands is not supported.

'6D00' indicates that the instruction code is not programmed or is invalid.

'6B00' indicates that the instruction parameter is incorrect, though the card supports the instruction.

'6700' indicates that the number of data bytes is incorrect, though the card supports the instruction.

'6F00' indicates that no precise diagnosis is given, though the card supports the instruction.

The values where SW1 = '61', '62', '63', '64', '65', '66', '68', '69', '6A' and '6C' shall be as specified in ISO/IEC 7816-4.

P. Paradinas - Cnam - 2006

Le protocole T=1

Sous forme d’exposé ?

Des volontaires

49

50

P. Paradinas - Cnam - 2006

La commande APDU

La paire commande/réponse :

Commande

Réponse

Quel est la longueur maximum des champ de données et de réponses ?

Plusieurs cas : en fonction des valeur de C[5], C[6] et C[7], la longueur des champs peut aller jusqu’à 65535 octets.

CLA INS P1 P2 [Lc field] [Data field] [Le field]

[Data field] SW1 SW2

P. Paradinas - Cnam - 2006

La 7816-4

Quelle bataille :

ISO/IEC 7816-4 Identification cards – Integrated circuit cards - Part 4 – Organisation, security and commands for interchangeCD Ballot : 17n2060 2002-01-21 to 2002-04-21CD Ballot Results : 17n2112 2002-04-26CD Disposition of Comments WG 4 N 1649 2002-07-19CD2 Ballot : 17n2155 2002-07-22 to 2002-10-22CD2 Ballot Results : 17n2234 2002-11-13CD2 Disposition of Comments WG 4 N 1675 2003-01-10FCD Ballot : 17n2268 2003-01-17 to 2003-05-17FCD Ballot Results : 17n2319 2003-05-22FCD Disposition of Comments WG4N1726 2003-09-29FCD 2 Ballot : 17n2383 2003-09-30 to 2004-01-30FCD 2 Ballot Results : 17n2466 2004-02-11FCD 2 Disposition of Comments wg4n1806 2004-06-27Text sent to SC 17 Secretariat ready for FDIS ballot wg4n1805 2004-06-27Notification that the revised text has been sent to ISO/CS for FDIS ballot 17n2537 2004-07-02FDIS Ballot 2004-09-16 to 2004-11-16FDIS Ballot Results 17n2643.pdf 2004-11-22Published on 2005-01-15 (Second Edition )

51

52

P. Paradinas - Cnam - 2006

7816-4 (1)

L’interchange est bâtit sur les points suivants :

La paire Commande-Réponse :

Chaînage de commande,

Canaux logique.

Data objects :

Les objets sont codés sur le principe TLV (tag lenght and value) et BER (basic encoding rules) de l’ASN.1 (voir ISO/IEC 8825-1)

Structures for applications and data

Security architecture

P. Paradinas - Cnam - 2006

Structure des données dans la 7816-4

MF : Master file

DF : Dedicated file

EF : Elementary file (internal or working) : “plat binaire”, enregistrement (fixe ou pas, circulaire, tlv structure)

Internal : à usage de la carte

Working : utilisé par le monde extérieur

!"#$!%&'()!"'*+,-./0122/3%4'

!"#$%&#'(")**+","-.."/01234"/545/657' ,*"

567' "89:;8:9<='>?9'@AABC;@8C?D='@DE'E@8@'

8204" 9.:;45" 4<590=054" 43/;93;/54" =>/" :<<.09:30>?4" :?7" 7:3:@" :4" 455?" :3" 325" 0?35/=:95" A25?" </>95440?1"9>BB:?74" 0?" 325" 0?35/0?7;43/C" 9.:44D"825":93;:." 43>/:15" .>9:30>?">="7:3:":?7"43/;93;/:." 0?=>/B:30>?"E5C>?7"A2:3"04"7549/0E57"0?"3204"9.:;45"04">;34075"325"49><5">="#$%&#'("FGHID"

8A>"9:351>/054">="43/;93;/54":/5"4;<<>/357J"75709:357"=0.5"KLMN":?7"5.5B5?3:/C"=0.5"K'MND"

!" 825"LM4"2>43" :<<.09:30>?4" :?7" &" >/" 1/>;<" =0.54" :?7" &" >/" 43>/5" 7:3:" >EO5934D" -?" :<<.09:30>?"LM" 04" :"LM"2>430?1":?":<<.09:30>?D"-"LM"B:C"E5"325"<:/5?3">=">325/"=0.54D"82545">325/"=0.54":/5"4:07"3>"E5"0BB570:35.C";?75/"325"LMD"

!" 825"'M4"43>/5"7:3:D"-?"'M"9:??>3"E5"325"<:/5?3">=":?>325/"=0.5D"8A>"9:351>/054">="'M4":/5"4<590=057D"

#" -?" 0?35/?:."'M"43>/54"7:3:" 0?35/</5357"EC" 325"9:/7@" 0D5D@"7:3:";457"EC" 325"9:/7" =>/"B:?:15B5?3":?7"9>?3/>."<;/<>454D"

#" -"A>/P0?1"'M"43>/54"7:3:"?>3"0?35/</5357"EC"325"9:/7@"0D5D@"7:3:";457"EC"325">;34075"A>/.7"5Q9.;4065.CD"

8A>"3C<54">=".>109:.">/1:?0R:30>?":/5"</>60757D"

!" M01;/5" )" 0..;43/:354" :"205/:/92C">="LM4"A032" 034" 9>//54<>?70?1"459;/03C" :/9203593;/5" K455"SD+ND" #?" 4;92":"9:/7">/1:?0R:30>?@"325"LM":3"325"/>>3"04"9:..57"325"B:435/"=0.5"KTMNU":?C"LM"B:C"E5":?":<<.09:30>?"LM@"A032">/"A032>;3"034">A?"205/:/92C">="LM4D"

(CB<='?>'@D'@AABC;@8C?D'

!

!

!

(CB<='?>'@D'@AABC;@8C?D

F('%('

)('%('

%('

%('

%('%('

)('

)(' )('

GAABC;@8C?D')(

"(CH:9<'1'I'%J@KAB<'?>'LC<9@9;LM'?>')(='

!" M01;/5"V"0..;43/:354":<<.09:30>?"LM4"0?"<:/:..5.@"A032"?>"TM"455?":3"325"0?35/=:95@"0D5D@"A032>;3":?C":<<:/5?3"205/:/92C" >=" LM4D" $;92" :?" >/1:?0R:30>?" 4;<<>/34" 0?75<5?75?3" :<<.09:30>?4" 0?" 325" 9:/7" A25/5" :?C":<<.09:30>?"LM"B:C"2:65"034">A?"205/:/92C">="LM4"A032"034"9>//54<>?70?1"459;/03C":/9203593;/5D"

GAABC;@8C?D'

)('

GAABC;@8C?D'

)('

(CB<='?>'@D'

@AABC;@8C?D'

GAABC;@8C?D'

)('"

(CH:9<'7'I'%J@KAB<'?>'CDE<A<DE<D8'@AABC;@8C?D')(='

5676,' "89:;8:9<'=<B<;8C?D'

5676,6,' "89:;8:9<'=<B<;8C?D'K<8L?E='

$5.5930?1":"43/;93;/5":..>A4":99544"3>"034"7:3:":?7@"0="325"43/;93;/5"04":"LM@"034"4;EW43/;93;/5D"$3/;93;/54"B:C"E5" 45.59357" 0B<.0903.C@" 0D5D@" :;3>B:309:..C" :=35/" /5453" :?7" <>440E.5" </>3>9>." :?7" <:/:B535/" 45.5930>?" K455"#$%&#'("FGHIWVND"X25?":"43/;93;/5"9:??>3"E5"0B<.0903.C"45.59357@"03"42:.."E5"45.59357"5Q<.0903.C@"0D5D@"EC":3".5:43">?5">="325"=>..>A0?1"=>;/"B532>74D"

"<B<;8C?D'NM')('D@K<","-"LM"?:B5"B:C"/5=5/5?95":?C"LMD"#3"04":"43/0?1">=";<"3>"40Q355?"EC354D"-?C":<<.0W9:30>?"075?30=05/"K-#L@"455"GD)DHD)N"B:C"E5";457":4"LM"?:B5D"#?">/75/"3>"45.593";?:BE01;>;4.C"EC"LM"?:B5@"5D1D@"A25?"45.5930?1"EC"B5:?4">=":<<.09:30>?"075?30=05/4@"5:92"LM"?:B5"42:.."E5";?0Y;5"A0320?":"1065?"9:/7D"

"<B<;8C?D'NM'>CB<'CE<D8C>C<9","-"=0.5"075?30=05/"B:C"/5=5/5?95":?C"=0.5D"#3"9>?40434">="3A>"EC354D"825"6:.;5"ZVM**Z"04"/545/657"=>/"/5=5/5?90?1"325"TMD"825"6:.;5"ZMMMMZ"04"/545/657"=>/"=;3;/5";45D"825"6:.;5"ZVMMMZ"04"/545/657"K455"E5.>A":?7"FD+DHND"825"6:.;5" Z****Z" 04"/545/657"K455"FD)D)":?7"FD+DHND" #?">/75/" 3>";?:BE01;>;4.C"45.593":?C"=0.5"EC"034"075?30=05/@":.."'M4":?7"LM4"0BB570:35.C";?75/":"1065?"LM"42:.."2:65"70==5/5?3"=0.5"075?30=05/4D"

53

54

P. Paradinas - Cnam - 2006

Mais aussi

!"#$!%&'()!"'*+,-./0122/3%4'

!"#$%&#'(")**+","-.."/01234"/545/657' ,*"

567' "89:;8:9<='>?9'@AABC;@8C?D='@DE'E@8@'

8204" 9.:;45" 4<590=054" 43/;93;/54" =>/" :<<.09:30>?4" :?7" 7:3:@" :4" 455?" :3" 325" 0?35/=:95" A25?" </>95440?1"9>BB:?74" 0?" 325" 0?35/0?7;43/C" 9.:44D"825":93;:." 43>/:15" .>9:30>?">="7:3:":?7"43/;93;/:." 0?=>/B:30>?"E5C>?7"A2:3"04"7549/0E57"0?"3204"9.:;45"04">;34075"325"49><5">="#$%&#'("FGHID"

8A>"9:351>/054">="43/;93;/54":/5"4;<<>/357J"75709:357"=0.5"KLMN":?7"5.5B5?3:/C"=0.5"K'MND"

!" 825"LM4"2>43" :<<.09:30>?4" :?7" &" >/" 1/>;<" =0.54" :?7" &" >/" 43>/5" 7:3:" >EO5934D" -?" :<<.09:30>?"LM" 04" :"LM"2>430?1":?":<<.09:30>?D"-"LM"B:C"E5"325"<:/5?3">=">325/"=0.54D"82545">325/"=0.54":/5"4:07"3>"E5"0BB570:35.C";?75/"325"LMD"

!" 825"'M4"43>/5"7:3:D"-?"'M"9:??>3"E5"325"<:/5?3">=":?>325/"=0.5D"8A>"9:351>/054">="'M4":/5"4<590=057D"

#" -?" 0?35/?:."'M"43>/54"7:3:" 0?35/</5357"EC" 325"9:/7@" 0D5D@"7:3:";457"EC" 325"9:/7" =>/"B:?:15B5?3":?7"9>?3/>."<;/<>454D"

#" -"A>/P0?1"'M"43>/54"7:3:"?>3"0?35/</5357"EC"325"9:/7@"0D5D@"7:3:";457"EC"325">;34075"A>/.7"5Q9.;4065.CD"

8A>"3C<54">=".>109:.">/1:?0R:30>?":/5"</>60757D"

!" M01;/5" )" 0..;43/:354" :"205/:/92C">="LM4"A032" 034" 9>//54<>?70?1"459;/03C" :/9203593;/5" K455"SD+ND" #?" 4;92":"9:/7">/1:?0R:30>?@"325"LM":3"325"/>>3"04"9:..57"325"B:435/"=0.5"KTMNU":?C"LM"B:C"E5":?":<<.09:30>?"LM@"A032">/"A032>;3"034">A?"205/:/92C">="LM4D"

(CB<='?>'@D'@AABC;@8C?D'

!

!

!

(CB<='?>'@D'@AABC;@8C?D

F('%('

)('%('

%('

%('

%('%('

)('

)(' )('

GAABC;@8C?D')(

"(CH:9<'1'I'%J@KAB<'?>'LC<9@9;LM'?>')(='

!" M01;/5"V"0..;43/:354":<<.09:30>?"LM4"0?"<:/:..5.@"A032"?>"TM"455?":3"325"0?35/=:95@"0D5D@"A032>;3":?C":<<:/5?3"205/:/92C" >=" LM4D" $;92" :?" >/1:?0R:30>?" 4;<<>/34" 0?75<5?75?3" :<<.09:30>?4" 0?" 325" 9:/7" A25/5" :?C":<<.09:30>?"LM"B:C"2:65"034">A?"205/:/92C">="LM4"A032"034"9>//54<>?70?1"459;/03C":/9203593;/5D"

GAABC;@8C?D'

)('

GAABC;@8C?D'

)('

(CB<='?>'@D'

@AABC;@8C?D'

GAABC;@8C?D'

)('"

(CH:9<'7'I'%J@KAB<'?>'CDE<A<DE<D8'@AABC;@8C?D')(='

5676,' "89:;8:9<'=<B<;8C?D'

5676,6,' "89:;8:9<'=<B<;8C?D'K<8L?E='

$5.5930?1":"43/;93;/5":..>A4":99544"3>"034"7:3:":?7@"0="325"43/;93;/5"04":"LM@"034"4;EW43/;93;/5D"$3/;93;/54"B:C"E5" 45.59357" 0B<.0903.C@" 0D5D@" :;3>B:309:..C" :=35/" /5453" :?7" <>440E.5" </>3>9>." :?7" <:/:B535/" 45.5930>?" K455"#$%&#'("FGHIWVND"X25?":"43/;93;/5"9:??>3"E5"0B<.0903.C"45.59357@"03"42:.."E5"45.59357"5Q<.0903.C@"0D5D@"EC":3".5:43">?5">="325"=>..>A0?1"=>;/"B532>74D"

"<B<;8C?D'NM')('D@K<","-"LM"?:B5"B:C"/5=5/5?95":?C"LMD"#3"04":"43/0?1">=";<"3>"40Q355?"EC354D"-?C":<<.0W9:30>?"075?30=05/"K-#L@"455"GD)DHD)N"B:C"E5";457":4"LM"?:B5D"#?">/75/"3>"45.593";?:BE01;>;4.C"EC"LM"?:B5@"5D1D@"A25?"45.5930?1"EC"B5:?4">=":<<.09:30>?"075?30=05/4@"5:92"LM"?:B5"42:.."E5";?0Y;5"A0320?":"1065?"9:/7D"

"<B<;8C?D'NM'>CB<'CE<D8C>C<9","-"=0.5"075?30=05/"B:C"/5=5/5?95":?C"=0.5D"#3"9>?40434">="3A>"EC354D"825"6:.;5"ZVM**Z"04"/545/657"=>/"/5=5/5?90?1"325"TMD"825"6:.;5"ZMMMMZ"04"/545/657"=>/"=;3;/5";45D"825"6:.;5"ZVMMMZ"04"/545/657"K455"E5.>A":?7"FD+DHND"825"6:.;5" Z****Z" 04"/545/657"K455"FD)D)":?7"FD+DHND" #?">/75/" 3>";?:BE01;>;4.C"45.593":?C"=0.5"EC"034"075?30=05/@":.."'M4":?7"LM4"0BB570:35.C";?75/":"1065?"LM"42:.."2:65"70==5/5?3"=0.5"075?30=05/4D"

P. Paradinas - Cnam - 2006

Accès aux objets

L’accès aux objets se fait par désignation (nom DF, nom EF, nom d’objet via les tags,...) : SELECT

Descripteur de fichier, cycle de vie

!"#$!%&'()!"'*+,-./0122/3%4'

!"#$%&#'(")**+","-.."/01234"/545/657' 1,"

89" %:5/;30<=;."43;35"

+9" >5/?0=;30<="43;35"

>25".0@5"ABA.5"43;3C4"DB35"EF($"DB359"42;.."D5"0=35/:/5357";AA</70=1"3<">;D.5"G8H"

!" >25"6;.C54"I**I"3<"I*JI";/5"0=35/0=7C43/BH"

!" >25"6;.C54"IG*I"3<"IJJI";/5":/<:/053;/BH"

56789',:';'<=>9'?@?89'AB6BCA'7@B9'

7+' 7*' 7-' 7D' 7/' 7:' 71' 7,' E96F=FG'

*" *" *" *" *" *" *" *" K<"0=@</?;30<="1065="

*" *" *" *" *" *" *" G" (/5;30<="43;35"*" *" *" *" *" *" G" G" #=030;.04;30<="43;35"*" *" *" *" *" G" L" G" %:5/;30<=;."43;35"E;A306;3579"*" *" *" *" *" G" L" *" %:5/;30<=;."43;35"E75;A306;3579"*" *" *" *" G" G" L" L" >5/?0=;30<="43;35"

K<3";.."M5/<" N" N" N" N" O/<:/053;/B"

!"-=B"<325/"6;.C5"04"/545/657"@</"@C3C/5"C45"DB"#$%&#'("P>("G&$("GQH"

"R5@5/5=A57"DB"3;1"IS-IT";"@0.5"F($"DB35"?;B"D5":/545=3"0="325"A<=3/<.":;/;?535/4"<@";=B"@0.5"E455">;D.5"G)9H"

-"A;/7"F($"DB35"?;B"D5":/545=3"0="325"2043</0A;."DB354"E455"SHGHGH89H"R5@5/5=A57"DB"3;1"I+SIT";"A;/7"F($"DB35"?;B"D5":/545=3"0="'JH->R"E455"SH)HGHG9H"U25="03"2;4";"VJT"325"A;/7"04"0=T";3".5;43T"325"A/5;30<="43;35H"

K%>'" W=.544"<325/X045"4:5A0@057T"325"45AC/03B";33/0DC354";/5"6;.07"@</"325"<:5/;30<=;."43;35H"

DH:H:H:' (=89'I9A?J=KBLJ'7@B9'

R5@5/5=A57"DB"3;1"IS)IT";"7;3;"5.5?5=3"?;B"D5":/545=3"0="325"A<=3/<.":;/;?535/4"<@";=B"@0.5"E455">;D.5"G)9H"

!" >25"@0/43"DB35"<@"325"7;3;"5.5?5=3"04"325"@0.5"754A/0:3</"DB35"E455">;D.5"G+9H"

!" #@"325"7;3;"5.5?5=3"A<=40434"<@"3X<"</"?</5"DB354T"325="325"45A<=7"DB35"04"325"7;3;"A<70=1"DB35"E455">;D.5"SQ9H"#@"325"A;/7":/<60754"7;3;"A<70=1"DB354"0="4565/;.":.;A54T"325="325"0=70A;30<="6;.07"@</";"1065="@0.5"04"0="325"A.<4543":<4030<="3<"32;3"@0.5"X0320="325":;32"@/<?"325"VJ"3<"32;3"@0.5H"

56789',/';'(=89'I9A?J=KBLJ'7@B9'

7+' 7*' 7-' 7D' 7/' 7:' 71' 7,' E96F=FG'

*" N" L" L" L" L" L" L" (=89'6??9AA=7=8=B@'

*" *" L" L" L" L" L" L" ,"K<3"42;/5;D.5"@0.5"*" G" L" L" L" L" L" L" ,"$2;/5;D.5"@0.5"

*" L" G" G" G" *" *" *" )('

*" L" K<3";.."453"3<"G" L" L" L" %('?6B9GLJ@'

*" L" *" *" *" L" L" L" ,"U</Y0=1"'J"*" L" *" *" G" L" L" L" ,"#=35/=;."'J"*" L" -=B"<325/"6;.C5" L" L" L" ,"O/<:/053;/B"A;351</054"<@"'J4"

*" L" " " " " %('ABJC?BCJ9'

*" L" K<3";.."453"3<"G" *" *" *" ,"K<"0=@</?;30<="1065="*" L" K<3";.."453"3<"G" *" *" G" ,">/;=4:;/5=3"43/CA3C/5"*" L" K<3";.."453"3<"G" *" G" *" ,"F0=5;/"43/CA3C/5T"@0N57"40M5T"=<"@C/325/"0=@</?;30<="*" L" K<3";.."453"3<"G" *" G" G" ,"F0=5;/"43/CA3C/5T"@0N57"40M5T">FZ"43/CA3C/5"*" L" K<3";.."453"3<"G" G" *" *" ,"F0=5;/"43/CA3C/5T"6;/0;D.5"40M5T"=<"@C/325/"0=@</?;30<="*" L" K<3";.."453"3<"G" G" *" G" ,"F0=5;/"43/CA3C/5T"6;/0;D.5"40M5T">FZ"43/CA3C/5"*" L" K<3";.."453"3<"G" G" G" *" ,"(BA.0A"43/CA3C/5T"@0N57"40M5T"=<"@C/325/"0=@</?;30<="*" L" K<3";.."453"3<"G" G" G" G" ,"(BA.0A"43/CA3C/5T"@0N57"40M5T">FZ"43/CA3C/5"*" L" G" G" G" *" *" G" ,">FZ"43/CA3C/5"@</"['RL>FZ"7;3;"<D\5A34"*" L" G" G" G" *" G" *" ,">FZ"43/CA3C/5"@</"$#VOF'L>FZ"7;3;"<D\5A34"

!"-=B"<325/"6;.C5"04"/545/657"@</"@C3C/5"C45"DB"#$%&#'("P>("G&$("GQH"

!"]$2;/5;D.5^"?5;=4"32;3"325"@0.5"4C::</34";3".5;43"A<=AC//5=3";AA544"<="70@@5/5=3".<10A;."A2;==5.4H"

"

55

56

P. Paradinas - Cnam - 2006

Les commandes

Binary (read, write, search, erase)

Record (read, write, update, append, serach, erase)

Get/Put Data

P. Paradinas - Cnam - 2006

L’architecture de sécurité

Statut de sécurité :

Etat atteint après l’achèvement de fonction de sécurité comme :

Présentation d’un code secret (VEIFY Command),

Connaissance d’une clé (GET CHALLENGE puis EXTERNAL AUTHENTICATE ou d’un SECURE MESSAGING.

Les statuts :

Global (sur le MF),

Relatif à une application (DF), lors d’une (dé)sélection le statut sera modifié en fonction de règle de l’application,

Spécifique à un fichier,

Spécifique à une commande.

57

58

P. Paradinas - Cnam - 2006

L’architecture de sécurité

Les attributs de sécurité quand ils existent définissent les actions (commandes) autorisées et dans quelles conditions. Plus particulièrement :

Le statut de la carte avant un accès en lecture,

Restreindre l’usage de fonction en fonction du statut,

Précise comment atteindre un statut de sécurité en définissant les fonctions à activer.

P. Paradinas - Cnam - 2006

Les fonctions de sécurité

Authentification par mot de passe

Authentification par clé à l’aide des fonctions (GET CHALLENGE suivi de EXTERNAL AUTHENTICATE, regroupées aussi dans GENERAL AUTHENTICATE)

Authentification de données :

La carte compare des données reçues à celles dont elle dispose en utilisant des données qui lui sont propres (clé secrète ou clé public),

ou la carte calcule des données (avec des CRC cryptographique ou des signatures digitales), qu’elle peut ensuit écrire.

Intérêt pour le “provider”.

Chiffrement de données.

59

60

P. Paradinas - Cnam - 2006

Exemple

!"#$!%&'()!"'*+,-./0122/3%4'

!"#$%&#'(")**+","-.."/01234"/545/657' 15"

67/71' &89:;<=8>:?@A'BCA?>D@EB'@FCD;@G@C8';CB:H>;C'

8595/5:;57" <=" 3>1" ?-(?@" A:5" A/"BA/5" ;/=C3A1/>C20;"B5;2>:04B" 075:30905/" 35BC.>354"B>=" <5" C/545:3" 0:" 325";A:3/A." C>/>B535/4"A9">:="DE" F455"G><.5"H)IJ"'>;2"A:5"5KC.0;03.=" 0:70;>354" 325"B5>:0:1"A9">" ;/=C3A1/>C20;"B5;2>:04B"/595/5:;5"0:"325"DE">:7"034"205/>/;2=J"$L;2">"35BC.>35"42>..";A:4043"A9"3MA"A/"BA/5"7>3>"A<N5;34J"

!" G25"90/43"7>3>"A<N5;3"42>.."<5">";/=C3A1/>C20;"B5;2>:04B"/595/5:;5@"3>1"?O*?"F455"G><.5"PPIJ"

!" G25"45;A:7"7>3>"A<N5;3"42>.."<5">:"A<N5;3"075:30905/@"3>1"?*Q?@">4"7590:57"0:"#$%&#'("OO)RSHJ"G25"075:309057"A<N5;3" 42>.." <5" >" ;/=C3A1/>C20;" B5;2>:04B" 4C5;09057" A/" /510435/57" M0320:" >" 43>:7>/7@" 5J1J@" >:" #$%"43>:7>/7J" 'K>BC.54" A9" ;/=C3A1/>C20;" B5;2>:04B4" >/5" 5:;/=C30A:" >.1A/032B4" F5J1J@" #$%&#'("HO*PP

THOUI@"

B544>15" >L325:30;>30A:" ;A754" F5J1J@" #$%&#'(" VWVWTWUI@" >L325:30;>30A:" C/A3A;A.4" F5J1J@" #$%&#'(" VWVO

TOUI@"

70103>."401:>3L/54" F5J1J@" #$%&#'("VWVQTQU"A/"H+OOO

THQUI@" /510435/57";/=C3A1/>C20;">.1A/032B4"F5J1J@" #$%&#'("

VVWVTVUI@">:7"4A"A:J"

!" #9"C/545:3@"A:5"A/"BA/5"4L<45XL5:3"7>3>"A<N5;34"42>.."50325/"075:309=">"B5;2>:04B@"3>1"?*Q?@"L457"<="325"C/560AL4"B5;2>:04B"F0J5J@">"BA75"A9"AC5/>30A:@"5J1J@"#$%&#'("H*HHQ

THHU@"A/">"2>42S9L:;30A:@"5J1J@"#$%&#'("

H*HHOTH)UI@"A/"0:70;>35"C>/>B535/4"F3>1"75C5:75:3"A:"325"C/560AL4"B5;2>:04BIJ"

'Y-Z[\'$" F455"5KC.>:>30A:4"0:">::5K"-I"

]?-(?"S"?*^?"S"]?O*?S?*H?S?*H?_"S"]?*Q?S?*Q?S?)OOHO(WH*)*H?__"

G25"35BC.>35">44A;0>354"325".A;>."/595/5:;5"?*H?"3A"325"90/43"5:;/=C30A:">.1A/032B"0:"#$%&#'("HO*PPS)THOUJ"

]?-(?"S"?HH?"S"]?O*?S?*H?S?*)?_"S"]?*Q?S?*R?S?)O((+Q*R*)?_"S"]?*Q?S?*R?S?)O(E*Q*P*P?__"

G25"90/43"A<N5;3"075:30905/"/595/4"3A"325"45;A:7">L325:30;>30A:"B5;2>:04B"0:"#$%&#'("VWVOSRTOUJ"G25"45;A:7"A<N5;3"075:30905/"

/595/4"3A" 325" 320/7"7570;>357"2>42S9L:;30A:" 0:" #$%&#'("H*HHOSPTH)UJ"G25/59A/5" 325" 35BC.>35">44A;0>354" 325" .A;>." /595/5:;5"

?*)?"3A"`a)"L40:1"$b-SHJ"

67/75' "CAI8@;9'>;;8@JI;CE'

8595/5:;57"<=" 3>14" ?OQ?@" ?O^?@" ?O(?@" ?O'?@" ?-*?@" ?-H?@" ?-^?@"45;L/03=">33/0<L354"B>="<5"C/545:3" 0:" 325";A:3/A."C>S/>B535/4"A9">:="90.5"F455"G><.5"H)IJ"-:="A<N5;3"0:"325";>/7"F5J1J@";ABB>:7@"90.5@"7>3>"A<N5;3@"3><.5"c"605MI"B>="<5">44A;0>357"M032"BA/5"32>:"A:5"45;L/03=">33/0<L35">:7"&"A/"M032">"/595/5:;5";A:3>0:57"0:">"45;L/03=">33/0<L35J"

8595/5:;57"<="3>1"?-*?@">"45;L/03=">33/0<L35"35BC.>35"9A/"7>3>"A<N5;34"B>="<5"C/545:3"0:"325";A:3/A."C>/>B535/4"A9">:="90.5J"$L;2">"35BC.>35"04"325";A:;>35:>30A:"A9">"45;L/03=">33/0<L35"7>3>"A<N5;3"F3>14"?OQ?@" ?O^?@" ?O(?@" ?O'?@"?-*?@"?-H?@"?-^?I">:7">"3>1".043"7>3>"A<N5;3"F3>1"?R(?@"455"OJRJHI"0:70;>30:1"325"/5.56>:3"7>3>"A<N5;34"0:"325"90.5J"

8595/5:;57"<="3>1"?O'?@">";2>::5."45;L/03=">33/0<L35"F>3"BA43"A:5I"B>="<5"C/545:3"0:"325";A:3/A."C>/>B535/4"A9">:=" 90.5" F455"G><.5"H)I">:7" 0:">:=" >CC/AC/0>35" 45;L/03=" 5:60/A:B5:3" F$'@" 455"QJPJPIJ" #3" 42>.." <5" 0:35/C/5357">;;A/70:1"3A"G><.5"HRJ"

!" deA3"42>/5><.5d"B5>:4"32>3">3"BA43"A:5".A10;>.";2>::5."42>.."<5">6>0.><.5J"G25"C2=40;>."35;2:A.A1="A9"325";2>::5."B>="<5".0B0357J"

!" d$5;L/57d"B5>:4"32>3"$Z"f5=4"F455"QI"42>.."<5">6>0.><.5"F5J1J@"543><.04257"<=">"C/560AL4">L325:30;>30A:IJ"

!" dg45/">L325:30;>357d"B5>:4"32>3"325"L45/"42>.."<5">L325:30;>357"F5J1J@">"4L;;5449L."C>44MA/7"65/090;>30A:IJ"

K>JHC',6'L'&?>DDCH'ECAI8@;9'>;;8@JI;C'

J+' J*' J-' J6' J/' J5' J1' J,' MC>D@D='

*" *" *" *" *" S" S" H" eA3"42>/5><.5"*" *" *" *" *" S" H" S" $5;L/57"*" *" *" *" *" H" S" S" g45/">L325:30;>357"

!"-:="A325/"6>.L5"04"/545/657"9A/"9L3L/5"L45"<="#$%&#'("hG("H&$("HWJ"

"#:" $(a\" 5:60/A:B5:3" F455" #$%&#'("WOHQSW

T+U@" ;ABB>:74" 9A/" 43/L;3L/57" ;>/7" XL5/=" .>:1L>15I@" 45;L/03="

>33/0<L354";>:"<5"4C5;09057" 0:"$(a\"AC5/>30A:4@"5J1J@"(8'-G'"G-^\'">:7"(8'-G'"i#'j";ABB>:74J" #9"45;L/03=">33/0<L354"<>457"A:"3204";.>L45">/5"L457@"325:"325="42>.."<5";A:65=57"0:">"7>3>"A<N5;3"M032"3>14"?O^?@" ?O(?"A/"?-^?"0:"325"45;L/03=">33/0<L35"C>/>B535/4"A9">:"$(a\"AC5/>30A:J"

(<8B>;E'!!!!" G204" ;.>L45" 7590:54" 3MA" 9A/B>34" 9A/" <0:70:1" A<N5;34" >:7" 45;L/03=" >33/0<L354k" >" ;ABC>;3" 9A/B>3"<>457"A:"<03B>C4">:7">:"5KC>:757"9A/B>3"32>3"5K35:74"325";ABC>;3"9A/B>3"<="G\i".043"B>:>15B5:3J"

P. Paradinas - Cnam - 2006

Objectif : Protéger les échanges, dans la paire commande/réponse (tout ou partie ainsi que dans les commandes chaînées) par :

confidentialité des données, et

authentification des données.

Attention

Secure messaging

!"#$!%&'()!"'*+,-./0122/3%4'

5-' !"#$%&#'(")**+","-.."/01234"/545/657

"

8019/5":"42;<4"325"=;//54>;?70?1"45=9/57"=;@@A?7B/54>;?45">A0/C"

(;@@A?7"25A75/" (;@@A?7"D;7E"

(F-G"#H$"IJ"I)" KH5<"F="L05.7M"B"NK$5=9/57"7A3A"L05.7M"O"KPBH=BQA3A"DE354M"B"KPBR*JR";/"R*)RBF5MS"B"KH5<"F5"L05.7M""

T54>;?45"D;7E" T54>;?45"3/A0.5/"

K$5=9/57"7A3A"L05.7M""O""KPBH/BQA3A"DE354M"B"KPBR*)RB$UJB$U)M" $UJB$U)"

(6789:'-';'":<89:='<>??@A=.9:BC>AB:'C@69'

U25?"D03"J";L"#H$"04"453"3;"J"V;77"#H$"=;75W"455"XCJC)YW"325"9?45=9/57"7A3A"L05.74"A/5"5?=;757"0?"Z'TBPF["A?7"$\" 3A14" RZ)RW" RZ]RW" R^+R" A?7" R^XR" 42A.." D5"9457" L;/" 3250/" 5?=A>49.A30;?C"%325/<045W"A4" 325" L;/@A3";L" 325"7A3A"L05.74"3;">/;35=3"04"?;3"A.<AE4"A>>A/5?3W"$\"3A14"R^*RW"R^JRW"R^:R"A?7"R^_R"A/5"/5=;@@5?757C"

!" P25" 45=9/57" 7A3A" L05.74" A/5" $\" L05.74`" 325E" @AE" =;?3A0?" L9/325/" ;/" ;325/" $\" 7A3A" ;Da5=34W" 5C1CW" A"=/E>3;1/A>20="=25=b49@"V$\"3A1"R^'RY";/"A"70103A."401?A39/5"V$\"3A1"Rc'RY"A3"325"5?7C"

!" P25"?5<"F="L05.7"5?=;754"325"?9@D5/";L"DE354"0?"325"45=9/57"=;@@A?7"7A3A"L05.7C"

!" P25" ?5<" F5" L05.7" 42A.." D5" AD45?3" <25?" ?;" 7A3A" L05.7" 04" 5d>5=357" 0?" 325" 45=9/57" /54>;?45" 7A3A" L05.7`";325/<045W"03"42A.."=;?3A0?";?.E"DE354"453"3;"R**RC"

!" P25"/54>;?45" 3/A0.5/" 0?70=A354" 325"43A394";L" 325"/5=5060?1"5?303E"AL35/">/;=5440?1" 325"45=9/57"=;@@A?7C"P25"L;..;<0?1"4>5=0L0="5//;/"=;?7030;?4"@AE";==9/C"

#" #L"$UJB$U)"04"453"3;"R:c^_RW"325?"5d>5=357"45=9/5"@544A10?1"7A3A";Da5=34"A/5"@0440?1C"

#" #L"$UJB$U)"04"453"3;"R:c^^RW"325?"45=9/5"@544A10?1"7A3A";Da5=34"A/5"0?=;//5=3C"

-??5d"Z">/;60754"0..943/A3065"5dA@>.54";L"45=9/5"@544A10?1C"

*' &>??@A=B'D>9'6AE:9<F@A7:'

P204"=.A945"4>5=0L054"=;@@A?74"L;/"0?35/=2A?15W">/545?357"25/5AL35/"0?"40d"1/;9>4C"

JY" $5.5=30;?"

)Y" QA3A"9?03"2A?7.0?1"

]Y" T5=;/7"2A?7.0?1"

+Y" QA3A";Da5=3"2A?7.0?1"

XY" ZA40="45=9/03E"2A?7.0?1"

:Y" P/A?4@0440;?"2A?7.0?1"

#3"42A.."?;3"D5"@A?7A3;/E"L;/"A.."=A/74"=;@>.E0?1"<032"3204"7;=9@5?3"3;"49>>;/3"A.."32;45"=;@@A?74";/"A.."325";>30;?4" ;L" A" 49>>;/357" =;@@A?7C" U25?" 0?35/=2A?15" 04" /5e90/57W" A" 453" ;L" A>>.0=A30;?B0?75>5?75?3" =A/7"45/60=54"A?7"/5.A357"=;@@A?74"A?7";>30;?4"42A.."D5"9457"A4"4>5=0L057"0?"^C"

*G,' ":H:<E6>A'

-L35/"325"A?4<5/"3;"/5453W"325"\8";/"A?"A>>.0=A30;?"Q8"04"0@>.0=03.E"45.5=357"32/;912"325"DA40=".;10=A."=2A??5."V455" XCJCJC)YW" 9?.544" ;325/<045" 4>5=0L057" 0?" 325" 2043;/0=A." DE354" V455" ^CJCJY" ;/" 0?" 325" 0?030A." 7A3A" 43/0?1" V455"^CJC)YC"

*G,G,' "%I%&J'<>??@A='

U25?"=;@>.5357W"325"=;@@A?7";>5?4"325".;10=A."=2A??5."V455"XCJCJC)Y"?9@D5/57"0?"(F-"V455"XCJCJYW" 0L"?;3"E53" ;>5?57W" A?7" 4534" A" =9//5?3" 43/9=39/5"<0320?" 32A3" .;10=A." =2A??5.C" $9D45e95?3" =;@@A?74"@AE" 0@>.0=03.E"/5L5/"3;"325"=9//5?3"43/9=39/5"32/;912"32A3".;10=A."=2A??5.C"

!"#$!%&'()!"'*+,-./0122/3%4'

!"#$%&#'(")**+","-.."/01234"/545/657' 56"

"%'7897:8;<='!!!!"-89"(:;"08"325"<=//583"$'">?9"@5"/53/05657"@9"?"A';"B-;-"<C>>?87"D032"EFGE)"453"3C"H**+BH"I5J358757"25?75/".043K"455"LMNMFO"?87"?"<C>>?87"7?3?"P05.7"<C84043081"CP"?"$'"35>Q.?35"I3?1"HRSHO"<C83?08081"C85"C/">C/5"Q?0/4K"5?<2"C85"<C84043081"CP"?"(:;"3?1"PC..CD57"@9"HL*H"I455"LMNMF"PC/"325"=45"CP"?".58132"453"3C"HL*H"08"?8"5J358757"25?75/".043OM"

->5>/' ?8@ABC@8'D8@E7:A9B7'98FA=<98'

'?<2"<C>>?87"7?3?"P05.7">?9"<C83?08"?"/54QC845"754</0Q3C/"35>Q.?35M"#P"Q/54583"08"325"<C>>?87"7?3?"P05.7K"325"/54QC845"754</0Q3C/"35>Q.?35"42?.."0870<?35"325"$T"7?3?"C@U5<34"/5V=0/57"08"325"/54QC845"7?3?"P05.7M"#84075"325"/54QC845"754</0Q3C/"35>Q.?35K"325"45<=/039">5<2?804>4"?/5"8C3"953"?QQ.057W"325"/5<506081"583039"42?.."?QQ.9"325>"PC/"<C843/=<3081"325"/54QC845"7?3?"P05.7M";25"45<=/039" 035>4"I?.1C/032>4K">C754"CP"CQ5/?30C8K"X594"?87"08030?."7?3?O"=457"PC/"Q/C<544081"325"<C>>?87"7?3?"P05.7">?9"@5"70PP5/583" P/C>"32C45"=457"PC/"Q/C7=<081"325"/54QC845"7?3?"P05.7M";25"PC..CD081"/=.54"?QQ.9M"

!" ;25"<?/7"42?.."P0.."5?<2"5>Q39"Q/0>03065"@?40<"$T"7?3?"C@U5<3M"

!" '?<2"(:;"Q/54583"08"325"/54QC845"754</0Q3C/"35>Q.?35"42?.."@5"Q/54583"08"325"/54QC845"?3"325"4?>5"Q.?<5"D032"325"4?>5"<C83/C."/5P5/58<5"7?3?"C@U5<34"PC/"45<=/039">5<2?804>4K"P0.54"?87"X594M"

#" #P" 325" /54QC845"754</0Q3C/" 35>Q.?35"Q/C60754"?=J0.0?/9"7?3?K" 3258" 325"/54Q5<3065"7?3?"C@U5<3"42?.."@5"5>Q39"08"325"/54QC845M"

#" #P" ?8"5>Q39" /5P5/58<5"7?3?"C@U5<3" PC/"?=J0.0?/9"7?3?" 04"Q/54583" 08" 325" /54QC845"754</0Q3C/" 35>Q.?35K"3258"03"42?.."@5"P=.."08"325"/54QC845M"

!" S9" 325" /5.56?83" 45<=/039" >5<2?804>4K" D032" 325" 45.5<357" 45<=/039" 035>4K" 325" <?/7" 42?.." Q/C7=<5" ?.." 325"/5V=54357"@?40<"$T"7?3?"C@U5<34M"

->/' "G':FA<E9'BC'EBFF<CD.78@ABC@8'A<:7@'

Y01=/5"N"0..=43/?354"?"<C>>?87G/54QC845"Q?0/M"

(C>>?87"25?75/" (C>>?87"@C79"

(Z-"#[$"EF"E)" \Z<"P05.7]"""\B?3?"P05.7]"""\Z5"P05.7]""

:54QC845"@C79" :54QC845"3/?0.5/"

\B?3?"P05.7]" $^FG$^)"

(:HI78'6'J'&BFF<CD.78@ABC@8'A<:7'

;25" PC..CD081" /=.54" ?QQ.9" PC/" 45<=/081" ?" <C>>?87G/54QC845"Q?0/" CP" 325" 0835/087=43/9" <.?44" I455" NMFMFOK" 0M5MK"D258"4D03<2081"50325/"@03"+"P/C>"*"3C"F"08"(Z-"D25/5"@034"LK"R"?87"_"?/5"453"3C"***K"C/"@03"_"P/C>"*"3C"F"08"(Z-"D25/5"@034"L"?87"R"?/5"453"3C"*FM";25"8C3?30C8"(Z-`">5?84"32?3"45<=/5">544?1081"04"0870<?357"08"(Z-M"

!" ;25"45<=/57"<C>>?87"7?3?"P05.7"04"?8"$T"P05.7W"03"42?.."@5"PC/>57"?4"PC..CD4M"

#" #P"?"<C>>?87"7?3?"P05.7"04"Q/54583"I[<"a"*OK"3258"50325/"?"Q.?08"6?.=5"7?3?"C@U5<3"I$T"3?14"HL*HK" HLFHK"HS)HK"HSbHOK"C/"?"7?3?"C@U5<3"PC/"<C8P075830?.039"I$T"3?14"HL+HK"HLNHK"HL_HK"HLRHO"42?.."<C8659"325"[<"@9354M"

#" ;25"<C>>?87"25?75/"IPC=/"@9354O">?9"@5"58<?Q4=.?357"PC/"Q/C35<30C8"I$T"3?1"HLcHOM"

#" #P"?"Z5"P05.7"04"Q/54583K"3258"?"85D"Z5"P05.7"I<C83?08081"C8.9"@9354"453"3C"H**HO"?87"?"Z5"7?3?"C@U5<3"I$T"3?14"Hc_HK"HcRHO"42?.."@5"Q/54583M"SC32"d5/C"?87"325"5>Q39"Z5"7?3?"C@U5<3">5?8"325">?J0>=>K"0M5MK")N_"C/"_N"Nb_"75Q587081"=QC8"D25325/"325"85D"Z5"P05.7"04"42C/3"C/"5J358757M"

!" ;25"45<=/57"/54QC845"7?3?"P05.7"04"?8"$T"P05.7W"03"42?.."@5"0835/Q/5357"?4"PC..CD4M"

#" #P"Q/54583K"?"Q.?08"6?.=5"7?3?"C@U5<3" I$T"3?14" HL*HK" HLFHK" HS)HK" HSbHO"C/"?"7?3?"C@U5<3" PC/"<C8P075830?.039"I$T"3?14"HL+HK"HLNHK"HL_HK"HLRHO"<C86594"325"/54QC845"7?3?"@9354M"

#" #P" Q/54583K" ?" Q/C<544081" 43?3=4" 7?3?" C@U5<3" I$T" 3?1" HccHO" <C86594" $^FG$^)" 58<?Q4=.?357" PC/"Q/C35<30C8M";25"5>Q39"Q/C<544081"43?3=4"7?3?"C@U5<3">5?84"$^FG$^)"453"3C"Hc***HM"

61

62

P. Paradinas - Cnam - 2006

Les commandes de la partie 4

!"#$!%&'()!"'*+,-./0122/3%4'

,2' !"#$%&#'(")**+","-.."/01234"/545/657

"

56,61' !789:;<9=>7'?@9A'

#8$"0970:;354"325":<==;97"3<">/<:544?"@A5"3<"4>5:0B0:;30<94"09"#$%&#'("CDEFGHI"325"6;.A54"JFKJ";97"JLKJ";/5"096;.07?"

M;N.5"+".0434";.."325":<==;974"4>5:0B057"09"#$%&#'("CDEF";3"325"30=5"<B">AN.0:;30<9?"

!" M;N.5"+?EI"0?5?I"325".5B3"4075I".0434"325":<==;97"9;=54"09"325";.>2;N530:"</75/?"

!" M;N.5"+?)I"0?5?I"325"/0123"4075I".0434"325"#8$":<754"09"325"9A=5/0:"</75/?"

BC?DA'/6,'E'&>FFC7G8'=7'9HA'CDIHC?A9=<'>:GA:''''''''''''''BC?DA'/61'E'&>FFC7G8'=7'9HA'7;FA:=<'>:GA:''

&>FFC7G'7CFA !J"' "AA' ' !J"' &>FFC7G'7CFA' "AA'

-(M#O-M'"P#Q' J++J" R;/3"L" " J*+J" @'-(M#O-M'"P#Q'" R;/3"L"

-RR'8@"S'(%S@ J')J" C?H?C" " J*(J" 'S-$'"S'(%S@"T$U" C?H?D"

(V-8W'"S'P'S'8('"@-M- J)+J" C?X?C" " J*'JI"J*PJ" 'S-$'"Y#8-SZ" C?)?C"

(S'-M'"P#Q' J'*J" R;/3"L" " JE*J" R'SP%S["$(\Q"%R'S-M#%8" R;/3"C"

@'-(M#O-M'"P#Q' J*+J" R;/3"L" " JE)J" R'SP%S["MS-8$-(M#%8"%R'S-M#%8" R;/3"C"

@'Q'M'"P#Q' J'+J" R;/3"L" " JE+J" R'SP%S["]$'S"%R'S-M#%8" R;/3"C"

@#$-YQ'"O'S#P#(-M#%8"S'\]#S'['8M J)FJ" C?X?L" " J)*JI"J)EJ" O'S#PZ" C?X?F"

'8-YQ'"O'S#P#(-M#%8"S'\]#S'['8M J)DJ" C?X?D" " J))J" [-8-W'"$'(]S#MZ"'8O#S%8['8M" C?X?EE"

'8O'Q%R' J()JI"J(HJ" C?F?)" " J)+J" (V-8W'"S'P'S'8('"@-M-" C?X?C"

'S-$'"Y#8-SZ J*'JI"J*PJ" C?)?C" " J)FJ" @#$-YQ'"O'S#P#(-M#%8"S'\]#S'['8M" C?X?L"

'S-$'"S'(%S@"T$U J*(J" C?H?D" " J)DJ" '8-YQ'"O'S#P#(-M#%8"S'\]#S'['8M" C?X?D"

'KM'S8-Q"T&"[]M]-QU"-]MV'8M#(-M' JD)J" C?X?+" " J)-J" R'SP%S["$'(]S#MZ"%R'S-M#%8" R;/3"D"

W'8'S-Q"-]MV'8M#(-M' JDFJI"JDCJ" C?X?X" " J)(J" S'$'M"S'MSZ"(%]8M'S" C?X?E*"

W'8'S-M'"-$Z[['MS#("^'Z"R-#S J+FJ" R;/3"D" " J++J" -(M#O-M'"P#Q'" R;/3"L"

W'M"(V-QQ'8W' JD+J" C?X?H" " J+FJ" W'8'S-M'"-$Z[['MS#("^'Z"R-#S" R;/3"D"

W'M"@-M- J(-JI"J(YJ" C?+?)" " JC*J" [-8-W'"(V-88'Q" C?E?)"

W'M"S'$R%8$' J(*J" C?F?E" " JD)J" 'KM'S8-Q"T&"[]M]-QU"-]MV'8M#(-M'" C?X?+"

#8M'S8-Q"-]MV'8M#(-M' JDDJ" C?X?)" " JD+J" W'M"(V-QQ'8W'" C?X?H"

[-8-W'"(V-88'Q JC*J" C?E?)" " JDFJI"JDCJ" W'8'S-Q"-]MV'8M#(-M'" C?X?X"

[-8-W'"$'(]S#MZ"'8O#S%8['8M J))J" C?X?EE" " JDDJ" #8M'S8-Q"-]MV'8M#(-M'" C?X?)"

R'SP%S["$(\Q"%R'S-M#%8 JE*J" R;/3"C" " J-*JI"J-EJ" $'-S(V"Y#8-SZ" C?)?F"

R'SP%S["$'(]S#MZ"%R'S-M#%8 J)-J" R;/3"D" " J-)J" $'-S(V"S'(%S@" C?H?C"

R'SP%S["MS-8$-(M#%8"%R'S-M#%8 JE)J" R;/3"C" " J-+J" $'Q'(M" C?E?E"

R'SP%S["]$'S"%R'S-M#%8 JE+J" R;/3"C" " JY*JI"JYEJ" S'-@"Y#8-SZ" C?)?H"

R]M"@-M- J@-JI"J@YJ" C?+?H" " JY)JI"JYHJ" S'-@"S'(%S@"T$U" C?H?H"

S'-@"Y#8-SZ JY*JI"JYEJ" C?)?H" " J(*J" W'M"S'$R%8$'" C?F?E"

S'-@"S'(%S@"T$U JY)JI"JYHJ" C?H?H" " J()JI"J(HJ" '8O'Q%R'" C?F?)"

S'$'M"S'MSZ"(%]8M'S J)(J" C?X?E*" " J(-JI"J(YJ W'M"@-M-" C?+?)"

$'-S(V"Y#8-SZ J-*JI"J-EJ" C?)?F" " J@*JI"J@EJ" _S#M'"Y#8-SZ" C?)?F"

$'-S(V"S'(%S@ J-)J" C?H?C" " J@)J" _S#M'"S'(%S@" C?H?+"

$'Q'(M J-+J" C?E?E" " J@FJI"J@CJ" ]R@-M'"Y#8-SZ" C?)?X"

M'S[#8-M'"(-S@"]$-W' JP'J" R;/3"L" " J@-JI"J@YJ R]M"@-M-" C?+?H"

M'S[#8-M'"@P J'FJ" R;/3"L" " J@(JI"J@@J ]R@-M'"S'(%S@" C?H?X"

M'S[#8-M'"'P J'DJ" R;/3"L" " J'*J" (S'-M'"P#Q'" R;/3"L"

]R@-M'"Y#8-SZ J@FJI"J@CJ" C?)?X" " J')J" -RR'8@"S'(%S@" C?H?F"

]R@-M'"S'(%S@ J@(JI"J@@J" C?H?X" " J'+J" @'Q'M'"P#Q'" R;/3"L"

O'S#PZ J)*JI"J)EJ" C?X?F" " J'FJ" M'S[#8-M'"@P" R;/3"L"

_S#M'"Y#8-SZ J@*JI"J@EJ" C?)?+" " J'DJ" M'S[#8-M'"'P" R;/3"L"

_S#M'"S'(%S@ J@)J" C?H?+" " JP'J" M'S[#8-M'"(-S@"]$-W'" R;/3"L"

!"#9"325"0935/097A43/`":.;44I";9`"6;.07"#8$":<75"9<3"75B0957"09"#$%&#'("CDEF"04"/545/657"B</"BA3A/5"A45"N`"#$%&#'("aM("E&$("EC?"

#$%&#'("CDEF"4>5:0B054"325"A45"<B"32<45":<==;974"09"325"0935/097A43/`":.;44?"

!" M204"7<:A=593"T455"CU"4>5:0B054":<==;974"B</"0935/:2;915?"

!" #$%&#'("CDEFGCb+c"4>5:0B054":<==;974"B</"43/A:3A/57":;/7"dA5/`".;91A;15"T$(\QU?"

!" #$%&#'("CDEFGDb+c"4>5:0B054":<==;974"B</"45:A/03`"<>5/;30<94?"

!" #$%&#'("CDEFGLb+c"4>5:0B054":<==;974"B</":;/7"=;9;15=593?"

P. Paradinas - Cnam - 2006

Les valeurs de SW1/SW2

!"#$!%&'()!"'*+,-./0122/3%4'

!"#$%&#'(")**+","-.."/01234"/545/657' ,,"

#8"325"0835/087943/:";.<44=">03"?"@A"#B$"0870;<354"<"7<3<"A05.7"A@/C<3"<4"A@..@D4E"

!" #A">03"?"04"453"3@"*"F5658"#B$";@75G="3258"8@"0870;<30@8"04"H/@60757E"

!" #A">03"?"04"453"3@"?"F@77"#B$";@75G="3258"I'JKLMN"58;@7081"F455"OE)E)G"42<.."<HH.:"<4"A@..@D4E"

#" #8"98;2<0857";@CC<874"D032"$P?"8@3"453"3@"QR?Q="7<3<"A05.74="0A"<8:="42<..">5"58;@757"08"I'JKLMNE"

#" (@CC<87";2<08081"<87"&"@/"325"945"@A"$P?"453"3@"QR?Q"<..@D"325"3/<84C0440@8"@A"7<3<"43/0814"3@@".@81"A@/"<"4081.5";@CC<87E"$9;2"<"H/@;544"C<:"4H.03"7<3<"@>S5;34" 08"7<3<" A05.74";@845;93065.:"4583"<4"<"45T958;5" 08"@85"70/5;30@8=" 0E5E="D20.5"4587081"8@"7<3<"A05.7" 08" 325"@HH@4035"70/5;30@8E"P258";2<08081";@CC<874"<87"&"@/"94081"$P?"453"3@"QR?Q="325";@8;<358<30@8"@A"<.."325";@845;93065"7<3<"A05.74"08"325"4<C5"70/5;30@8"08"325"4<C5"45T958;5"42<..">5"58;@757"08"I'JKLMNE"

56,67' "898:;'<=8>;'

$P?K$P)" 0870;<354" 325"H/@;544081"43<35E"U95" 3@"4H5;0A0;<30@84" 08" #$%&#'("VW?RKX="<8:"6<.95"70AA5/583" A/@C"QRYYYQ"<87"QZYYYQ"04"086<.07["<8:"6<.95"QR*YYQ"04"<.4@"086<.07E"

L25"6<.954"QR?YYQ="QR)YYQ="QRXYYQ="QR+YYQ="QROYYQ="QRRYYQ="QRWYYQ="QRZYYQ="QR-YYQ"<87"QR(YYQ"</5"0835/087943/:E"U95" 3@" 4H5;0A0;<30@84" 08" #$%&#'("VW?RKX=" 325" 6<.954" QRVYYQ=" QRIYYQ=" QRUYYQ=" QR'YYQ=" QR\YYQ"<87" QZYYYQ"</5"H/@H/053</:="5];5H3"325"6<.954"QRV**Q="QRI**Q="QRU**Q="QR'**Q="QR\**Q"<87"QZ***Q"32<3"</5"0835/087943/:E"

\019/5"?"42@D4"325"43/9;39/<."4;25C5"@A"325"6<.954"QZ***Q"<87"QR?YYQ"3@"QR\YYQ"A@/"$P?K$P)E"

(?@:A>','B'"8A:C8:A9D';CE>F>'GH'I9D:>;'GH'"J,."J1"

L<>.5"O".0434"<.."325"0835/087943/:"6<.954"@A"$P?K$P)"<87"42@D4"3250/"1585/<."C5<8081E"#$%&#'("^L("?&$("?V"/545/654"A@/"A939/5"945"<8:"0835/087943/:"6<.95"@A"$P?K$P)"8@3"75A0857"08"#$%&#'("VW?RE"

K9<D>'5'B'L>M>A9D'F>9M?M@'GH'8E>'?M8>A?MN:;8A='I9D:>;'GH'"J,."J1'

' "J,."J1' O>9M?M@'

PGAF9D'QAGC>;;?M@'

QZ***Q"QR?YYQ"

B@"A9/325/"T9<.0A0;<30@8"$P)"58;@754"325"89C>5/"@A"7<3<">:354"430.."<6<0.<>.5"F455"35]3">5.@DG"

J9AM?M@'QAGC>;;?M@'

QR)YYQ"QRXYYQ"

$3<35"@A"8@8K6@.<30.5"C5C@/:"04"98;2<8157"FA9/325/"T9<.0A0;<30@8"08"$P)G"$3<35"@A"8@8K6@.<30.5"C5C@/:"2<4";2<8157"FA9/325/"T9<.0A0;<30@8"08"$P)G"

%R>C:8?GM'>AAGA'

QR+YYQ"QROYYQ"QRRYYQ"

$3<35"@A"8@8K6@.<30.5"C5C@/:"04"98;2<8157"FA9/325/"T9<.0A0;<30@8"08"$P)G"$3<35"@A"8@8K6@.<30.5"C5C@/:"2<4";2<8157"FA9/325/"T9<.0A0;<30@8"08"$P)G"$5;9/03:K/5.<357"044954"

'''

&E>CS?M@'>AAGA'

QRV**Q"QRWYYQ"QRZYYQ"QR-YYQ"QRI**Q"QR(YYQ"QRU**Q"QR'**Q"QR\**Q"

P/@81".58132["8@"A9/325/"0870;<30@8"\98;30@84"08"(M-"8@3"49HH@/357"FA9/325/"T9<.0A0;<30@8"08"$P)G"(@CC<87"8@3"<..@D57"FA9/325/"T9<.0A0;<30@8"08"$P)G"P/@81"H</<C535/4"_?K_)"FA9/325/"T9<.0A0;<30@8"08"$P)G"P/@81"H</<C535/4"_?K_)"P/@81"M5"A05.7["$P)"58;@754"325"5]<;3"89C>5/"@A"<6<0.<>.5"7<3<">:354"F455"35]3">5.@DG"#843/9;30@8";@75"8@3"49HH@/357"@/"086<.07"(.<44"8@3"49HH@/357"B@"H/5;045"70<18@404"

#A"325"H/@;544"04"<>@/357"D032"<"6<.95"@A"$P?"A/@C"QR+Q"3@"QR\Q="3258"325"/54H@845"7<3<"A05.7"42<..">5"<>4583E"

#A"$P?"04"453"3@"QRXQ"@/"QROQ="3258"325"43<35"@A"325"8@8K6@.<30.5"C5C@/:"2<4";2<8157E"#A"$P?"04"453"3@"QRYQ"5];5H3"A@/"QRXQ"<87"QROQ="3258"325"43<35"@A"325"8@8K6@.<30.5"C5C@/:"04"98;2<8157E"

SW1-SW2

Process completed Process aborted

Normal processing

'9000' and '61XX'

Warning processing

'62XX' and '63XX' Execution error

'64XX' to '66XX'

Checking error

'67XX' to '6FXX'

63

64

P. Paradinas - Cnam - 2006

Les autres parties de la 7816

Part 5: Registration of application providers

Part 6: Interindustry data elements for interchange

Part 7: Interindustry commands for Structured Card Query Language (SCQL)

Part 8: Commands for security operations

Part 9: Commands for card management

Part 10: Cards with contacts: Electronic signals and answer to reset for synchronous cards

Part 11: Personal verification through biometric methods

Part 12: Cards with contacts: USB electrical interface and operating procedures

Part 15: Cryptographic information application

P. Paradinas - Cnam - 2006

La norme 24727

65

66

P. Paradinas - Cnam - 2006

Les standards ETSI

P. Paradinas - Cnam - 2006

La norme EMV

67

68

P. Paradinas - Cnam - 2006

Cycle de vie d’une carte

Fabrication du support ou corps de carte

Plastique laminé, ABS coulé, autre facteur de forme

Fabrication du composant (galette de silicium ou “wafer”)

Fabrication du module :

Découpage/Sciage,

Contact/Binding,

Protection dans le module,

Collage.

P. Paradinas - Cnam - 2006

Cycle de vie d’une carte (suite)

Personnalisation : la carte comporte généralement le SE (il est inscrit en ROM)

La personnalisation consistera :

à finir de paramètrer le SE

taille des mémoires utilisateur !

limitations de fonction

Renseigner les informations de l’application par rapport aux :

émetteur et ses services

porteur et ses services

de manière électrique et graphique

69

70

P. Paradinas - Cnam - 2006

Cycle de vie d’une carte (suite)

Distribution.

Vie de la carte :

Utilisation,

Perte, fin de vie.

P. Paradinas - Cnam - 2006

Contraintes de fabrication et de personalisation

Les cartes sont potentiellement de l’argent, un moyen d’accès à un services

Besoins de sécuriser l’accès physique aux locaux

Besoins de contrôler les “composants” utilisés ou pas !

Suivi complet/ traçabilité des produits

71

72

P. Paradinas - Cnam - 2006

Avantages & propriétés des cartes

Un dispositif de mémorisation sécurisé(e) :

Écriture et lecture se font sous contrôle

Porteur (Pin Code) et/ou partenaire de la carte

Émetteur

P. Paradinas - Cnam - 2006

Autre travaux

Approche SGBD étendu par rapport à la 7816-7 par les équipes Pucheral & Bouganim (XXX)

Extension de la zone mémoire de la carte (voir article de P. Bigett sur gemplus.com)

73

74

P. Paradinas - Cnam - 2006

Avantages & propriétés des cartes

Dispositif de protection de clé(s) cryptographiques

Des mots (zones) mémoires peuvent être utilisés pour mémoriser des clés cryptographiques :

Confidentialité de la clé (personne ne peut lire)

Intégrité de la clé et du calcul de la fonction F (personne ne peut modifier)

F

Data

Clé

F (CléCarte, Data)

P. Paradinas - Cnam - 2006

Ecriture du logiciel pour la carte

Les langages et méthodes :

Assembleur au début :

PLACE, PLACE, PLACE... et rapidité

• et retour aujourd’hui vers ce langage pour d’autres raisons !

• (voir cours de sécurité).

Début des années 1990 arrivée de C/Pascal interprété (gain de place au niveau du code, prototypage facile) mais manque d’efficacité et sur le petits codes l’approche est pas “rentable”.

Puis langage C, processeur plus gros et plus adaptés

Pros : proche des machines, efficace, disponibles,

Cons : un peu “bidouille”.

75

76

P. Paradinas - Cnam - 2006

Ecriture du logiciel pour la carte

Puis “Java Card Technology”, la raison du passage à Java n’est pas liée au langage et à ses bonnes propriétés...

C’est lié à un besoin des applications qui avait besoin d’adaptabilité de leurs services.

Les challenges et enjeux aujourd’hui sont liés :

L’augmentation de la complexité des codes qui font plusieurs 100 ko, même si celà reste “petit” au regard d’autres industries, les contraintes sont fortes :

T2M, taille/efficacité/sécurité, QUALITE, QALITE, QUALITE, QUALITE

Arrivée de nouveaux concepts.

P. Paradinas - Cnam - 2006

Les nouveaux concepts émergents

La carte va vivre dans les 3 à 5 ans une nouvelle vague d’innovations dans le domaine du logiciel :

Nouveau composant (aujourd’hui sous utilisé) : MMU/MPU, mode user/super user,

Multi-tâche,

Nouvelle pile de protocole (SLIP, IP, TCP-IP,...)

Les contraintes industrielles vont aussi pousser à une meilleure modularité et ré-utilisabilité des codes.

Ceci va générer une réelle mise en place d’un système d’exploitation pour carte. (www.inspired.org).

77

78

P. Paradinas - Cnam - 2006

Aspects développement du DES

DES 3 étapes dans son développement :

faire rentrer

optimiser

protéger

Le code a augmenté sa taille.Le code a augmenté son temps d’exécution.Aujourd’hui réalisé par matériel...

P. Paradinas - Cnam - 2006

Développement ?

NON ce n’est pas le plus important.

Qualité d

u Logic

iel

79

80

P. Paradinas - Cnam - 2006

Qualité du logiciel

Par évitement des fautes à la construction,

Par la qualité du développement,

et par le test...

Quel est la part du test dans le coût de développement ?

Etapes :

Coût/temps :

Temps : peut être le frein au lancement du produit.

Conception Développement Test

Conception Développement Test

P. Paradinas - Cnam - 2006

Etapes du développement de l’industrie

La carte à microprocesseur et les grandes étapes de développement (marché et technique) :

Les pionniers (1975-1985) : de(s) idées aux premiers produits, les bases technologiques sont établies,

1985-1995 : les marchés et les déploiement importants sont là, la technologie du départ est améliorée et renforcée, des limites apparaissent (besoin de flexibilité qui an- nonce Java Card)

1995-2005 : explosion du marché, qui s’accompagne d’un nouveau paradigme les cartes évolutives

81

82

P. Paradinas - Cnam - 2006

La chaîne de la valeur

ConceptionSilicium

FabricationSilicium

ConceptionLogiciel de la carte

Encartage

Personnalisation

STMInfineonRenesasAtmelPhilips

Gemalto = (Axalto +Gemplus)

Oberthur Card SystemG&D

Sagem/OrgaXXX

P. Paradinas - Cnam - 2006

L’origine des fabricants

Silicium,

Impression fiduciaire,

Société de service (Sligos racheté par Schlumberger/Axalto),

Grand de l’informatique (Bull, Sun, Microsoft),

Opérateur (Chine).

83

84

P. Paradinas - Cnam - 2006

Nouveaux acteurs

Dans un métier ou une brique “classique” :

Sagem est entré à la fin des années 90.

Avec une technologie, standard de fait et une “vision” :

Sun et Java Card Technology (1996),

Windows for SC (W4SC) après l’arrivée de Sun.

Avec une approche système complet et acteurs du domaine (IBM).

“Grossiste de la fabrication”.

Réalisateur de logiciel : système d’exploitation pour carte (Aspect Software, Trusted Logic, ...).

P. Paradinas - Cnam - 2006

Nouveaux acteurs

ConceptionSilicium

FabricationSilicium

ConceptionLogiciel de la carte

Encartage

Personnalisation

STMInfineonRenesasAtmelPhilips

AxaltoGemplus

Oberthur Card SystemG&D

Sagem/OrgaXXX

Grossiste ACG tbc

Développeurde code

85

86

P. Paradinas - Cnam - 2006

Nouveaux défis

Concentration encore plus forte :

Sagem + Orga

Axalto + Gemplus = Gemalto

(Microelectronica absorbé par mSystem) absorbé par SanDisk !

RSA absorbé par EMC

Prix des cartes en chute libre régulière (20% par an !)

Arrivée des fabricants chinois

P. Paradinas - Cnam - 2006

Les volumes d’après http://www.eurosmart.com/index.htm

87

88

P. Paradinas - Cnam - 2006

Exercice

Donnez les grandes lignes des fonctions d’une application “carte d’entreprise”.

Expliciter les données contenues dans la carte, listez les fonctions mettant en oeuvre ces données (aspects in-card et off-card).

Expliciter les fonctions exécuter par les lecteurs ou points de “contacts” des cartes.

Donnez et listez les contraintes qui sont celles d’un système de personnalisation du badge d’entreprise décrit précédemment.

P. Paradinas - Cnam - 2006

Bibliographie

http://www.cardshow.com/musee_carte.php

http://{axalto, gemplus, gemalto}.com, Obertur Card System, Sagem Orga,...

http://www.eurosmart.com/index.htm

89

90