CARTE A Puces
CARTE A Puces
CARTE A Puces
Lacarte
carteààpuce
puce
1
La
Lacarte
carteààpuce
puce: :introduction
introductionet
etprincipe
principe
2
La carte à puce aujourd’hui
Aujourd’hui : plus de 6 milliards de cartes
Monétique :
- Carte bancaire : Groupement Cartes Bancaires, nouvelles cartes EMV, etc.
- Porte-monnaie : Octopus, Moneo en France, Proton en Belgique,
Geldkarte en Allemagne
Identification :
Cartes d'identité nationales (eID en Belgique), E-passeports (août 2006 en France),
Passeport biométrique (depuis le fin Juin 2009)
Titre de transport (Passe Navigo à Paris, Oyster à Londres, Korrigo (un seul
titre de transport pour tous ses déplacements en transports en commun ).
4
Historique – Invention de la carte à puce
1971: Paul Castrucci de IBM dépose aux USA un brevet intitulé Information Card
5
Première carte à puce
6
L’arrivée de la technologie Java Card
Année Événement
1979 Première carte fabriquée par Motorola
pour Bull CP8
1980-81 Premières expérimentations de télévision
payante
1983 Premières cartes téléphoniques France
Télecom
1984 Première version de la carte bleue à base
de carte Bull CP8
1987 Publication des normes ISO 7816
1989 Premières cartes GSM pour téléphones
mobiles (Gemplus)
1998 Premières cartes Java (Java Card)
7
Famille de produits
carte à mémoire
carte à microprocesseur
8
La carte à mémoire
9
La carte à mémoire simple
notion de zone:
- zone à valeur fixe, non modifiable [identifiant émetteur],
- zone pour l’écriture, modifiable [compteur d’unité],
- notion de fusible, cycle de vie de la carte [par exemple la zone à
valeur fixe devient non modifiable après que le fusible soit grillé : OTP (One
Time Programing)].
Exemple la télécarte
(mémoire de 256 bits = ZP (96) + ZL (150))
Av. : coût très bas. Inc. : “clonage” simple.
10
Cartes à mémoire simple
11
Les cartes à mémoire OTPROM
Circuit intégré ST 1200 (de SGS Thomson) : programmable une seule fois
( mise à 1)
12
Les cartes à mémoire OTPROM
13
La carte à logique câblée
14
La carte à logique câblée
15
Caractéristiques des cartes à logique câblée
16
Organisation de la mémoire
17
Exemple d’une carte à logique câblée sécurisée
18
Sécurisation de la mémoire et des transactions
19
Télécarte de deuxième génération
20
Principe de l’authentification mutuelle
Lorsque la carte est insérée dans le lecteur, le lecteur envoie une commande
d’authentification
- La carte compare son résultat avec celui du lecteur, s’il y a égalité =>
le lecteur est identifié par la carte
- La carte utilise ce résultat pour calculer une nouvelle valeur à l’aide d’un algo
cryptographique
- La carte envoie le nouveau résultat
21
Développement d’une application
Chaque zone :
- un octet : conditions d’accès à la zone (avec/sans mot de passe de Lect/
Ecrit/, avec/sans authentification)
- données initiales pour l’authentification mutuelle (clé + semence
du générateur de nbs aléatoires)
- mots de passe en Lect/Ecrit
22
La carte à microprocesseur
23
Étapes de fabrication de la carte
Plastique laminé
Fabrication du module :
Découpage/Sciage,
Contact/Binding,
Collage.
24
Cartes à microcontrôleur
Comportent un microcontrôleur :
- UC
- PROM
- RAM dans le même circuit
- EEPROM
- interface d’E/S
- crypto processeur
Processeur : 16 ou 32 bits
EEPROM : de 1Ko à 128 Ko (256 Ko pour une Java Card ou une Basic Card)
25
Architecture logicielle
Gestion de la mémoire
Fonction cryptographique
26
Particularité du « système d’exploitation (SE)»
27
Exemple de « Mapping »
28
Fonctionnement (1)
29
Fonctionnement (2)
A la personnalisation
30
Fonctionnement (3)
A l’utilisation
31
Fonctionnement (4)
32
Les grandes familles de SE
33
Architecture matérielle aujourd’hui
Mémoires :
- RAM : 1 à 4 Ko
- NVM (EEPROM/Flash) : 16 à 32 Ko
- ROM : 32 à 64Ko
Co-processeur
- Java Card : exécution directe du Byte Code Java Card
34
La
Lanormalisation
normalisation
35
Les standards
ISO,
Santé,
...
36
Normalisation parfaite
Quel que soit le fabricant de la carte à puce, celle-ci sera lue par n’importe quel
distributeur dans le monde
37
Normes principales des cartes à contact : l’ISO 7816
38
Normes principales des cartes à contact
La norme ISO 7816-4 définit les commandes de base des cartes à puce
39
La norme ISO 7816-1
40
Caractéristiques mécaniques des cartes à puce
41
Les 3 formats
ID 01
ID 00 ID 000
42
Les 3 formats
Le fabricant produit une seule taille (ID1), le client final pourra réduire
ses dimensions au format ID00 ou ID000 (ex. carte SIM)
43
Caractéristiques physiques
La carte doit être opaque aux rayons UV (la puce insensible aux rayons UV)
La zone des contacts doit résister à la pression causée par une bille d’acier
de 1,55 mm de diamètre appliquée avec une force intérieure ≤ 1,5 N.
La carte ne doit pas être endommagée par un champ magnétique statique
de 79 500 A/m.
etc.
44
Normalisation AFNOR / ISO
Carte ISO
Carte AFNOR
45
L’ISO 7816-2
46
L’ISO 7816-2
Valeurs en mm
47
L’ISO 7816-2
48
Signification des contacts
I: Min= 2V ou 0.7Vcc
Max=Vcc
O: Min=2.4V ou 3.8V
Max=Vcc
50
L’ISO 7816-3
51
Insertion de la carte dans un lecteur
La norme ISO 7816-3 précise la mise sous tension de la carte et son arrêt
Reset de la carte
Retrait de la carte
52
Étapes d’activation de l’interface avec la carte
Une fois la carte placée dans le lecteur, les opérations suivantes sont déclenchées :
53
Désactivation de l’interface avec la carte
Retrait de la carte (le retrait de la carte avant la fin de la transaction doit être
pris en charge par l’application).
54
ATR défini dans l’ISO 7816-3
- Le protocole de transport ;
- Taux de transmission des données ;
- Numéro de série de la puce …
55
Comportements de la carte et du lecteur lors d’un Reset
56
Les
Lescartes
cartessans
sanscontact
contact
57
Normes principales des cartes sans contact
58
Caractéristiques des cartes sans contact
59
Liaison RFID Lecteur -> Composant
60
Liaison RFID Lecteur -> Composant
61
Liaison RFID Composant -> Lecteur
Pour émettre ses données, il influe sur le champ HF reçu en faisant varier
l’énergie qu’il absorbe
62
Famille des cartes à puce sans contact
63
Caractéristiques mécaniques des cartes à puce sans contact
64
Caractéristiques électriques des cartes à puce sans contact
65
Les normes ISO 14 443-3 et 4
Si plusieurs cartes sont à proximité d’un lecteur, les cartes peuvent tenter
un dialogue avec le lecteur
66
Synoptique interne d’une carte à mémoire sans contact
67
Synoptique interne d’une carte à microcontrôleur
sans contact
68
Établissement du dialogue avec une carte S/contact
- le lecteur informe les autres cartes non sélectionnées qui retournent dans
un état semi-passif
-la carte sélectionnée envoie une réponse ATS (Answer To Select) qui contient
les caractéristiques de la carte
69
Les
Lescartes
cartesààmicro-contrôleur
micro-contrôleur
70
Synoptique interne d’une carte à microcontrôleur
71
Les vraies cartes à puce
72
Chronogramme de la réponse reset
73
Caractère initial de l’ATR
1: convention inverse :
- niveau bas A = « un » logique
- niveau haut Z = « zéro » logique
- ba (bit transmis en premier) = bit 7 de poids fort
- bh (bit transmis en dernier)=bit 0 de poids faible
TS = 0011 1111 (3F, en héxa)
2: convention directe :
- niveau bas A = « 0 » logique
- niveau haut Z = « 1 » logique
- ba (bit transmis en premier) = bit 0 de poids faible
- bh (bit transmis en dernier)=bit 7 de poids fort
TS = 0011 1011 (3B, en héxa)
74
Caractère de format
appelé aussi caractère T0
2ème caractère de l’ATR
composé de :
-Partie Y1 (b7 à b4)
-Partie K (b0 à b3) facultative (n’est pas normalisée)
75
Caractère de format (suite)
Les poids forts de TD1 indique si les caractères supérieurs sont transmis
dans l’ATR, par ex. :
-Si TD1 contient 1010 => TD2 et TB2 sont transmis
76
Caractère TA11
77
Caractère TA11 (suite)
78
Caractère TB11 / TC11
79
Caractère TD11
80
ATR par défaut
TA1 372 1
F D
TB1 50 5
I P
TC1 0
N
TD1 0
protocole
81
Négociation de vitesse de dialogue
Les cartes dialoguent à 9600 bits/s pendant l’ATR (vitesse connue de tout
port série RS232 facilite la réalisation d’espions)
82
Caractère TA22
83
Caractère TA22 (suite)
Si la carte supporte plusieurs protocoles dont T=0, c’est ce protocole qui
doit être utilisé par défaut dans TD1 si la négociation est absente.
84
Étapes de la négociation de protocole
Carte Lecteur
85
PTS
= 3 à 6 octets
- 1er octet : PTSS (PTS Start) = FF
-2ème octet : caractère de format PTS0
-3 octets optionnels : PTS1, PTS2 et PTS3, dernier octet : PCK octet de
contrôle
86
PTS (suite)
Si b0 de PTS2=1 la carte accepte que N=255 (tps de garde est réduit à 1 etu)
Si b1=1 la carte peut utiliser un TG=12 etu entre chaque caractère envoyé
au lecteur
b3 à b7 non utilisés
PCK contient une valeur de manière qu’un ou exclusif des bits allant de
PTSS à PCK soit nul.
87
Réponse au PTS par la carte
rien à PTS0
PTS2 en réponse à PTS2 (si pas de réponse à PTS2, la carte est rejetée)
Conclusion
-Protocole un peu contraignant
-Ignoré sur la majorité des cartes actuelles en partie pour cette raison
88
Les
Lesprotocoles
protocolesTPDU/APDU
TPDU/APDU
89
Protocole TPDU T=0
90
L’ISO 7816-4
Elle définit les messages APDU (Application Protocol Data Units) utilisés
par les cartes à puce pour communiquer avec le lecteur.
91
L’ISO 7816-4 : Le protocole APDU
92
Format des commandes APDU
Commande APDU
Entête obligatoire Corps optionnel
CLA INS P1 P2 Lc Data field Le
•CLA (1 octet): Classe d’instructions --- indique la structure et le format pour
une catégorie de commandes et de réponses APDU
•INS (1 octet): code d’instruction: spécifie l’instruction de la commande
•P1 (1 octet) et P2 (1 octet): paramètres de l’instruction
•Lc (1 octet): nombre d’octets présents dans le champ données de la commande
•Avec Le=0, - Si cde d’écriture => pas de données utiles
- Si cde de lecture => la cde doit retourner 256 octets de données utiles
•Data field (octets dont le nombre est égal à la valeur de Lc): une séquence
d’octets dans le champ données de la commande
93
Format des réponses APDU
Réponse APDU
95
Exemples de cartes
Champ de la Valeurs
commande
APDU
CLA BC = cartes de crédit françaises, cartes vitales françaises,
A0 = cartes SIM (téléphonie)
00 = cartes Monéo (porte-monnaie en France), Mastercard, Visa
INS 20 = vérification du PIN,
B0 = Lecture
B2 = Lecture de record
D0 = Écriture
DC = Écriture de record
A4 = Sélection du répertoire (directory)
C0 = Demander une réponse (get an anwer)
P1, P2 paramètres contenant des adresses à lire
LEN longueur prévue pour la réponse ou bien longueur de
l’argument de l’instruction
ARG contient LEN octets (octets à écrire, PIN à vérifier, etc.)
96
Protocoles TPDU/APDU
97
Protocole APDU (ISO 7816-4)
98
Envoi d’une commande sans données utiles
99
Commande avec réception de données utiles depuis la carte
100
Commande avec invitation à lire des données depuis la carte
101
Commande avec envoi de données utiles vers la carte
102
Commande avec envoi et réception de données utiles
103
Le
Leprotocole
protocoleT=1
T=1(ISO7816-3)
(ISO7816-3)
104
Protocole T=1
Protocole ambitieux
105
Structure d’un bloc
106
L’ISO 7816-5
107
La
Lagestion
gestiondes
desfichiers
fichiersd’une
d’unecarte
carteààpuce
puce
108
Les fichiers
- création/destruction de fichiers
- attribuer un nom à un fichier
- définir des restrictions d’accès en Letc/écrit
- lire/écrire dans un fichier
- le plus contraignant est l’échange en binaire entre le lecteur et la
carte
109
Arborescence des fichiers et répertoires
110
Identification et nommage des fichiers
La méthode la plus utilisée sur les cartes actuelles est la méthode (a)
111
Contraintes pour la méthode (a)
112
Structure des fichiers
113
Fichiers à structure transparente
114
Fichiers à structure linéaire fixe
115
Fichiers à structure linéaire variable
116
Fichiers à structure linéaire cyclique
117
Instructions
Instructionsnormalisées
normaliséeset
etMessages
Messagesd’erreur
d’erreur
118
Instructions normalisées
Si ces commandes sont utilisées par une carte, elles doivent respecter la
norme
119
Commandes
Commandesde
degestion
gestionde
defichiers
fichiers
120
Les commandes de gestion de fichiers
Get/Put Data
121
Commande SELECT
Commande APDU
Entête obligatoire Corps optionnel
CLA INS P1 P2 Lc Data field Le
•CLA: dépend de l’application
•INS: "A4"
•P1 : mode de sélection (sélection par nom, par chemin d’accès, etc.)
•P2: sélection d’un enregistrement dans un fichier
•Lc: peut être absent
•Data field: varie selon le mode de sélection
122
Commande READ BINARY
Commande APDU
Entête obligatoire Corps optionnel
CLA INS P1 P2 Lc Data field Le
•CLA: dépend de l’application
•INS: "B0"
•P1 : Si MSB (b7)=1, les bits b0 à b2 = FID d’un fichier EF. P2 contient l’adresse
de l’octet concerné
Si b7=0, il s’agit du fichier EF déjà sélectionné alors (P1 P2) contiennent le
décalage du premier octet à lire
•Si Le=0, alors lecture des données comprises entre l’octet défini par P1 et la fin
du fichier
123
Commande WRITE BINARY
124
Commande UPDATE BINARY
Commande APDU
Entête obligatoire Corps optionnel
CLA INS P1 P2 Lc Data field Le
•CLA: dépend de l’application
•INS: "D6"
•P1 : Si MSB (b7)=1, les bits b0 à b2 = FID d’un fichier EF. P2 contient l’adresse
de l’octet concerné
Si b7=0, il s’agit du fichier EF déjà sélectionné alors (P1 P2) contiennent le
décalage du premier octet à lire
•Lc: contient le nb d’octets à écrire dans le fichier
•Data field : données à écrire (dont la taille = Lc)
125
Commande ERASE BINARY
126
Commande READ RECORD
Commande APDU
Entête obligatoire Corps optionnel
CLA INS P1 P2 Lc Data field Le
•CLA: dépend de l’application
•INS: "B2"
•P1 = 0, lire l’enregistrement en cours.
Si "01"<=P1<="FF" alors lire la valeur de P2
•P2 contient (b2b1b0)=100 (lire numéro dicté par P1), =101 (lire de P1 jusqu’à la
fin du fichier), =110 (lire de la fin du fichier jusqu’à P1), etc.
127
Commande WRITE RECORD
Commande APDU
Entête obligatoire Corps optionnel
CLA INS P1 P2 Lc Data field Le
•CLA: dépend de l’application
•INS: "D2"
•P1 = 0, écrire dans l’enregistrement en cours.
Si "01"<=P1<="FF" alors lire la valeur de P2
•P2 contient (b2b1b0)=000 (premier enreg.), =001 (dernier enreg.), =010 enreg.
Suivant, 011 (enreg. précédent), numéro d’enreg dans P1, etc.
•Data field : contient les données à écrire
128
Commande UPDATE RECORD
Commande APDU
Entête obligatoire Corps optionnel
CLA INS P1 P2 Lc Data field Le
•CLA: dépend de l’application
•INS: "DC"
•P1 = 0, écrire dans l’enregistrement en cours.
Si "01"<=P1<="FF" alors lire la valeur de P2
•P2 contient (b2b1b0)=000 (premier enreg.), =001 (dernier enreg.), =010 enreg.
Suivant, 011 (enreg. précédent), numéro d’enreg dans P1, etc.
•Data field : contient les données à écrire
129
Commande APPEND RECORD
Commande APDU
Entête obligatoire Corps optionnel
CLA INS P1 P2 Lc Data field Le
•CLA: dépend de l’application
•INS: "E2"
•P1 =0
•P2 : contient le FID court du fichier EF concerné
•Lc: taille de l’enreg à écrire dans un fichier à structure linéaire variable
•Data field : données à écrire
130
Bibliographie
131
Webographie
http://java.sun.com/products/javacard/
http://www.gemalto.com
http://www.oberthur.com
http://www.globalplatform.org
http://www.javacardforum.org
http://www.opencard.org
http://www.linuxnet.com/
http://www.iso.org
http://www.ttfn.net/techno/smartcards/
http://eurekaweb.free.fr/ih1-carte_a_puce.htm
http://membres.lycos.fr/dbon/historique.htm
http://apte.net/info-e/pubs.htm
http://www.eurosmart.com/index.htm
132