Les cartes à puces – TFE de Réseaux de télécommunications

By 13 May 2012

“. . . course aux cartes multi-prestataires (appelées aussi multifonctions, multi-applications, multi-branded, multi-issuer. . .). Quelle que soit la nomenclature, la tendance est de remplacer les cartes dans votre portefeuille par une carte unique sur laquelle coexistent plusieurs applications appartenants à plusieurs institutions. Mais il y a deux contraintes :

– contrainte technique : on est limité à 25 de puce encartée selon le standard ISO-7816. Mais le progrès technique est promettant, on est maintenant à 30 k Octets d’EEPROM. Il y a aussi d’autres solutions : cartes à multi-puces, carte optique à puce (ISO-11693/4), carte à puce avec barres codées bi- dimensionnelles ou carte à puce ayant un certain disque souple encastré . . . ”

UNIVERSITE LIBANAISE Faculté de Génie
UNIVERSITE SAINT-JOSEPH

Faculté d’ingénieur, ESIB
Diplômes d’Etudes Approfondies
Réseaux de télécommunications


Cartes à puces

Sous l’égide de l’agence des universités Francophones

AUPELF-UREF

par CDT. EL JABI HASSAN

Soutenance le 21 Décembre 1998 devant le jury composé de

MM. Samir TOHME Président
Maroun ASMAR Membre
Imad MOUGHARBEL Membre
Amjad HAJJAR Membre
Mahmoud DOUGHAN Membre
Maroun CHAMOUN Membre
Nicolas ROUHANA Membre

Encadré par : M. Ahmed SERHROUCHNI

Directeur de thèse: Professeur TOHME Samir
Département de INF-RES

Résumé :
l’interopérabilite de plate-formes est le sujet de concours entre industriels, chaccun veut imposer sa solution comme standard. le standard ISO a réglé l’interoperabilité physiques, les spécifications EMV, GSM ont réglé l’interoperabilité d’application.

on a introduit les différentes architectures des carte à puces au chapitre 1, on a visité l’initiative PC/Sc au deuxième chapitre mais on a détaillé et explicité pedagogiquement les spécifications EMV au troisième chapitre.

le cinquième chapitre, raconte l’histoire des standards et des spécifications, puis il traite le problème d’interopérabilité d’une maniére académique et pour terminer on donne une methodologie pour développer des applications suivie d’une application exemplaire, traité soigneusement.

vous allez découvrir, en lisant cette thèse, que les émetteurs et les fabriquants ne sont plus les maitres du jeu, ceux sont les Software providers qui vont prendre le relais.

Remerciements
L’auteur voudrait avant tout remercier :
M. Samir TOHME qui m’a proposé ce sujet de DEA, et accueilli dans son groupe de recherche à l’ENST de PARIS.
M. Ahmed SERHROUCHNI qui m’a conseillé, dirigé et orienté dans mon travail.
M. Maroun ASMAR qui nous a offert cette opportunité et qui nous a encadré durant toute l’année.

Lexique :
Authentification : pour s’assurer que la carte appartient à une famille de carte.

Batch card : est fournie avec chaque lot de cartes, il contient la clé « master key »

Carte à puce : une carte, où un ou plusieurs circuits intégrés y sont encastrés, qui sert à faire des traitements ou à mémoriser des données.

Concaténation : deux éléments sont concaténés par l’adjonction des octets du deuxième à la fin du premier. Une liste peut être concaténée par la concaténation la1er paire d’éléments de la liste pour former un nouvel élément, puis on recommence de nouveau jusqu’à ce qu’il n’y a qu’un seul élément dans la liste.

Clé privée : les algorithmes cryptographiques asymétriques sont dotés d’une paire de clés, l’une est gardée secrète, l’autre est publiée. La première est la clé privée, elle sert à déchiffrer le message que les autres ont chiffré avec la clé publique déjà publiée (et c’est seulement celui qui détient la clé privée est capable de déchiffrer un tel message), et il sert aussi à chiffrer des messages (ou leurs hashs) et ça représente une signature que tout le monde peut déchiffrer avec la clé publique pour retrouver le document original (c’est seulement celui qui détient la clé privée est capable de faire un tel document chiffré).

Clé publique : c’est la deuxième clé déjà publiée, elle sert à chiffrer des messages destinés à celui qui a la clé privée, et ça sert à déchiffrer une signature pour qu’on la compare au document original.

Clés : sont utilisées par les algorithmes cryptographiques pour :
– chiffrement/déchiffrement
– calculer des certificats et des signatures
– vérifier les certificats et les signatures
– messagerie sécurisée

