Les cartes à puce Traité RTA, série Informatique et Systèmes d'Information
Auteurs : BOUZEFRANE Samia, PARADINAS Pierre
Directeur de Collection : POMEROL Jean-Charles
Préface - Marc LASSUS. . . . . . . . . . . . . . . . .17
Introduction - Pierre PARADINAS . . . . . . . . . .19
Chapitre 1. Les systèmes d’exploitation de la carte à microprocesseur . . . 29
Gilles GRIMAUD et Michaël HAUSPIE
1.1. Rôle des systèmes d’exploitation encartés . . . . . . . . . . . . . . . . . 29
1.1.1. Un système d’exploitation comme les autres . . . . . . . . . . . . 29
1.1.2. Gérer le matériel encarté . . . . . . . . . . . . . . . . . . . . . . . 31
1.1.3. Architecture des systèmes d’exploitation . . . . . . . . . . . . . . 33
1.1.4. Un support pour l’interprétation des requêtes APDU . . . . . . . 39
1.1.5. Gestion des mémoires . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.1.5.1. Gestion autour de la ROM . . . . . . . . . . . . . . . . . . . 42
1.1.5.2. Gestion de la RAM . . . . . . . . . . . . . . . . . . . . . . . 45
1.1.5.3. Gestion de la mémoire persistante . . . . . . . . . . . . . . . 48
1.1.6. La programmation du microprocesseur . . . . . . . . . . . . . . . 52
1.2. Quelle abstraction pour quelle carte ? . . . . . . . . . . . . . . . . . . . 54
1.2.1. Abstraction de la mémoire persistante . . . . . . . . . . . . . . . . 55
1.2.1.1. Le modèle des systèmes de fichiers ISO . . . . . . . . . . . . 55
1.2.1.2. Le modèle des systèmes de base de données ISO . . . . . . 56
1.2.1.3. Les objets persistants de Java Card . . . . . . . . . . . . . . 57
1.2.2. Abstraction du support de communication . . . . . . . . . . . . . 59
1.2.3. Abstraction du microprocesseur et machines virtuelles . . . . . . 59
1.2.3.1. Introduction des machines virtuelles . . . . . . . . . . . . . . 60
1.2.3.2. Cycle de vie des applications post-issuance . . . . . . . . . . 60
1.2.3.3. Traitement du code applicatif, dans et hors de la carte . . . . 62
1.3. Quelques systèmes d’exploitation singuliers . . . . . . . . . . . . . . . 63
1.3.1. BasicCard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
1.3.2. MULTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
1.3.3. SOSSE – Simple Operating System for Smartcard Education . . . 65
1.3.4. CAMILLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
1.3.5. SMEWS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
1.3.6. La carte CQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
1.4. Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Chapitre 2. La carte SIM et ses applications dans la téléphonie mobile. . . . . . . . . 69
Grégory BUSSARD, Patrick BIGET
2.1. Introduction aux réseaux de téléphonie mobile . . . . . . . . . . . . . . 69
2.1.1. Un aperçu du développement des réseaux . . . . . . . . . . . . . . 69
2.1.2. Les services proposés . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.1.3. L’architecture d’un réseau GSM . . . . . . . . . . . . . . . . . . . 71
2.2. Le rôle de la carte SIM dans le réseau . . . . . . . . . . . . . . . . . . . 71
2.2.1. Un élément de mobilité . . . . . . . . . . . . . . . . . . . . . . . . 71
2.2.2. Un dispositif de sécurisation . . . . . . . . . . . . . . . . . . . . . 72
2.2.3. Un portefeuille d’applications interopérables . . . . . . . . . . . . 73
2.3. Le fonctionnement d’une carte SIM . . . . . . . . . . . . . . . . . . . . 73
2.3.1. La gestion des données . . . . . . . . . . . . . . . . . . . . . . . . 73
2.3.1.1. Le modèle logique de données . . . . . . . . . . . . . . . . . 73
2.3.1.2. Le schéma de protection des données . . . . . . . . . . . . . 75
2.3.1.3. Les fonctions d’accès aux données . . . . . . . . . . . . . . 77
2.3.1.4. Les principales données stockées dans la carte . . . . . . . 77
2.3.2. Les services de sécurité . . . . . . . . . . . . . . . . . . . . . . . . 78
2.3.2.1. L’authentification au réseau . . . . . . . . . . . . . . . . . . . 78
2.3.2.2. Le chiffrement des communications . . . . . . . . . . . . . . 80
2.3.2.3. Les fonctions d’accès aux services de sécurité . . . . . . . . 80
2.3.3. Les applications à valeur ajoutée . . . . . . . . . . . . . . . . . . . 81
2.3.3.1. La technologie SIM Toolkit . . . . . . . . . . . . . . . . . . 81
2.3.3.2. Les éléments du framework . . . . . . . . . . . . . . . . . . 84
2.3.3.3. Le principe de proactivité et les fonctions d’accès aux applications . . . . . . . . . . . . 87
2.3.3.4. Quelques exemples d’applications . . . . . . . . . . . . . . . 89
2.4. La gestion à distance de la carteSIM . . . . . . . . . . . . . . . . . . . 90
2.4.1. Le principe de la gestion over-the-air . . . . . . . . . . . . . . . . 90
2.4.2. Les mécanismes de sécurisation . . . . . . . . . . . . . . . . . . . 90
2.4.2.1. L’authentification . . . . . . . . . . . . . . . . . . . . . . . . 91
2.4.2.2. La confidentialité . . . . . . . . . . . . . . . . . . . . . . . . 91
2.4.2.3. L’intégrité . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
2.4.2.4. La protection contre les attaques par rejeu . . . . . . . . . . 91
2.4.3. Les cas d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . 92
2.4.3.1. La mise à jour de données . . . . . . . . . . . . . . . . . . . 92
2.4.3.2. Le chargement d’applications . . . . . . . . . . . . . . . . . 92
2.4.4. Une évolution technologique : le protocole CAT-TP . . . . . . . . 93
2.5. L’évolution de la carte dans les réseaux de nouvelles générations . . . 93
2.5.1. Réseau CDMA et carte RUIM . . . . . . . . . . . . . . . . . . . . 93
2.5.2. Réseau 3Get carte USIM . . . . . . . . . . . . . . . . . . . . . . . 94
2.5.3. Réseau 4Get carte ISIM . . . . . . . . . . . . . . . . . . . . . . . 95
2.5.4. Les marchés spécifiques . . . . . . . . . . . . . . . . . . . . . . . . 96
2.5.4.1. Le marché « MobileTV » . . . . . . . . . . . . . . . . . . . 96
2.5.4.2. Le marché Machine-to-Machine . . . . . . . . . . . . . . . . 96
2.6. Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Chapitre 3. Java Card et son évolution . . . . . . . . . . . . . . . . . . . . . . 99
Eric VÉTILLARD, Samia BOUZEFRANE
3.1. Les cartes multi-applicatives avant Java Card . . . . . . . . . . . . . . . 99
3.1.1. Les premières cartes multi-applicatives : MPCOS et les données multiples . . . . . 99
3.1.2. Les scripts SIMToolkit propriétaires . . . . . . . . . . . . . . . . 99
3.2. JavaCard 1.0 et 2.0: l’exploration . . . . . . . . . . . . . . . . . . . . . 100
3.2.1. Java Card 1.0 : on peut utiliser Java ! . . . . . . . . . . . . . . . . 100
3.2.2. Java Card 2.0 : applets, isolation et persistance . . . . . . . . . . . 101
3.3. Java Card 2.1 : la maturité . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.3.1. Interopérabilité et portabilité . . . . . . . . . . . . . . . . . . . . . 102
3.4. Un modèle simple et efficace . . . . . . . . . . . . . . . . . . . . . . . . 104
3.5. L’API Java Card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.5.1. java.lang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.5.2. javacard.framework . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.5.3. javacard.security . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
3.5.4. javacardx.crypto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
3.6. Exemple d’application . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3.6.1. Exemple d’applet Java Card . . . . . . . . . . . . . . . . . . . . . 108
3.6.2. Exemple de Client Java Standard. . . . . . . . . . . . . . . . . . . 109
3.7. Etapes de développement . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.8. JavaCard 3.0 : l’avenir . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.8.1. Segmentation du marché . . . . . . . . . . . . . . . . . . . . . . . 112
3.9. Java Card Connected : trop ambitieux ? . . . . . . . . . . . . . . . . . . 113
3.10. Java Card en 2013 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
3.10.1. Java Card est partout . . . . . . . . . . . . . . . . . . . . . . . . 115
3.10.2. Défis à venir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
3.11. Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Chapitre 4. Cryptographie et protocoles cryptographiques pour les cartes à puce . . . . . . . . 119
Jean-Jacques QUISQUATER
4.1. Début de la cryptographie dans la carte à puce . . . . . . . . . . . . . . 120
4.2. Pourquoi la cryptographie et laquelle ? . . . . . . . . . . . . . . . . . . 120
4.2.1. Les primitives cryptographiques à clé secrète ou symétriques . . . . . . . 124
4.2.2. Les primitives cryptographiques à clé publique ou asymétriques . . . . . . . 124
4.2.3. Fonctions de hachage cryptographique . . . . . . . . . . . . . . . 125
4.3. Comment la cryptographie fut-elle introduite ? . . . . . . . . . . . . . . 126
4.4. La télévision à péage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
4.5. La carte SIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
4.6. Les standards EMV pour les cartes de paiement . . . . . . . . . . . . . 131
4.7. Les cartes d’identité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
4.8. Les passeports : les normes ICAO . . . . . . . . . . . . . . . . . . . . . 132
4.9. Le futur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
4.10. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
4.11. Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Chapitre 5. Attaques physiques . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Bruno ROBISSON, Hugues THIEBEAULD
5.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
5.2. Description de la menace . . . . . . . . . . . . . . . . . . . . . . . . . . 136
5.2.1. Objectif de l’attaquant et enjeux . . . . . . . . . . . . . . . . . . . 136
5.2.2. L’attaquant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
5.3. Techniques expérimentales . . . . . . . . . . . . . . . . . . . . . . . . . 138
5.3.1. Inspection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
5.3.2. Observation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
5.3.2.1. Temps de réponse . . . . . . . . . . . . . . . . . . . . . . . . 139
5.3.2.2. Alimentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
5.3.2.3. Champ électromagnétique . . . . . . . . . . . . . . . . . . . 140
5.3.2.4. Microsonde . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.3.3. Perturbation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
5.3.3.1. Fréquence d’horloge. . . . . . . . . . . . . . . . . . . . . . . 141
5.3.3.2. Alimentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
5.3.3.3. Champ électromagnétique . . . . . . . . . . . . . . . . . . . 142
5.3.3.4. Lumière . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
5.3.3.5. Microsonde et modification . . . . . . . . . . . . . . . . . . . 143
5.4. Extraction d’information . . . . . . . . . . . . . . . . . . . . . . . . . . 143
5.4.1. Concepts et notations . . . . . . . . . . . . . . . . . . . . . . . . . 144
5.4.1.1. Observables . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
5.4.1.2. Relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
5.4.1.3. Exemples de relations entre observables . . . . . . . . . . . 146
5.4.2. Scénario 1 : cryptanalyse physique . . . . . . . . . . . . . . . . . 147
5.4.2.1. Mode opératoire . . . . . . . . . . . . . . . . . . . . . . . . . 147
5.4.2.2. Exemple simple . . . . . . . . . . . . . . . . . . . . . . . . . 152
5.4.2.3. Exemples de la littérature . . . . . . . . . . . . . . . . . . . . 154
5.4.3. Scénario 2 : rétro-ingénierie . . . . . . . . . . . . . . . . . . . . . 157
5.4.3.1. Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
5.4.3.2. Exemple simple . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.5. Protections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
5.5.1. Protections contre les attaques par observation . . . . . . . . . . . 159
5.5.1.1. Equilibrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
5.5.1.2. Filtrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
5.5.1.3. Ajout de bruit . . . . . . . . . . . . . . . . . . . . . . . . . . 160
5.5.2. Protection contre les attaques en faute . . . . . . . . . . . . . . . . 161
5.5.2.1. Détecter/réagir . . . . . . . . . . . . . . . . . . . . . . . . . . 161
5.5.2.2. Absorber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
5.5.2.3. Corriger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
5.5.2.4. Ajouter du bruit . . . . . . . . . . . . . . . . . . . . . . . . . 162
5.5.3. Combinaisons de protections . . . . . . . . . . . . . . . . . . . . . 162
5.6. Quantification de la menace. . . . . . . . . . . . . . . . . . . . . . . . . 163
5.7. Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Chapitre 6. La sécurité logique . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Guillaume BARBU, Guillaume BOUFFARD, Julien IGUCHI-CARTIGNY
6.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
6.1.1. Java Card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
6.1.2. Le vérifieur de bytecode. . . . . . . . . . . . . . . . . . . . . . . . 174
6.1.3. Le pare-feu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
6.1.4. Le mécanisme de partage . . . . . . . . . . . . . . . . . . . . . . . 175
6.1.5. Le fichier CAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
6.1.6. Les classes d’attaque . . . . . . . . . . . . . . . . . . . . . . . . . 177
6.1.6.1. Les attaques logicielles « pures » . . . . . . . . . . . . . . . 177
6.1.6.2. Les attaques par logiciel incorrect . . . . . . . . . . . . . . . 177
6.1.6.3. Les attaques combinées logiciel/matériel . . . . . . . . . . . 179
6.2. Attaques logicielles pures . . . . . . . . . . . . . . . . . . . . . . . . . . 180
6.2.1. Abus du mécanisme de transaction . . . . . . . . . . . . . . . . . . 180
6.2.2. Attaque sur l’interface de partage . . . . . . . . . . . . . . . . . . 181
6.3. Attaques par logiciel incorrect . . . . . . . . . . . . . . . . . . . . . . . 182
6.3.1. Introduction de NOP . . . . . . . . . . . . . . . . . . . . . . . . . 182
6.3.2. Attaque sur la résolution des statiques . . . . . . . . . . . . . . . . 183
6.3.3. EMAN1 : réalisation d’un cheval de Troie dans une carte . . . . . 185
6.3.4. EMAN2 : modification de l’en-tête de la pile Java Card . . . . . . 187
6.3.4.1. Caractérisation de la pile Java Card . . . . . . . . . . . . . . 187
6.3.4.2. Corruption de la pile Java Card . . . . . . . . . . . . . . . 188
6.3.5. Attaque sur la résolution des méthodes . . . . . . . . . . . . . . . 190
6.4. Attaques combinées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
6.4.1. Introduction sur l’injection de NOP durant l’exécution . . . . . . 191
6.4.2. Perturbation de la machine virtuelle Java Card . . . . . . . . . . . 192
6.4.3. Perturbation des données manipulées par la JCVM . . . . . . . . 194
6.4.4. EMAN4 : perturbation du flot de contrôle d’une application embarquée . . . . . . . 195
6.4.5. Corruption des frames dans un contexte de multithreading . . . . 196
6.5. Possibilités d’exploitation de ces attaques . . . . . . . . . . . . . . . . . 198
6.6. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
6.7. Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Chapitre 7. Mise en oeuvre d’une application, choix de solutions, performances. . . . 201
Samia BOUZEFRANE, Damien SAUVERON, Julien CORDRY, Khaled GARRI
7.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
7.2. PC/SC: communication entre le PC et la carte . . . . . . . . . . . . . . 202
7.3. L’architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
7.4. Les différentes implémentations . . . . . . . . . . . . . . . . . . . . . . 205
7.4.1. Microsoft PC/SC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
7.4.2. pcsc-lite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
7.5. Les wrappers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
7.6. Exemple d’un outil de développement Java Card 2 . . . . . . . . . . . . 208
7.6.1. Étape d’installation . . . . . . . . . . . . . . . . . . . . . . . . . . 208
7.6.2. Étapes de configuration et d’implémentation . . . . . . . . . . . . 209
7.6.2.1. Configuration du fichier ManagerConfig.xml . . . . . . . 211
7.6.2.2. Écrire le code de l’applet SampleT estApplet.java . . . . 211
7.6.2.3. Compiler l’applet . . . . . . . . . . . . . . . . . . . . . . . . 212
7.6.2.4. Écrire le programme client . . . . . . . . . . . . . . . . . . . 213
7.6.2.5. Installation de l’applet sur la carte . . . . . . . . . . . . . . . 214
7.7. Qu’est-ce que Java Card RMI ? . . . . . . . . . . . . . . . . . . . . . . . 214
7.7.1. Rappel de JavaRMI . . . . . . . . . . . . . . . . . . . . . . . . . . 215
7.7.2. Principe de Java Card RMI . . . . . . . . . . . . . . . . . . . . . . 216
7.8. Comment développer une application JCRMI côté serveur (carte) ? . . . . . . . 216
7.8.1. L’interface de l’objet distant . . . . . . . . . . . . . . . . . . . . . 217
7.8.2. Implémenter l’interface de l’objet distant . . . . . . . . . . . . . . 218
7.8.3. Paramètres des méthodes distantes . . . . . . . . . . . . . . . . . . 219
7.8.4. Génération du Stub . . . . . . . . . . . . . . . . . . . . . . . . . . 219
7.8.5. Comment construire l’applet serveur . . . . . . . . . . . . . . . . 220
7.9. Comment développer une application JCRMI côté client (terminal) ? . . . . . . . . . 222
7.9.1. Les différentes opérations effectuées par le client . . . . . . . . . 222
7.9.1.1. Initialisation d’un CardAccessor . . . . . . . . . . . . . . . . 222
7.9.1.2. Connexion à la plate-forme JCRMI . . . . . . . . . . . . . . 222
7.9.1.3. Sélection de l’applet serveur . . . . . . . . . . . . . . . . . 223
7.9.1.4. Obtenir la référence de l’objet distant . . . . . . . . . . . . . 223
7.9.1.5. Utiliser l’objet distant dans les invocations . . . . . . . . . . 223
7.9.1.6. Se déconnecter de la carte en libérant ses ressources . . . . 223
7.9.2. La structure finale du client . . . . . . . . . . . . . . . . . . . . . . 223
7.9.3. Communication d’un client avec un serveur en utilisant JCRMI.. . . . . . 224
7.10. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
7.11. GlobalPlatform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
7.11.1. Pourquoi GlobalPlatform ? . . . . . . . . . . . . . . . . . . . . . 226
7.11.2. L’architecture GlobalPlatform embarquée . . . . . . . . . . . . . 227
7.11.2.1. L’environnement d’exécution (RTE) . . . . . . . . . . . . . 228
7.11.2.2. Le système de confiance (Trusted Framework) . . . . . . . 229
7.11.2.3. Les domaines de sécurité (Security Domains) . . . . . . . . 230
7.11.2.4. Les APIGlobalPlatform . . . . . . . . . . . . . . . . . . . . 231
7.11.3. Les mécanismes de sécurité de GlobalPlatform . . . . . . . . . . 231
7.11.3.1. La sécurité des communications . . . . . . . . . . . . . . . 231
7.11.3.2. La signature des applications . . . . . . . . . . . . . . . . . 235
7.11.3.3. La gestion de la vérification du détenteur de la carte (CVM).. . 235
7.11.4. Un exemple pratique . . . . . . . . . . . . . . . . . . . . . . . . . 236
7.11.5. Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
7.12. Accédez aux lecteurs et cartes en Java . . . . . . . . . . . . . . . . . . 238
7.13. Performances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
7.14. Types de benchmarks . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
7.15. Etat de l’art de la mesure de performance des plates-formes Java Card . . . . . . . 241
7.15.1. Castellá . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
7.15.2. Markantonakis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
7.15.3. Erdmann . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
7.15.4. Fischer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
7.15.5. Rehioui . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
7.15.6. Papapanagiotoy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
7.15.7. Mostowski . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
7.15.8. Tews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
7.16. Exemple de l’outil MESURE . . . . . . . . . . . . . . . . . . . . . . . 245
7.16.1. Approche générale utilisée . . . . . . . . . . . . . . . . . . . . . 246
7.16.2. Principe d’isolation du temps d’exécution . . . . . . . . . . . . . 247
7.16.3. Les outils de MESURE . . . . . . . . . . . . . . . . . . . . . . . 248
7.16.3.1. Le module Calibrate . . . . . . . . . . . . . . . . . . . . . . 248
7.16.3.2. Le module Bench . . . . . . . . . . . . . . . . . . . . . . . . 249
7.16.3.3. Le module Filter . . . . . . . . . . . . . . . . . . . . . . . . 249
7.16.3.4. Le module Extractor . . . . . . . . . . . . . . . . . . . . . . 250
7.16.3.5. Le module Profiler . . . . . . . . . . . . . . . . . . . . . . . 250
7.17. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
7.18. Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Chapitre 8. Méthodes formelles et certification . . . . . . . . . . . . . . . . . 255
Stéphanie MOTRÉ, Pierre COURTIEU, Jean-Louis LANET
8.1. Techniques de vérification formelle . . . . . . . . . . . . . . . . . . . . 256
8.2. Spécification et vérification formelle dans le cadre de la carte à puce . . . . . . 257
8.2.1. Les assistants à la preuve . . . . . . . . . . . . . . . . . . . . . . . 259
8.2.2. Coq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
8.2.3. Exemple : une preuve du vérificateur de bytecode . . . . . . . . . 260
8.2.3.1. Un aperçu du bytecode . . . . . . . . . . . . . . . . . . . . . 261
8.2.3.2. Formalisation de la VM en Coq . . . . . . . . . . . . . . . . 263
8.2.3.3. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
8.2.4. Z et B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
8.2.4.1. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
8.2.4.2. Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
8.2.4.3. Preuve. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
8.2.4.4. De l’usage de B pour démontrer une équivalence de comportement. . . . . 269
8.2.5. La preuve de correction sous hypothèse de faute . . . . . . . . . . 273
8.2.6. Vérification de modèle . . . . . . . . . . . . . . . . . . . . . . . . 275
8.2.6.1. Flot illicite d’informations . . . . . . . . . . . . . . . . . . . 275
8.2.7. Test à partir de modèles . . . . . . . . . . . . . . . . . . . . . . . . 276
8.3. Certification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
8.3.1. Critères communs . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
8.3.2. Assurance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
8.3.2.1. ASE–Cible de sécurité . . . . . . . . . . . . . . . . . . . . . 280
8.3.2.2. ADV – Développement . . . . . . . . . . . . . . . . . . . . . 282
8.3.2.3. AGD–Guides . . . . . . . . . . . . . . . . . . . . . . . . . . 282
8.3.2.4. ALC – Support du cycle de vie . . . . . . . . . . . . . . . . . 283
8.3.2.5. ATE–Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
8.3.2.6. AVA – Étude de vulnérabilité . . . . . . . . . . . . . . . . . . 284
8.3.2.7. Les méthodes formelles dans les critères communs . . . . . 285
8.4. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
8.5. Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Chapitre 9. La sécurité du sans-contact et ses spécificités . . . . . . . . . . . 291
Gildas AVOINE, Xavier CARPENT, Benjamin MARTIN, Tania MARTIN
9.1. La technologie du sans-contact . . . . . . . . . . . . . . . . . . . . . . . 291
9.1.1. L’identification par radiofréquence. . . . . . . . . . . . . . . . . . 291
9.1.2. Premiers pas vers l’invasion électronique . . . . . . . . . . . . . . 292
9.1.3. Caractéristiques des tags . . . . . . . . . . . . . . . . . . . . . . . 293
9.1.3.1. Source d’énergie . . . . . . . . . . . . . . . . . . . . . . . . . 293
9.1.3.2. Fréquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
9.1.3.3. Distance de communication . . . . . . . . . . . . . . . . . . 295
9.1.3.4. Mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
9.1.3.5. Capacité de calcul . . . . . . . . . . . . . . . . . . . . . . . . 295
9.1.4. Exemples de configurations . . . . . . . . . . . . . . . . . . . . . . 296
9.1.5. Les standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
9.1.5.1. ISO/IEC 14443 et ISO/IEC 15693 . . . . . . . . . . . . . . . 297
9.1.5.2. EPCClass 1Gen 2 . . . . . . . . . . . . . . . . . . . . . . . 297
9.1.5.3. NFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
9.1.6. La mise en pratique . . . . . . . . . . . . . . . . . . . . . . . . . . 298
9.2. Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
9.2.1. Contrôle d’accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
9.2.1.1. Ticket de ski . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
9.2.1.2. Transport en commun . . . . . . . . . . . . . . . . . . . . . . 300
9.2.1.3. Automobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
9.2.1.4. Péage routier . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
9.2.2. Pistage et suivi de production . . . . . . . . . . . . . . . . . . . . . 302
9.2.2.1. Identification animale . . . . . . . . . . . . . . . . . . . . . . 302
9.2.2.2. Bibliothèque . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
9.2.2.3. Suivi dans une chaîne logistique . . . . . . . . . . . . . . . . 304
9.2.3. Passeport et applications sécurisées . . . . . . . . . . . . . . . . . 304
9.2.3.1. Passeport électronique. . . . . . . . . . . . . . . . . . . . . . 304
9.2.3.2. Paiement sans contact . . . . . . . . . . . . . . . . . . . . . . 304
9.3. Sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
9.3.1. Enjeux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
9.3.2. Menaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
9.3.2.1. Usurpation d’identité . . . . . . . . . . . . . . . . . . . . . . 307
9.3.2.2. Recouvrement de données . . . . . . . . . . . . . . . . . . . 307
9.3.2.3. Fraude sur la distance et attaques par relai . . . . . . . . . . 307
9.3.2.4. Déni de service . . . . . . . . . . . . . . . . . . . . . . . . . . 307
9.3.3. Protocoles usuels . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
9.3.4. Attaques sur des systèmes réels . . . . . . . . . . . . . . . . . . . 311
9.4. Vie privée et RFID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
9.4.1. Vie privée dans les systèmes d’information . . . . . . . . . . . . . 313
9.4.1.1. Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
9.4.1.2. Contexte légal en France et en Europe . . . . . . . . . . . . . 313
9.4.2. Vie privée dans les systèmes RFID . . . . . . . . . . . . . . . . . 314
9.4.2.1. Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . 314
9.4.2.2. Fuite d’informations . . . . . . . . . . . . . . . . . . . . . . . 315
9.4.2.3. Traçabilité malicieuse . . . . . . . . . . . . . . . . . . . . . . 315
9.4.3. Quelques exemples de problèmes de vie privée en RFID . . . . . 316
9.4.4. Solutions pratiques et théoriques . . . . . . . . . . . . . . . . . . . 317
9.4.4.1. Au niveau physique . . . . . . . . . . . . . . . . . . . . . . . 317
9.4.4.2. Au niveau des protocoles . . . . . . . . . . . . . . . . . . . . 318
9.4.5. Méthodes théoriques pour analyser la vie privée en RFID . . . . . 319
9.5. Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Date de parution : 09-2013
Ouvrage de 326 p.
15.6x23.4 cm