Les normes relatives aux cartes à puce : Que signifient-elles toutes ?
Compte tenu du nombre important de normes relatives aux cartes à puce, il est important de comprendre leur signification et leur pertinence. Dans cet article, nous donnons un aperçu de plusieurs normes clés et du rôle qu’elles jouent dans l’écosystème de la carte à puce.
Chaque norme abordée dans cet article définit un aspect clé du comportement ou de la fonctionnalité de la carte à puce. Ces normes de base sont au cœur de la plupart des principales cartes à puce sur le marché aujourd’hui.
Les normes discutées dans cet article sont :
ISO 7816
L’une des normes les plus importantes pour les cartes à puce, la norme ISO 7816 est une norme de base qui sous-tend de nombreuses cartes à puce disponibles aujourd’hui. De nombreuses autres technologies de cartes à puce renvoient à des parties de la norme ISO 7816 pour certains aspects de leur fonctionnalité.
La norme ISO 7816 est composée de 15 parties, chacune définissant un aspect différent de la capacité au niveau de la carte. Nous ne décrirons pas ici les 15 parties mais deux aspects cruciaux définis par la norme sont (1) l’interface électrique avec la carte via des contacts et (2) le protocole de communication entre un lecteur de carte à puce (appelé dispositif d’interface dans la norme) et une carte à puce.
La norme ISO 7816 a été écrite à l’origine pour les cartes dont les contacts électriques sont exposés à la surface de la carte ("cartes à contact"). La norme décrit les signaux et les protocoles de transmission à l’interface électrique pour les cartes à contact. Ces informations sont utilisées par les fabricants de matériel qui fabriquent des lecteurs de cartes et qui doivent savoir comment communiquer avec une carte au niveau d’entrée/sortie le plus bas. Les cartes à puce sans contact sont définies par une norme distincte, la norme ISO 14443, dont il est question ci-dessous.
Le protocole de communication défini par la norme ISO 7816 consiste en un ensemble de commandes qui peuvent être utilisées pour contrôler et gérer une carte à puce, ainsi que la structure des charges utiles de commande/réponse échangées entre un lecteur de carte à puce et une carte à puce, l’unité de données du protocole d’application (APDU).
Les APDU se présentent sous deux formes : les APDU de commande et les APDU de réponse. Les APDU de commande sont envoyés d’un lecteur de carte à une carte et ils contiennent le code d’instruction, les paramètres et les données. Les APDU de réponse sont envoyés d’une carte vers le lecteur de carte et contiennent les données de réponse et le code de statut.
ISO 14443
La norme ISO 14443 définit le fonctionnement des cartes à puce sans contact, ou cartes de proximité, c’est-à-dire des cartes dans lesquelles est intégrée une antenne de radiofréquence (RF). La norme décrit le protocole de communication sans fil utilisé au niveau de la couche de liaison entre une carte et un lecteur de carte qui fonctionne à 13,56 MHz (RFID HF).
ISO 14443 les cartes de proximité sont alimentées par induction électromagnétique lorsque la carte est amenée dans le champ RF généré par un lecteur de carte. Les cartes conformes ont une portée de fonctionnement allant jusqu’à 10 cm, mais celle-ci est limitée par la taille de l’antenne de la carte et la puissance du signal du lecteur de carte ou du terminal, de sorte qu’en pratique, la portée de fonctionnement est souvent inférieure à 1 cm.
Il est important de noter que la norme ISO 14443 ne définit pas le protocole de communication de niveau supérieur (le jeu de commandes) utilisé par les applications. De nombreuses cartes conformes à la norme ISO 14443 utilisent le jeu de commandes défini dans la norme ISO 7816-4, mais certaines, comme le MiFARE DESFire, utilisent leur propre jeu de commandes.
NFC
Le NFC, qui signifie Near Field Communication, est un ensemble de protocoles de communication sans fil à courte distance permettant à deux appareils de communiquer entre eux et d’échanger des données. Le NFC intègre plusieurs normes, dont la norme ISO 14443 (voir ci-dessus).
Le NFC définit deux modes de communication, actif et passif. En mode passif, un dispositif alimenté comme un lecteur de carte à puce génère un champ RF qui alimente la cible, une carte à puce par exemple. Le mode actif permet à deux appareils NFC de communiquer entre eux.
Le NFC définit trois modes de fonctionnement comme suit :
- Reader/Writer - Dans ce mode, le dispositif NFC peut agir comme un dispositif d’interface matériel traditionnel qui peut lire et écrire sur des cartes à puce/balises sans contact (ISO 14443).
- Emulation de carte - Dans ce mode, un appareil compatible NFC, tel qu’un téléphone intelligent, peut agir comme une carte à puce ou un tag, et devenir la cible d’un autre appareil compatible NFC, tel qu’un terminal de paiement par carte. La technologie de paiement mobile comme Apple Pay fonctionne avec le téléphone intelligent fonctionnant dans ce mode.
- Peer-to-Peer - En mode peer-to-peer, deux appareils NFC peuvent participer à une communication bidirectionnelle pour échanger des données de manière personnalisée.
PC/SC
PC/SC est une API multiplateforme de facto pour l’intégration des cartes à puce dans les applications de bureau. Elle a été définie à l’origine pour Windows par Microsoft à la fin des années 1990 et appelée API WinSCard. Elle a été portée sur Linux et Mac par le projet PCSC Lite.
L’API PC/SC permet à une application de découvrir les lecteurs de cartes à puce attachés à l’ordinateur hôte, puis de se connecter et de communiquer avec une carte à puce qui est présente dans un lecteur. L'API ne distingue pas la manière dont la carte est présente dans le lecteur, de sorte que la carte peut être une carte à contact traditionnelle insérée dans un lecteur ou une carte sans contact présentée à un lecteur de carte sans contact.
ISO 7810
Cette norme définit les caractéristiques physiques des cartes d’identification, notamment leur taille, leur résistance à la flexion et leur durabilité
Les dimensions importantes définies par cette norme comprennent :
- ID-1 - Une taille de 85,60 × 53,98 mm. Cette norme est utilisée pour la plupart des cartes à puce, y compris les cartes bancaires (cartes de crédit, cartes de débit, etc.) et les cartes de voyage. Également utilisée pour les permis de conduire dans de nombreux pays.
- ID-000 - Taille de 25 mm × 15 mm avec un coin coupé. Cette taille est utilisée pour les cartes SIM dans les téléphones mobiles.
Carte Java
Java Card est une technologie pour les cartes à puce qui permet d’écrire des applications sur la carte en Java. Les cartes à puce Java Card (Java Cards) fonctionnent dans un environnement Java minimal et les applications sur carte sont écrites sous forme d’applets qui s’exécutent dessus. Les cartes Java sont couramment utilisées pour les applications d’identification électronique (par exemple, PKI, cartes d’identité), les cartes de paiement (cartes de crédit/débit) et les cartes SIM pour les téléphones mobiles.
Un applet Java Card gère généralement un ensemble de commandes personnalisées et peut, en option, gérer n’importe laquelle des commandes définies dans la norme ISO 7816-4.
Java Card fournit un environnement sécurisé pour le stockage d’informations sensibles. Les applets sont isolés les uns des autres ainsi que du système d’exploitation et du matériel de la carte sous-jacente. Les applets Java Card accèdent aux fonctions cryptographiques d’une carte via la bibliothèque et le runtime Java Card.
GlobalPlatform
GlobalPlatform est une norme permettant de gérer en toute sécurité le contenu d’une carte à puce, par exemple l’installation et le retrait d’applications sur la carte. La gestion s’effectue au moyen de protocoles cryptographiques qui authentifient et sécurisent le processus.