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