Les cartes à puce : théorie et mise en oeuvre
Sommaire détaillé
Avant-propos
Chapitre 1 : Présentation générale
1.1 Historique
1.2 Quelques chiffres
1.3 Une normalisation parfaite
1.4 Caractéristiques physiques et électriques des cartes à puce à contacts
1.4.1 Caractéristiques mécaniques
1.4.2 Brochage des cartes à puce
1.4.3 Niveaux électriques et logiques
1.4.4 Insertion et retrait des cartes des lecteurs
1.4.5 Description de l’opération de reset des cartes à
puce
1.4.6 La réponse au reset ou ATR
1.5 Caractéristiques physiques et électriques des cartes à puce sans contact
1.5.1 Les différentes familles de composants « sans
contact »
1.5.2 Les différentes familles de cartes à puce sans
contact
1.5.3 Caractéristiques mécaniques des cartes à puce
sans contact
1.5.4 Caractéristiques électriques des cartes à puce
sans contact
1.5.5 Les normes ISO 14 443-3 et 14 443-4
1.6 Les différents types de cartes à puce (avec ou sans contact)
1.6.1 Les cartes à mémoire ou cartes synchrones
1.6.2 Les cartes à microcontrôleur ou cartes
asynchrones
1.6.3 Le cas particulier des cartes à puces sans
contact
Chapitre 2 : Les cartes à mémoire ou cartes synchrone
2.1 Les anciennes cartes à mémoire OTPROM ou télécartes
2.1.1 Description
2.1.2 Principe de fonctionnement
2.1.3 Sécurité des anciennes cartes à mémoire OTPROM
2.1.4 Attaques et méthodes de protection d’une ancienne
télécarte
2.1.5 La morale de l’histoire
2.2 Les cartes à mémoire I2C
2.2.1 Les grands principes du bus I2C
2.2.2 Fonctionnement des cartes à puce I2C
2.2.3 Sécurité des cartes à mémoire I2C
2.2.4 Développement d’une application
2.3 Les cartes protégées à jetons
2.3.1 Une sécurité reposant sur le secret
2.4 Les cartes à mémoire sécurisée
2.4.1 Réponse au reset ou ATR en mode synchrone
2.4.2 Principe de sécurisation de la mémoire et des
transactions
2.4.3 Développement d’une application
2.5 Les cartes à mémoire sans contact
2.5.1 Etablissement du dialogue avec une carte sans
contact
2.5.2 Sécurisation du dialogue avec une carte sans
contact
2.5.3 Développement d’une application
2.6 Synthèse
Chapitre 3 : Les « vraies » cartes à puce ou cartes à
microcontrôleur
3.1 Réponse au reset ou ATR
3.1.1 Chronogramme de la réponse au reset
3.1.2 Convention directe, convention inverse et
caractère TS
3.1.3 Les autres caractères de la réponse au reset
3.1.4 La négociation de vitesse de dialogue
3.2 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
3.3 Le protocole T = 1
3.4 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
3.5 Synthèse
Chapitre 4 : Instructions normalisées et messages d’erreur
4.1 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
4.2 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
4.3 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 SW1 et SW2
4.5 Les « autres » commandes
Chapitre 5 : Notions de cryptographie
5.1 Le vocabulaire de la cryptographie
5.1.1 Algorithmes restreints et algorithmes publics
5.1.2 Algorithmes à clé secrète
5.1.3 Algorithmes à clé publique
5.1.4 Signature électronique et cryptographie
5.1.5 Les méthodes de cryptanalyse
5.2 Méthodes cryptographiques simples
5.2.1 Les chiffres à substitution monoalphabétique
5.2.2 Les chiffres à substitution polyalphabétique
5.2.3 Les chiffres à transposition
5.2.4 Les autres chiffres
5.2.5 La stéganographie
5.3 Les algorithmes cryptographiques complexes à clé secrète
5.3.1 Le DES
5.3.2 Le triple DES
5.3.3 L’AES
5.4 Les algorithmes cryptographiques complexes à clé publique
5.4.1 Clé publique, clé privée et signature
électronique
5.4.2 Principe du RSA
5.4.3 Utilisation du RSA
Chapitre 6 : Développement d’une application
6.1 Les trois familles de cartes à votre disposition
6.1.1 Les cartes spécifiques
6.1.2 Les cartes personnalisables
6.1.3 Les cartes à OS ouvert
6.2 Lecteurs standards et lecteurs spécifiques
6.2.1 Les interfaces matérielles des lecteurs
6.2.2 La compatibilité PC/SC
6.3 Choix d’un environnement de développement
6.3.1 Environnement de travail pour cartes spécifiques
6.3.2 Environnement de travail pour cartes
personnalisables
6.3.3 Environnement de travail pour cartes à OS ouvert
6.4 Passons à la pratique
Chapitre 7 : Lecture et écriture dans une carte à puce
7.1 Lecteur et/ou programmateur
7.2 Choix et installation d’un lecteur
7.2.1 Installation des pilotes
7.2.2 Premiers essais du lecteur
7.3 Le logiciel polyvalent CardEasy
7.3.1 Lecture et écriture dans les cartes à mémoire I2C
7.3.2 Lecture et écriture dans les cartes à protocoles
T = 0 et T = 1
Chapitre 8 : Personnalisation d’une carte
8.1 Un exemple de carte personnalisable : la carte ACOS1
8.1.1 Principe général de personnalisation
8.1.2 Les fichiers de personnalisation
8.2 Personnalisation d’une carte avec CardEasy
8.3 Ecriture d’une application pour carte personnalisée
8.4 Deux exemples d’applications pour cartes personnalisées
8.4.1 Carte de contrôle d’accès
8.4.2 Porte-monnaie électronique rechargeable
Chapitre 9 : Utilisation d’une carte à OS ouvert
9.1 Le système de développement pour Basic Card
9.1.1 Installation du kit de développement
9.1.2 Principe général d’utilisation du kit de
développement
9.2 Une application Basic Card ... sans Basic Card
9.2.1 Quelques principes fondamentaux du kit
9.2.2 Notre programme de personnalisation automatique
9.2.3 Réalisation pratique
9.3 Une clé sécurisée simple à Basic Card
9.3.1 Le programme « terminal »
9.3.2 Le programme carte
9.3.3 Réalisation pratique
9.4 Synthèse
Chapitre 10 : Utilisation de cartes à puce spécifiques
10.1 Des cartes plus ou moins bien documentées
10.1.1 Les cartes Gold et Silver
10.1.2 Ecriture d’une application pour carte Gold ou
Silver
10.1.3 Les cartes Fun, Purple, Pink et Jupiter
10.1.4 Ecriture d’une application pour carte Fun
10.1.5 Les cartes Titanium, Platinium, Knot et Opos
10.2 Lecteur/programmateur pour cartes spécifiques
10.2.1 L’Infinity USB Unlimited
10.2.2 Lecture et écriture dans l’EEPROM externe
10.2.3 Utilisation de l’Infinity USB Unlimited
Chapitre 11 : Réalisez vos outils de développement et
d’analyse
11.1 Lecteur/programmateur compatible Phoenix, SmartMouse et
JDM
11.1.1 Schéma du lecteur/programmateur
11.1.2 Réalisation du lecteur programmateur
11.1.3 Logiciels et utilisation
11.1.4 Programmation en Visual Basic
11.2 Programmateur pour cartes Fun ou Purple
11.2.1 Schéma du programmateur pour cartes Fun
11.2.2 Réalisation du programmateur pour carte Fun
11.2.3 Logiciels et utilisation
11.3 Analyseur de dialogue universel pour cartes à puce
11.3.1 Réalisez vos « fausses » cartes
11.3.2 Schéma de l’analyseur de dialogue
11.3.3 Adaptateur pour carte SIM
11.3.4 Logiciels et utilisation
11.3.5 Lorsque la vitesse n’est pas normalisée
11.3.6 Emulateurs de cartes et adaptateur « Season »
Chapitre 12 : A la limite de la légalité
12.1 Les différents types d’attaques
12.2 Les attaques purement logicielles
12.3 Les attaques matérielles destructrices
12.4 Les attaques matérielles non destructrices
12.5 Les attaques externes de type SPA, DPA et EMA
12.5.1 Quelques exemples de signaux
12.5.2 Extraction d’une clé RSA avec une attaque de
type SPA
12.5.3 Un exemple de protection
12.5.4 Les « variantes » de type DPA et EMA
12.6 Synthèse
Annexes
Contenu du cédérom
Adresses Internet
|