on distingue deux types d’algorithmes :
– à clé secrète (DES, 3DES, . . . )
– à clé publique (RSA, DSA, Elliptique, . . . )

clés (types de) :
– clé d’authentification :utilisée par les commandes d’authentification
– clé d’administration : utilisée pour calculer une clé administrative temporaire ou pour un message sécurisé.
– clé de paiement :utilisée par les commandes de payements et pour calculer la clé de certification temporaire.
– clé de log :c’est une clé de paiement qui peut être utilisée pour messagerie sécurisée
– clé de signature : c’est une clé de paiement spécialisée pour le calcule de signature.

Certificat : est utilisée pour valider une transaction de paiement.

Codes secrets : sont utilisés pour protéger :
– accès aux fichiers (read/write/update)
– fonctions financières (read balance/débit/. . . )
– commandes administratives (create file/. . . )

On peut présenter le code secret (8 octets) à la carte sous forme claire ou chiffré, elle le compare au code secret stocké dans EFsc (4 octets seulement, alors votre code fonctionne si vous l’introduisez en majuscule ou en minuscule). Attention : seulement, un seul secret code est créé sous un DF.

Cold Reset : on applique le Reset sur une puce non alimentée, puis, on l’alimente (en appliquant Vcc et CLK) tout en maintenant le Reset, puis on le relâche.

Cryptogramme : est utilisé pour vérifier l’intégrité d’un message.

Fabrication (phase de) : la mémoire de la carte est vide, on y écrit le N° de série de la carte et la référence de l’émetteur.

Fonction : un processus accompli par une ou plusieurs commandes et les actions résultantes, elle est utilisée pour exécuter toute ou une partie de la transaction

Gaufrage (embossing) : caractères élevés en relief de la surface de la carte.

Hash : c’est le résultat de la fonction qui transforme un document en une suite de bit de longueur fixe (quelle que soit la longueur du document original), on suppose qu’on ne peut pas retrouver le document original à partir d’un Hash ni trouver un autre document qui donne ce même Hash.

Identification : après l’authentification, pour vérifier l’identité de la carte (N° de série, identité du détendeur, . . . )

Initialisation (phase d’initialisation) : l’architecture de la carte est bien définie :
– des données sont écrites dans la mémoire pour que la carte soit spécifique à une application
– création des codes secrets, génération des clés.

Intégrité des données : c’est la propriété que les données ne sont pas altérées ou détruites d’une manière illégale

Intégrité (service d’): pour s’assurer que le message n’a subi aucune altération entre la carte et le terminal.

Interface Device : la partie du terminal dans laquelle on introduit la carte, appelée Lecteur

Non répudiation : pour garantir que les transactions réclamées représentent des transactions réelles en ne laissant aucune marge pour répudiation.

Personnalisation (phase de) : on ajoute à la carte des informations concernants le détendeur de la carte : son nom, son N° de souscription, son N° de compte, . . .

Script : une ou une série de commandes transmises par l’émetteur dans le but d’être reçues par la carte et d’être exécutées en série.

Signature digitale : c’est une transformation cryptographique asymétrique de données qui permet à celui qui reçoit les données, d’avoir une preuve de l’origine et de l’intégrité des données. Et elle protège l’envoyeur et le receveur de données des contrefaçons d’un tiers.

Sécurité EMV : le service “sécurité” est assuré par les fonctions suivantes :
– authentification carte/terminal
– messagerie sécurisée pour la transmission des commandes administratives
– générations des certificats de payement et signatures
– utilisation des cryptogrammes pour les commandes de paiement

Terminal : l’équipement utilisé en conjonction avec la carte pour exécuter une transaction. Il comprend l’interface device (IFD) et d’autres composants et interfaces tels qu’un serveur de communications.

Transaction financière : c’est l’acte entre le détendeur de la carte et un marchand ou un acquéreur pour échanger des biens ou services contre paiement.

Warm Reset : c’est le reset qu’on exécute sur une carte en état de marche (alimentée et connectée à l’horloge).

