les cartes a puce guide du concepteur et du developpeur resume

Transcription

les cartes a puce guide du concepteur et du developpeur resume
LES CARTES A PUCE
GUIDE DU CONCEPTEUR ET DU DEVELOPPEUR
CHRISTIAN TAVERNIER
RESUME
Malgré des débuts difficiles, la carte à puce est aujourd'hui omniprésente dans notre
environnement
Télécartes, cartes bancaires, carte Vitale, cartes de décryptage de
télévision par satellites et toutes les versions privatives des enseignes commerciales
sont autant de cartes à puce issues d'une même technologie que cet ouvrage va vous
apprendre à connaître et à maîtriser.
Ce livre vous présente les différents types de cartes, leurs contenus et leurs
possibilités d'emploi Il aborde ensuite l'étude du dialogue entre la carte et son lecteur
ainsi que celle de l'organisation des données sur la carte et de son jeu d'instructions.
La sécurité des cartes à puce, qui fait couler beaucoup d'encre, n'est pas oubliée En effet, un chapitre entier détaille les plus célèbres des
algorithmes de cryptage : DES, triple DES, AES et RSA.
La mise en pratique des connaissances acquises s'opère au travers d'expérimentations et d'exemples d'applications complets que vous
pourrez adapter à vos propres besoins.
Le cédérom qui complète cet ouvrage contient l'intégralité des normes relatives à la carte bancaire ou à la carte SIM des téléphones
portables, ainsi que de nombreux outils d'investigation et de développement gratuits et opérationnels.
Cet ouvrage contient toutes les normes EMV, GSM et PC/SC.
TABLE DES MATIERES
AVANT-PROPOS
IX
CHAPITRE 1
1
1.1
1.2
1.3
1 .4
1 .5
CHAPITRE 2
2.1
2.2
2.3
2.4
CHAPITRE 3
PRESENTATION GENERALE
Historique
Une normalisation parfaite
Caractéristiques physiques des cartes à puce
Caractéristiques électriques des cartes à puce
1.4.1
Brochage des cartes à puce
1.4.2
Niveaux électriques et logiques
1.4.3
Insertion et retrait des cartes des lecteurs
Les différents types de cartes à puce
1.5.1
Les cartes à mémoire ou cartes synchrones
1.5.2
Les cartes à microcontrôleur ou cartes asynchrones
1
2
4
9
9
13
15
18
18
19
A LES CARTES A MAMOIRE OU CARTES SYNCHRONES
23
Les cartes à mémoire OTPROM simples ou télécartes
2.1.1
Description
2.1.2
Principe de fonctionnement
2.1.3
Sécurité des cartes à mémoire OTPROM simples
2.1.4
Développement d'une application
Les cartes à mémoire 12C
2.2.1
Les grands principes du bus 12C
23
24
25
29
29
29
30
2.2.2
33
Fonctionnement des cartes à puce 12C
2.2.3
Sécurité des cartes à mémoire 12C
2.2.4
Développement d'une application
Les cartes à mémoire protégée
2.3.1
Les cartes téléphoniques récentes
2.3.2
Un exemple de carte à mémoire sécurisée
Synthèse
37
37
38
38
39
47
A LES « VRAIES» CARTES A PUCE
OU CARTES A MICROCONTROLEUR
49
3.1
3.2
3.3
3.4
3.5
CHAPITRE 4
4.1
4.2
4.3
4.5
CHAPITRE 5
5.1
5.2
5.3
5.4
CHAPITRE 6
6.1
6.2
6.3
Réponse au reset ou ATR
3.1.1
Convention directe et convention inverse
3.1.2
Les autres caractères de la réponse au reset
Le protocole T = 0
3.2.1
Le protocole au niveau caractère ou TPDU
3.2.2
Le protocole au niveau application ou APDU
Le protocole T = 1
Les fichiers d'une carte à puce
3.4.1
Arborescence des fichiers et répertoires
3.4.2
Identification et nommage des fichiers
3.4.3
Structures des fichiers
Synthèse
49
50
52
58
58
62
68
69
70
71
73
78
JEU D'INSTRUCTIONS ET MESSAGES D'ERREURS
DES CARTES A PUCE
79
Commandes de gestion de fichiers
4.1.1
SELECT FILE
4.1.2
READ BINARY
4.1.3
WRITE BINARY
4.1.4
UPDATE BINARY
4.1.5
ERASE BINARY
4.1.6
READ RECORD
4.1.7
WRITE RECORD
4.1.8
UPDATE RECORD
4.1.9
APPEND RECORD
Commandes relatives à la sécurité
4.2.1
VERIFY
4.2.2
INTERNAL AUTHENTICATE
4.2.3
GET CHALLENGE
4.2.4
EXTERNAL AUTHENTICATE
4.2.5
ENVELOPE
Commandes diverses
4.3.1
GET RESPONSE
4.3.2
MANAGE CHANNEL
4.3.3
GET DATA
4.3.4
PUT DATA
4.4
Signification des codes d'état SW 1 et SW2
Les « autres» commandes
80
80
82
83
84
86
87
89
91
92
94
95
97
101
102
104
105
105
106
108
109
110
111
SECURITE DES CARTES A PUCE ET CRYPTOGRAPHIE
113
Le vocabulaire de la cryptographie
5.1.1
Algorithmes restreints et algorithmes publics
5.1.2
Algorithmes à clé publique ou à clé secrète
5.1.3
Les méthodes de cryptanalyse
Méthodes cryptographiques simples
5.2.1
Les chiffres à substitution
5.2.2
Les chiffres à transposition
5.2.3
Les autres chiffres
5.2.4
La stéganographie
Les algorithmes cryptographiques complexes à clé secrète
5.3.1
Le DES
5.3.2
Le triple DES
5.3.3
L'AES
Les algorithmes cryptographiques complexes à clé publique
114
115
116
116
118
118
119
120
122
122
124
129
130
131
5.4.1
5.4.2
Clé publique et clé privée
Principe du RSA
131
132
5.4.3
Utilisation du RSA
133
CHOIX D'UN ENVIRONNEMENT DE DEVELOPPEMENT
135
Choix de la carte
6.1.1
Le développement d'une carte spécifique
6.1.2
L'utilisation de cartes personnalisables
6.1.3
Les cartes à puce à OS ouvert
6.1.4
Le système Multos
6.1.5
La Java Card
6.1.6
La Basic Card
Choix d'un lecteur
6.2.1
Les interfaces matérielles des lecteurs
6.2.2
Compatibilité PC -SC
Choix d'un environnement de développement
6.3.1
Environnement de travail avec des cartes spécifiques
6.3.2
Environnement de travail
avec des cartes personnalisables
6.3.3
Environnement de travail avec des cartes à OS ouvert
135
135
137
141
144
147
150
153
154
158
160
161
161
162
CHAPITRE 7
7.1
7.2
7.3
7.4
CHAPITRE 8
8.1
8.3
8.4
8.5
ANNEXE
TOP
MANIPULATIONS PRATIQUES ET EXEMPLES D'APPLICATIONS
165
Un système de lecture de cartes à puce polyvalent
7.1.1
Pilotes propriétaires ou PC -SC
7.1.2
Un outil de travail polyvalent et gratuit: CardEasy
7.1.3
Lecture et écriture dans les cartes à mémoire
7.1.4
Lecture et écriture dans les cartes à protocoles
T = 0 et T = 1
Personnalisation d'une carte
7.2.1
Un exemple de carte personnalisable :
la carte ACOS 1
7.2.2
Personnalisation d'une carte avec CardEasy
7.2.3
Ecriture d'une application pour carte personnalisée
7.2.4
Deux exemples d'applications
pour cartes personnalisées
Exemple d'utilisation d'une carte à OS ouvert
7.3.1
Installation et prise en main
du système de développement
7.3.2
Ecriture d'une application pour carte à OS ouvert
Synthèse
166
167
168
168
REALISEZ VOS CARTES ET VOS OUTILS DE DEVELOPPEMENT
201
Réalisez vos propres cartes à puce
8.1.1
La carte Wafer 1 ou Gold Card
8.1.2
La carte Wafer 3 ou Silver Card
8.1.3
La carte Wafer 4 ou Purple Card ou encore Fun Card
8.1.4
La carte Wafer 5 ou Pink Card ou encore Jupiter Card
8.1.5
Outils de développement Microchip et Atmel
8.2
Programmateurs pour cartes Wafer
8.2.1
Programmateur pour cartes Gold et Silver
8.2.2
Programmateur pour cartes Purple et Pink
Lecteur de cartes à puce Phoenix et Smart Mouse
Analyseur de dialogue universel pour carte a puce
8.4.1
Fausses cartes
8.4.2
L'analyseur proprement dit
8.4.3
Adaptateur pour carte micro SIM
Synthèse
201
202
204
208
211
214
215
216
225
232
240
241
243
248
250
CONTENU DU CEDEROM
253
169
173
174
181
185
187
194
195
196
200