la carte à microprocesseur de la carte à mémoire à...
TRANSCRIPT
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
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