Liste des abreviations 
AAC : Application Authentication Cryptogam.
AAR : Application Authorisation Referral.
AC : Application Cryptogram.
ACK : acknowledgement.
ADF : Application Definition File.
AEF : Application Elementary File.
AFL : Application File Locator.
AID : Application Identifier.
APDU : Application Protocol Data Unit
ARPC : Authorisation Response Cryptogram.
ARQC : Authorisation Request Cryptogram
ATC : Application Transaction Counter.
ATM : Automated Telling Machine.
ATR : Answer to Reset.
BER : Basic Encoding Rule.
C-APDU : Commande APDU.
CDOL : Card Risk Management Data Object List.
CLA : Octet de classe dans une message de commande.
CLK : Clock ou horloge.
C-TPDU : Commande TPDU
CVM : Cardholder Verification Method
DDF : Directory Definition File.
DDOL : Dynamic Data Authentication Data Object List.
DEA : Data Encryption Algorithm.
DES : Data Encryption Standard.
DF : Dedicated File ou fichier dédié.
DIR : Directory ou Répertoire.
ECC : Elliptic Curve Cryptosystems (système à clé publique).
EF : Elementary File ou fichier élémentaire.
E/S : Entrée/Sortie.
etu : Elementary Time Unit.
FCI : File Control Information.
f : la fréquence.
GND : Ground, la terre ou la masse.
IC : Integrated circuit ou circuit intégré.
ICC : Integrated circuit card ou carte à puce.
IFD : Interface Device (voir lexique) ou lecteur.
INS : Octet Instruction dans le message commande.
ISO : International Organisation for Standardisation.
MAC : Message Authentication Code. (transformation cryptographique symétrique)
MF : Master File.
PCMCIA : Personal Computer Memory Card International Association
PDOL : Processing Data Object List.
POS : Point Of Sale.
PSE : Payment System Environment.
PTS : Protocol Type Selection.
R-APDU : Réponse APDU.
RFU : Reserved for Future Use.
RID : Registered Application Provider Identifier.
RSA : Algorithme cryptographiques à clé publique.
RST : Reset.
R-TPDU : Réponse TPDU.
SFI : Short File Identifier.
SW1 : Status word one
SW2 : Status word two.
TAL : Terminal Application Layer.
TC : Transaction Certificate.
TDOL : Transaction certificate Data Object List.
TLV : Tag, Length, Value.
TPDU : Transport Protocol Data Unit.
TTL : Terminal Transport Layer.
TVR : Terminal Verification Result.
Vcc : Supply voltage ou tension d’alimentation.
Vpp : Programming voltage.

 

Les cartes à puces : Chapitre 1

Introduction.

*** Les cartes à puces et nous.

Les cartes à puces ont commencé à envahir la plupart des secteurs de notre vie :

* dans le domaine public : on cite les permis de conduire électroniques et les cartes d’aide sociale (welfare) aux états unis, les cartes de sécurité sociale et d’assurance maladie (78millions cartes émises en Allemagne et bientôt en France), . . .

* Dans le domaine privé :
– télécommunication : les cartes GSM.
– Monétique : les cartes bancaires dont les applications vont du débit, crédit, « purses électroniques », aux programmes de loyauté aux grands magasins.
– Sécurité : les cartes d’accès à un système informatique ou aux bâtiments.
– Péages : TV payant, décodeurs des chaînes satellites.

On prévoit que les cartes à puce vont remplacer les tickets de voyages, ce qui faciliterait les programmes de loyauté aux compagnies aériennes.

Beaucoup d’autre application vont voir le jour, et on ne voit pas de limite à ces applications que celle de notre imagination. Est-ce que Roland MORENO et la société INNOVATRON, qui ont déposé leur brevet de carte à semi-conducteurs en 1974, ont-ils imaginé ces applications de nos jours ?

Aujourd’hui, c’est la course aux cartes multi-prestataires (appelées aussi multifonctions, multi-applications, multi-branded, multi-issuer. . .). Quelle que soit la nomenclature, la tendance est de remplacer les cartes dans votre portefeuille par une carte unique sur laquelle coexistent plusieurs applications appartenants à plusieurs institutions. Mais il y a deux contraintes :

– contrainte technique : on est limité à 25de puce encartée selon le standard ISO-7816. Mais le progrès technique est promettant, on est maintenant à 30 k Octets d’EEPROM. Il y a aussi d’autres solutions : cartes à multi-puces, carte optique à puce (ISO-11693/4), carte à puce avec barres codées bi- dimensionnelles ou carte à puce ayant un certain disque souple encastré.

– contrainte logistique : les conséquences de perte d’une carte contenant trop d’informations sont graves : il faut du temps et des nerfs d’acier pour récupérer le récupérable (carte de crédit, permis de conduire, assurance maladie, . . . ) et on perd l’irrécupérable (points de fidélité Monoprix, points de loyauté FNAC, kilomètres volés avec Air France, unités prépayées à France Telecom, et le pire la monnaie prépayée Mondex).

*** Evolution de l’industrie des cartes.

