Les cartes à puce
Traité RTA, série Informatique et Systèmes d'Information

Auteurs :

Directeur de Collection : POMEROL Jean-Charles

Langue : Français

89,00 €

En stock : expédition en 24h !

Ajouter au panierAjouter au panier
Date de parution :
Ouvrage 326 p. · 15.6x23.4 cm · Relié · 
ISBN : 9782746239135 EAN : 9782746239135
Hermes Science

· PDF : 89,00 € ·
Acheter l'e-book e-book

Résumé de Les cartes à puce

Devenue un objet usuel du quotidien, la carte à puce fait intervenir de très nombreuses technologies informatiques. Cet ouvrage présente les concepts fondamentaux de la carte à puce et ses domaines d’applications. Il nous révèle les caractéristiques des systèmes d’exploitation embarqués, la manière de programmer les cartes dans le langage Java Card, les techniques mises en œuvre pour garantir leur sécurité face aux attaques physiques et logiques, ainsi que les méthodes formelles pour faire de la carte un objet de confiance. Le fonctionnement interne de la carte SIM dans les téléphones mobiles est décrit en détail. Le passeport biométrique et le paiement mobile sont traités à travers la technologie RFID/NFC qui ouvre la voie à de nouvelles applications du sans contact.

Sommaire de Les cartes à puce

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