* 1974 : brevet déposé par Roland MORENO et la société INNOVATRON portant sur un système basé sur l’utilisation de cartes à semi-conducteurs.
* 1976 : CII Honeywell-Bull a pris la licence de brevet INNOVATRON et ont adopté le terme carte à microcalculateur.
* 1979 : première carte composée de deux puces (3870 et 2716). Résultat d’une coopération entre BULL et MOTOROLA.
* 1981 : première carte à microcontrôleur monochip chez BULL (l’ancêtre de la gamme CP8).
* 1982 : projet IPSO du GIE carte à mémoire (créé en 1980 par la DGT et par des établissements financiers), on a testé 3 types de cartes (BULL, Philips-Data systems et Flonic-Schlumberger) et c’est la carte CP8 de BULL qui a été retenue.
* 1983 : France Telecom lance sa télécarte à puce.
* 1984 : BULL et PHILIPS signent un accord permettant à ce dernier d’utiliser le composant BULL/MOTOROLA.
* Aujourd’hui : plus d’un milliard de cartes à puces sont lancées par 23000 émetteurs dans le monde. La demande augmente de 40% chaque année.

Les gens sont plus à l’aise à l’égard de cette nouvelle idée de stocker la monnaie en un format autre que celui de billets et de pièces. C’est vraiment grâce aux efforts des associations des cartes de crédit internationales : ils ont fait des cartes de crédit un outil de confiance et fiable, ils ont convaincu les commerçants à adopter leur système de paiement (sauf en Atlanta 1996, voir plus loin).

Europay, MasterCard et Visa ont formulé des spécifications techniques (EMV) pour cartes et lecteurs pour assurer leur compatibilité.

L’industrie de télécommunications déploie la majorité des cartes à puces pour l’utilisation en GSM, radio mobile et PCS (personal communication service). En effet cette carte sert à l’identification sécurisée et au paiement des appels.

On croit que cette industrie de cellulaire a sauvé celle des cartes à puces. En effet les producteurs des cartes sont en majorité européens et surtout français (Gemplus, Bull, Schlumberger) et leur expansion aux Etats unis et en Australie est freinée par celle des « Personal Electronic Tokens ». (Dallas a vendu des millions de ses i-buttons et java rings en Australie, en Russie et même en Chine. Swatch lance cette année ses montres contact/contactless en extrême orient).

Les concurrents de la carte à puce Les concurrents de la carte à puce Les concurrents de la carte à puce
Les concurrents de la carte à puce.

*** Producteurs et prix.

Aujourd’hui, une carte à puce synchrone càd à mémoire (télécarte par exemple) coûte moins que 3 FF et on prévoit que ça va tomber au-dessous de 2 FF d’ici la fin du siècle. Une carte à puce asynchrone càd à microcontrôleur (carte bleue par exemple) coûte entre 30 et 40 FF et ça doit descendre à moins de 20 FF dans cette période. Tandis qu’une carte à puce multifonctions dotée d’un co-processeur cryptographique coûte plus que 60 FF (c’est un nouveau produit quand même).

Plusieurs facteurs ont contribué à cette réduction de prix :
* L’augmentation du nombre des cartes produites.
* La diminution du prix de la puce (c’est normal, elle a diminué de taille).
* L’avance technologique dans la production.

Les principaux participants à l’industrie des cartes à puces sont :
* les fabriquants de semi-conducteurs : Hitachi, Motorolla, SGT Thomson, Siemens, NEC, . . .
* les fabricants de cartes à puce : BULL, Gemplus-Datacard, Giesecke&Devrient, ODS, Orga, Sclumberger, . . .
* les fabriquants de lecteurs : Dassault, Hypercom, GPT, IBM, Ingenius, OKI, Schlumberger, Toshiba, Thyron, Verifone/HP, . . .
* concepteurs d’application (software) : De la rue, Digicash, FMNT, IBM, Siemens. . .
* concepteurs de Masque et OS : BULL CP8, Gemplus, G&D, ODS, Orga, Racom, Setec OY, SCS, Toppam-Moore, US3, . . .
* les émetteurs de cartes à puces : American Express, Visa, First Union Bank, Gouvernement d’Allemagne, US Military, Shell oil, Bell Canada, Banque de Montréal, . . .

Certaines compagnies s’occupent de tout : Siemens par exemple, fabrique la puce, produit la carte, conçoit l’OS, le masque, l’application et le software de sécurité.

De toute façon, la plupart des fabricants de cartes à puces conçoivent leur propre système d’exploitation COS (Card Operating System par analogie à Disc Operating System DOS), ils le font adapté à leur puce et orienté vers une application bien déterminée.

Par exemple, la carte BULL CP8 la plus répandue est sans conteste la M4, dont la version B0 n’est autre que la carte bancaire française à puce, mais une nouvelle génération commence déjà à prendre le relais sous la forme du nouveau masque B0 (B0est propriété de la communauté bancaire). Il est facile de distinguer les cartes B0 des cartes B0par le fait que ces dernières portent normalement une puce à position ISO (dite « centrée ») et ne possédant que 6 contacts au lieu de 8.

Une banque peut acheter la carte chez n’importe quel producteur, en lui demandant de le masquer avec B0.

Notons que s’il y a quelques dizaines de producteurs de cartes à puces, il y a une centaine de sociétés qui conçoivent des masques.

*** Commerce électronique :

Le commerce électronique est une transaction monétaire électronique sans papier (pas de signatures, pas de chèques, pas de reçu, pas de facture rien de cela et même, il n’est pas obligatoire que le marchand et le client se rencontrent.

En effet, dans une telle transaction, la monnaie électronique est transférée d’une manière sécurisée sur les lignes de communications, et par conséquence les comptes sont ajustés automatiquement.

La carte à puces est la clé électronique qui va ouvrir un monde de services, en effet la carte peut assurer les services suivants :
* l’identification du client
* la sécurisation de la liaison de communication
* l’authentification de la formalité de paiement
* l’intégrité des informations traversants le réseau
* la non répudiation

Maintenant, avec VISA Cash, MasterCard Cash, Proton, . . . la carte stocke des valeurs dans sa mémoire (stored-value card system). Alors, la carte assure un nouveau service qui est le porte-monnaie électronique (appelée aussi : e-cash ou electronic purse).

  1. Architecture de la carte à puce: micro contrôleur et mémoire
  2. Les spécifications Personal Computer/Smart Card PC/SC
  3. Le Service Provider SP – Spécifications PC/Smart Card
  4. Spécifications Europay, Mastercard et Visa EMV et applications
  5. Application ICC pour système de payement – Spécifications
  6. Fonctions utilisées pour le traitement de la transaction EMV
  7. Méthodologie d’applications – Cartes à puces

Table des matières :
LES CARTES A PUCES
Introduction.
Les cartes à puces et nous.
Evolution de l’industrie des cartes.
Producteurs et prix.
Commerce électronique
Architecture de la carte
Carte à micro contrôleur
Carte à mémoire
LES SPECIFICATIONS PC/SC
Introduction.
Problématique
Les objectifs.
Les spécifications PC/SC.
Architecture du système
La carte à puce (ICC)
Le terminal
Le lecteur (IFD ou ICC reader device)
L’IFD handler
ICC Resource Manager
Le SP (service Provider)
Overview fonctionnel
Considérations d’implémentation
ICCSP
CSP (Cryptographic Service Provider)
Uses Interfaces Elements (UI)
Modèle
Application
Sécurité et liberté personnelle (privacy)
LES SPECIFICATIONS EMV ET APPLICATIONS
Introduction
Historique.
Opérations supportées.
Services et fonctionnalité.
Les spécifications EMV ’96.
Part 1 – caractéristiques électromécaniques, interface logique, protocoles.
Interface électromécanique
Session de carte
Transportation physique des caractères.
Answer to reset
Protocoles de transmissions
Part II- Données et commandes
Données et fichiers.
Commandes et réponses.
Part III- Sélection d’application.
Part IV- Aspects de sécurité.
Authentification statique
Authentification dynamique
Messagerie sécurisée
Annexes.
Mécanismes de sécurité
Exemple d’échanges en mode T = 0
Spécifications d’une application ICC pour système de payement
Généralité
Les fichiers de la carte à puces
Les données codées qui sont accessibles par la commande Read record
Les données codées qui sont accessibles par la commande Get data
Les données accessible par la commande Get processing option
Flux de transactions
Les fonctions utilisées pour le traitement de la transaction
La fonction « Initial application processing »
La fonction « Read application data »
La fonction « Off-line data authentication »
La fonction « Processing restriction »
La fonction « Cardholder verification »
La fonction « Terminal risk management »
La fonction « Terminal action analysis »
La fonction « Card action analysis »
La fonction « Online processing »
Issuer -to- card script processing
La fonction « Completion »
Codage de la commande Generate AC
Generate AC (1ère émission).
Generate AC (2ème émission).
Les données manquants ou erronées dans la carte
METHODOLOGIE D’APPLICATIONS
Standards et spécifications.
Définitions
Interopérabilité.
Comparaison entre MultOS et Java Card
Solution Microsoft.
Méthodologie
Application.
Carte logistique pour l’armée
Objectif
Conception
Recommandations
Décisions
structure des fichiers
Structure des données
Les registres EMV
L’application
Test