Cours carte à puce (annexes)

Historique, concepts, sécurité des cartes, TP
© Pascal Chour, 1989 - 2017
Mise à jour, avril 2017, 10ème édition indice 4
Le logiciel PCCAM permet de réaliser les TP décrits dans ce cours

AVERTISSEMENT

Le présent cours est destiné à des fins pédagogiques. Ses lecteurs s'engagent à ne pas utiliser les informations qu'il contient à des fins illicites.

Ce cours relève de la seule responsabilité personnelle de son auteur et ne peut engager son employeur ou toute institution de formation, qu'elle soit privée ou publique, qui l'emploie.


ANNEXE, ANCIENNES CARTES

Comme indiqué en introduction, la désignation de ce que l'on appelle aujourd'hui "élément sécurisé" ou secure element a mis un certain temps à se stabiliser. Dans les premiers temps, on parlait de "carte à mémoire". Dans mon cours de la fin des années 1980, j'avais écrit quelques lignes visant à montrer la différence entre une carte à mémoire de l'époque et une carte à puce. J'ai conservé (légèrement réactualisé) la partie qui traitait des cartes à piste, cartes laser et cartes à mémoire simple. La suite présente des cartes à puce plus classiques.

Carte à mémoire : la carte à piste magnétique

Depuis la généralisation de la carte bancaire (il s'agit d'un instrument de paiement permettant l'accès à un service de paiement) telle que les cartes CB ou VISA ou Mastercard (il s'agit de marques) tout le monde connaît la carte à piste magnétique (il s'agit d'une technologie). Ce type de carte fait partie de la famille des cartes à mémoire. La piste magnétique contient un certain nombre d'informations liées à l'application (N° ISO de la carte (ou PAN pour Primary Account Number), code porteur (ou P1N pour Personnal Identification Number), etc. pour la carte bancaire). Ces informations peuvent éventuellement être chiffrées. La capacité de mémorisation est de l'ordre d'une centaine d'octets. La piste magnétique est fonctionnellement tout à fait comparable à celle que l'on peut trouver dans le domaine audio-vidéo (à l'époque des bandes magnétiques) à savoir qu'il est possible de lire mais aussi d'effacer et d'écrire des données au cours de son utilisation.

Ce type de carte ne comporte aucune intelligence locale. Sa seule particularité est de mémoriser une information qui peut être facilement lue et modifiée par un lecteur.

Certaines applications de cartes à piste prévoient le réencodage de la piste pour mémoriser une information variable, par exemple, un solde. Certes, tout cela n'est pas très sécurisé. Mais admettons et prenons le cas du solde d'une carte téléphonique... Comment l'utilisateur peut-il connaitre la valeur de son solde sans utiliser un lecteur ? La réponse ci-dessous avec une carte japonaise de NTT. Un petit trou sur une échelle percé par le publiphone permet à l'utilisateur de connaitre approximativement le niveau d'utilisation de sa carte.

img  img

Carte à mémoire : La carte laser

La carte laser est un autre type de carte à mémoire qui offre, par rapport à la précédente, une capacité de mémorisation bien supérieure. Dès le milieu des années 1980, sa capacité mémoire était de l'ordre de 2 à 6 Mo. Ces cartes étaient de types WORM (Write Once, Read Multiple, écriture irréversible, lecture multiple). On peut donc inscrire toutes sortes d'informations durant la vie de la carte. Une fois inscrites, ces informations ne peuvent être effacées. Par contre, elles peuvent être modifiées par surcharge. Leur grande capacité de mémorisation les destine surtout à des applications du type "fichier portable". En 2012, force est de constater que ces cartes n'ont jamais eu le succès escompté. De plus, l'arrivée des token USB proposant des capacités de mémorisation plus importante a probablement définitivement enterré cette invention. Les deux exemples qui suivent datent du milieu des années 1980. Le troisième exemple date de 2008.

imgimg
Carte Laser Drexler, 2Mo

imgimg
Carte Laser Canon, 2Mo

imgimg
Carte Laser Drexler

Ce type de carte ne comporte aucune intelligence locale. Sa seule particularité est de mémoriser une information qui peut être inscrite ou surchargée. La taille et le coût des lecteurs a probablement été un des freins au développement de cette technologie

La carte à mémoire électronique

Les possibilités d'intégration des composants électroniques ont permis de réaliser des cartes à mémoire électronique au format d'une carte de crédit. Elles peuvent être à lecture seule (l'information est inscrite durant la fabrication dans une mémoire morte), à lecture multiple et écriture simple, ou à lecture multiple et écriture multiple. Leur domaine d'utilisation rejoint celui de la carte Laser mais offre l'avantage de présenter une interface plus simple pour être lue ou écrite.

Au facteur de forme près, l'aboutissement est la clé USB (token USB) disposant d'une capacité de mémorisation toujours plus importantes et des moyens de communication adaptés à ces capacités

On aurait pu citer d'autres technologies (cartes holographiques, cartes Vigan, cartes simplement embossées, cartes perforées, etc.). Toutes ont en commun de n'être "que" des cartes à mémoire pouvant être lues sans aucun contrôle et donc facilement dupliquées. Cette caractéristique présente de graves inconvénients dans certains domaines d'applications.

Ce type de support a connu un grand succès dans de nombreux domaines (monétique, contrôle d'accès, etc.) mais les faiblesses du système ont été rapidement comprise et la fraude s'est développée. Pour la contenir, on a fait appel à la micro-électronique pour réaliser des supports d'identification et de paiement plus sûrs. Ceci a été rendu possible grâce aux progrès réalisés dans le domaine de l'intégration des composants électroniques, en particulier dans le domaine des mémoires inscriptibles électriquement (EPROM : Erasable, Programmable and Read Only Memory) et des micro-processeurs. Un premier niveau de protection a été introduit avec la création des cartes en logique câblée.

La carte F256 / GPM 256

img

La carte à mémoire F256 est un support d'accès et d'identification transportable au format d'une carte de crédit. Elle est fabriquée par Schlumberger (référence F256) et Gemplus (référence GPM256) Elle est dotée d'un circuit intégré monolithique permettant :

La carte F256 est plus spécialement dédiée pour des applications de prépaiements et/ou comptage. L'utilisation le plus répandue est la Télécarte de France-Télécom.

Caractéristiques générales

img

La carte F256 est un monocomposant contenant principalement :

Organisation de la mémoire

La mémoire est structurée en 8 blocs de 32 bits. Elle est divisée en deux zones :

Lorsqu'elle est vierge, tous les bits de la mémoire sont à l'état 0. L'opération d'écriture les fait passer à l'état 1 de manière irréversible.

Logique d'accès et de contrôle

La logique d'accès et de contrôle est une logique de type séquentielle (carte en logique câblée) qui assure les fonctions suivantes :

 

Elle intègre également la logique de lecture et de claquage du fusible.

La figure ci-après représente un synoptique du composant. DECOD est le décodeur de commande. COMPTEUR est le compteur d'adresse, MÉMOIRE est la mémoire. On n'a pas représenté les lignes d'alimentations ni l'horloge.

img

MÉMOIRE :

L signal de lecture

E signal d'écriture

A adresse

COMPTEUR:

I incrémentation

R remise à zéro

A et B sont les entrées de commandes,

H est l'entrée horloge,

S est la sortie de la mémoire.

Principe de fonctionnement

Le fonctionnement de la carte est assuré par des ordres élémentaires qui sont transmis par deux signaux d'entrées A et B. Les fonctions réalisées sont :

A B Fonction
0 0 Remise à zéro du compteur d'adresse
0 1 Incrémentation du compteur d'adresse
1 0 Non utilisé
1 1 Ecriture du mot mémoire adressé (50ms typique)

La lecture de la zone protégée est toujours possible. L'écriture n'est possible que lorsque le fusible est intact. La lecture et l'écriture de la zone de transaction est toujours possible.

Sécurité

La sécurité de la carte F256 peut être assurée au niveau logique comme au niveau physique.

Sécurité physique

La sécurité physique tient dans le fusible en polysilicium implanté sur le composant électronique.

Si le fusible n'est pas grillé, il est possible de lire et d'écrire dans la zone protégée. On peut alors y inscrire une valeur d'authentification.

Lorsque le fusible est grillé, l'écriture dans cette zone devient impossible.

L'opération de claquage de ce fusible est effectué par le constructeur de la carte après personnalisation (initialisation de la zone protégée). La sécurité de ce type de carte dépend donc du constructeur et non pas de l'utilisateur.

Les zones protégées et non protégées sont entrelacées ce qui interdit tout effacement sélectif de la mémoire.

Sécurité logique

La sécurité logique est assurée par l'utilisation des informations indélébile stockées dans la zone protégée. Cette zone contient :

Personnalisation

La personnalisation de cette carte est réalisée lors du processus de fabrication.

Conditions de fonctionnement

La carte F256 comporte 8 contacts mécaniques permettant la connexion à un lecteur-encodeur de carte à mémoire. La position des contacts est conforme à la norme ISO 7816-2. Les contacts sont référencés C1 à C8.

img

Vpp=21 volts (I <= 15 mA) durant la programmation ou Vcc au repos

Vcc=5 volts 12 mA max.

BIBLIOGRAPHIE

Ce chapitre est tiré du manuel de référence de la carte F256 de Schlumberger.

La carte MZ9K

img img

La carte MZ9 est une carte monocomposant conçue par Schlumberger qui contient principalement :

Découpage de la mémoire

La mémoire est structurée en 288 blocs de 32 bits. Elle est divisée en 7 zones ayant chacune ses propres particularités fonctionnelles. Les conditions de lecture et d'écriture sont identiques pour chaque bloc d'une même zone. La mémoire vierge à tous ses bits à 0. L'opération d'écriture consiste à écrire de manière irréversible un 1 dans une cellule.

Zone fabricant

Sa taille est de 3 blocs soit 96 bits. Elle est destinée à l'identification du circuit, du client et de son application. Par ailleurs, elle contient des informations systèmes nécessaires à l'interfaçage avec un lecteur encodeur. Elle peut également contenir un numéro de série rendant ainsi chaque carte unique. L'accès à cette zone est sécurisé par un fusible en polysilicium (cf carte F256) qui une fois grillé interdit toute écriture.

Zone application

Sa taille est de 13 blocs. Elle est destinée à enregistrer des données publiques d'identification du porteur par l'émetteur de la carte (Nom, adresse, numéro d'abonné du porteur par exemple).

zone "code émetteur"

Sa taille est de 2 blocs. Elle permet d'enregistrer un code ou une clé de 64 bits qui autorisera la lecture ou l'écriture de certaines zones de la mémoire. Une fois le code écrit, il est impossible de relire cette zone.

Zone "code porteur 1"

Sa taille est de 1 bloc. Elle permet d'enregistrer un code porteur sur 32 bits. Ce code autorisera l'accès en lecture ou en écriture de la zone non publique de la zone de transaction. Une fois le code écrit, il est impossible de relire cette zone.

Zone "code porteur 2"

Sa taille est de 1 bloc. Elle est disponible pour permettre une modification du code porteur 1. Ce nouveau code ne pourra être écrit que sous contrôle du code porteur 1 et du code émetteur.

Zone de ratification (ou zone d'état)

Sa taille est de 48 ou 16 blocs. Elle permet de mémoriser une présentation bonne ou mauvaise du code porteur. Chaque présentation  est mémorisée par un doublet qui, selon la validité du code présenté, vaut 01 ou 10 ce qui autorise au maximum, 768 ou 256 présentations de codes. Trois présentations de codes faux successifs invalident la carte. Celle-ci ne pourra être débloquée que sur présentation du code émetteur.

Zone de transaction

Sa taille est de 220 ou 252 blocs (selon la taille de la zone de ratification). L'accès à cette zone n'est possible que sur présentation du code porteur ou code émetteur.

Logique d'accès

La logique d'accès et de contrôle réalise les principales fonctions suivantes :

Elle intègre également la logique de lecture et de claquage du fusible. Un réseau logique programmable définit les règles d'accès aux différentes zones. Ce réseau peut être reprogrammé pour toute application utilisant un nombre suffisant de cartes.

Principe de fonctionnement

Le fonctionnement de la carte MZ9 est assuré par des ordres élémentaires qui sont transmis par deux signaux d'entrées et qui réalisent :

Lors de la lecture, la sortie (cf carte F256) prend l'état de la cellule adressée par le compteur d'adresse sauf si cette cellule se trouve dans une zone protégée en lecture (zone des codes secrets) ou dans une zone protégée par un code secret et que le code n'a pas été présenté. Dans ce cas, la sortie conserve l'état 0.

Sécurité

La sécurité physique suit le même principe que pour la carte F256.

Verrouillage d'un bloc

Chaque bloc de la carte peut être verrouillé en positionnant à 1 le premier bit de ce bloc. Une fois positionner, ce bit interdit toute réécriture des bits du bloc. Il permet également d'activer les protections en lecture des zones secrètes.

Accès sous contrôle d'un code

L'accès aux différentes zones de la mémoire est régie par les règles d'accès suivantes :

Légende :

ZONE LECTURE ECRITURE
  V=0 V=1 V=0 V=1
Zone fabricant Libre Libre Interdit Interdit
Zone application Libre Libre Code E Interdit
Zone "code émetteur" Libre Interdit Libre Interdit
Zone "code porteur 1" Libre Interdit Code E Interdit
Zone "code porteur 2" Libre Interdit Code E Interdit
Zone de ratification Libre Libre Voir mode opératoire
Zone de transaction Libre Code E-P Libre Interdit

Pour les accès protégés, seul la présentation du code secret émetteur ou porteur correct autorise physiquement l'accès aux informations. La comparaison du code présenté et du code secret s'effectue dans la carte. En aucun cas, un code ne peut être lu par l'extérieur.

Réhabilitation (déblocage)

La carte se considère comme bloquée lorsqu'elle rencontre une configuration 01 01 01 dans sa mémoire d'état (avec tous les bits qui suivent à 0). La carte peut être débloquée par présentation du code émetteur. La procédure à suivre est la suivante :

fonctionnement détaillé

Le fonctionnement de la carte MZ9 est assuré par des ordres élémentaires comparables à ceux de la F256 (voir chapitre "carte F256"). Le tableau qui suit donne le codage des ordres.

Le front montant de l'horloge ST mémorise de façon interne l'état des entrées A et B. La durée de l'état haut donne le temps de programmation de la cellule mémoire adressée si la logique interne l'autorise. Les différences entre les ordres E1 et W1 portent sur la durée de l'état haut de ST et la tension Vpp = Vcc pour E1.

A B FONCTION
0 0 Remise à 0 du compteur (CAC)
0 1 Incrément du compteur (UP)
1 0 Entrée d'un 0 (E0)
1 1 Entrée d'un 1 (E1)
1 1 Ecriture du bit en mémoire adressée (W1)

Présentation du code émetteur

La présentation d'un code se fait en positionnant le compteur d'adresse sur le 1er bit du code. Il faut ensuite présenter bit à bit le code émetteur à la carte (suite de E1 ou E0 et UP). La présentation est validée par la commande UP lorsque tous les bits ont été présentés.

Présentation du code porteur

Même principe que pour le code émetteur. Ensuite, il faut rechercher dans la zone d'état le premier doublet libre (00). Il faut se positionner sur le bit de rang impair puis effectuer un ordre d'écriture (WI) de ce bit avec Vpp à la tension nominale de programmation. Cette commande doit être suivie d'un ordre E0 qui valide à la fois la présentation du code et l'écriture du bit dans la zone d'état. Si le code est correct, la carte positionnera le bit de rang impair. S'il est incorrect, la carte positionnera le bit de rang pair.

Lecture

La sortie S prend l'état de la cellule mémoire adressée si les règles d'accès sont respectées. S est positionné lorsque l'horloge repasse à l'état bas. Si les règles d'accès ne sont pas respectées, la sortie S reste à l'état 0.

Ecriture

L'écriture consiste à positionner à 1 un bit à 0. Elle se fait par l'ordre WI.

Adressage

L'adressage se fait par l'ordre UP. Le lecteur doit conserver en mémoire une image de la valeur du compteur d'adresse mémoire de la carte. Lorsque l'adresse à atteindre est inférieure à l'adresse courante, il faut utiliser l'ordre CAC pour remettre le compteur d'adresse de la carte à 0 puis l'incrémenter à l'aide de l'ordre UP jusqu'à obtenir l'adresse voulue. Il est conseillé de faire systématiquement un UP après la première mise sous-tension de la carte.

BIBLIOGRAPHIE

Ce chapitre est tiré du manuel de référence de la carte MZ9K de Schlumberger.

La carte GPM416 de Gemplus

img

La carte GPM 416 de Gemplus fait partie de la famille des cartes de faible coût en logique câblée. Elle dispose de 416 bits de mémoire E2PROM.

Ses principales fonctionnalités sont les suivantes :

Description de la mémoire

img

La mémoire est organisée en mots de 16 bits répartis dans différentes zones :

La zone de fabrication

Cette zone de 16 bits est programmée par le constructeur durant la phase de fabrication. Elle contient un numéro d'identification de l'émetteur de la carte. Ce numéro ne peut être changé durant la vie de la carte.

La zone "émetteur"

Cette zone de 48 bits est réservée à l'émetteur de la carte. Elle doit être inscrite avant la fin de la phase de personnalisation.

La zone clé de transport/code porteur

Cette zone de 16 bits a deux fonctions selon que la carte es ou n'est pas personnalisée.

Compteur d'erreurs

Ce compteur de 4 bits enregistre les mauvaises présentations consécutives de clés. La carte se bloque après 4 mauvais codes présentés consécutivement.

Zone 1

Cette zone de 12 bits est en accès libre en lecture et en écriture. Elle est automatiquement effacée par la carte après la présentation d'une bonne clé.

Zone 2

Cette zone de 16 bits est protégée en écriture et en effacement par le code porteur.

Clé émetteur

Cette zone de 32 bits contient la clé de l'émetteur.

Mémoire de transaction

La mémoire de transaction fait 208 bits. Son accès est conditionné par la valeur de ses deux premiers bits notés RDEN et PREN et par la présentation de la clé porteur. Pour plus de précision, voir le tableau récapitulatif.

Compteur d'effacement

Ce compteur de 64 bits mémorise toute les demandes d'effacement effecutuées dans la mémoire de transaction.

Le descriptif ci-dessous résume les conditions d'accès aux différentes zones :

En phase de personnalisation LECTURE EFFACEMENT ECRITURE
Zone de fabrication OUI NON NON
Zone émetteur OUI OUI si UK=1 OUI si UK=1
Clé transport/porteur OUI si UK=1 OUI si UK=1 OUI si UK=1
Compteur d'erreur OUI OUI si UK=1 OUI
Zone 2 OUI OUI si UK=1 OUI si UK=1
Zone de transaction OUI si RDEN=1 ou si UK=1 OUI si UK=1 OUI si UK=1
Clé émetteur OUI si UK=1 OUI si UK=1 OUI si UK=1
Compteur d'effacement OUI OUI si UK=1 OUI

Durant la personnalisation

 

En phase d'utilisation  LECTURE EFFACEMENT ECRITURE
Zone de fabrication OUI NON NON
Zone émetteur OUI NON OUI si UK=1
Clé transport/porteur OUI si UK=1 OUI si UK=1 OUI si UK=1
Compteur d'erreur OUI OUI si UK=1 OUI
Zone 2 OUI OUI si UK=1 OUI si UK=1
Zone de transaction OUI si RDEN=1 ou si UK=1 OUI si UK=1 OUI si UK=1
Clé émetteur NON NON NON
Compteur d'effacement OUI NON OUI

Signification de UK, IK et EC

Après une présentation d'un code porteur, l'utilisateur doit lire le compteur d'erreur correspondant.

Le même mécanisme est utilisé pour la présentation de la clé émetteur.

Par convention, UK (ou IK) vaut 1 si la valeur du compteur vaut 1111.

EC représente la valeur du compteur d'effacement. Par convention, EC vaut 1 si le compteur est différent de zéro.

Changement du code porteur

La seule restriction imposée au changement d'un code porteur est d'avoir préalablement présenté le bon code porteur courant.

Ordres

Le principe général est le même que celui décrit pour les cartes F256 et MZ9 avec en plus, la possibilité d'effacer certaines zones mémoires par mot de 16 bits. La zone de transaction ne peut être effacée que totalement.

Le composant ST1301

La carte GPM416 est bâtie sur le composant SGS-THOMSON ST1301. En fait, il existe plusieurs version de ce composant :

Il semble que dans la pratique, un grand nombre d'applications ont émis des carte GPM416 non personnalisées avec une utilisation des zones ne correspondant pas forcément avec celle préconisée par le manuel utilisateur de la carte.

BIBLIOGRAPHIE

Manuel de référence de la carte GPM416, Gemplus.

Documentation technique du ST1301 et ST1301A de SGS-THOMSON.

La carte M4 de Bull-CP8

La carte M4 de BULL a été la première carte à micro-processeur largement diffusée. Elle a été utilisée en France dans les applications carte bancaire du GIE-CB et carte Pastel de France-Télécom. A partir de 1993, elle a été progressivement remplacée par la carte M4B0' puis B4-B0' dans l'application bancaire.

La carte M4 a profondément marqué l'histoire de la carte à puce dont elle a fixé les grandes règles sur le plan fonctionnel et sécuritaire. Même si elle est ancienne, elle reste intéressante à étudier car elle est suffisamment simple pour qu'il soit possible d'entrer dans le détail de ses fonctionnalités et le principe des mécanismes de sécurité mis en oeuvre ont été repris sur de nombreuses autres cartes.

Phases de la vie de la carte

On distingue plusieurs phases dans la vie d'une carte. Pour la carte M4, la phase dans laquelle elle se trouve est matérialisée par des verrous logiques situés dans la mémoire de transaction. A chaque fois qu'une phase se termine, le verrou correspondant est positionné. Au départ, la carte n'existe pas en tant que tel. On a d'un coté un composant, la puce de la carte, et un morceau de plastique dans lequel il se logera. Lorsque le composant arrive chez l'encarteur, la mémoire de transaction est vierge de toute information et tous les bits sont à la même valeur (à 1 pour la carte M4). La première opération à réaliser est la prépersonnalisation. C'est la première phase de la vie de la carte. Pour une carte M4, la prépersonnalisation va consister à inscrire certaines informations dans la mémoire de transaction :

Lorsque la phase de prépersonnalisation est achevée, l'encarteur positionne le verrou correspondant. La carte est dite alors prépersonnalisée. Le fait d'avoir positionné le verrou rend impossible la lecture de la clé de fabrication.

Comment est calculée la clé de fabrication ?

La clé de fabrication est calculée par une carte appelée "carte lot". Cette carte a généralement les mêmes fonctionnalités que la carte en cours de prépersonnalisation mais ce n'est pas une obligation. On utilise sa fonction de calcul pour créer la clé de fabrication. Les paramètres de la fonction sont, le numéro de série de la carte à prépersonnaliser et le numéro de lot de la carte lot. Pour la carte M4, la fonction de calcul utilisée garantit que si un des paramètres du calcul change, le résultat du calcul sera modifié. Ainsi, toute les cartes prépersonnalisées avec une carte lot donnée auront une clé de fabrication différente (puisque le numéro de série des cartes est différent). C'est ce que l'on appelle la "diversification des clés". Cette opération très importante sera détaillée ultérieurement.

Une fois la carte prépersonnalisée et mise dans son support plastique, elle est bonne pour subir la phase suivante que l'on appelle la personnalisation. La personnalisation consiste à écrire dans la carte des informations qui sont propres à l'usage que l'on en fait (le numéro ISO de la carte bancaire par exemple). Elle peut être effectuée, soit par l'encarteur, soit par le distributeur de la carte s'il en a les moyens.

Pour la carte M4, la personnalisation consiste à définir des zones mémoires, chacune d'entre elle ayant une fonction bien particulière, et à inscrire les différents codes secrets et clés secrètes. Ces informations minimum peuvent être complétées par des informations propres à l'application qui utilisera la carte.

Pour qu'elles puissent être inscrites et être considérées comme valides, il sera nécessaire de présenter à la carte la clé de fabrication. Cette clé doit être calculée par la carte lot qui a servi à prépersonnaliser le lot de carte en question. Elle doit dont être fournie par l'encarteur si ce n'est pas lui qui personnalise les cartes. On voit donc apparaître ici un premier niveau de sécurité :

pour pouvoir être utilisable, il est nécessaire de disposer de la carte lot sans laquelle rien n'est possible. Celle-ci devra donc être envoyée au personnalisateur de la carte avec un maximum de précaution.

Lorsque la personnalisation est achevée, le verrou indiquant la fin de cette phase est positionné. La carte interdit alors toute relecture de la zone secrète et donc des clés qui s'y trouvent. Elle peut alors être distribué à son utilisateur final.

Durant la phase de cette vie, il est probable que des informations seront écrites en mémoire de transaction. En particulier, à chaque fois qu'un code secret est présenté, un bit est positionné dans une zone de la carte que l'on nomme "zone d'état". Lorsque la mémoire de la carte est pleine, en d'autre terme, lorsqu'il n'est plus possible d'inscrire une information ou de présenter un code secret, la carte est saturée. Elle ne peut plus être utilisée et doit être "invalidée". C'est l'ultime phase de la vie de la carte. Cette opération est matérialisée par l'inscription d'un verrou d'invalidation. La carte peut alors être lue sans présentation de code (sauf la zone contenant les clés secrètes) mais il n'est plus possible de lui présenter un code ou de lui faire exécuter un calcul.

Dans beaucoup d'applications, la saturation de la mémoire de transaction qui rend la carte inutilisable s'avère être un inconvénient important et ceci pour plusieurs raisons :

Organisation de la mémoire

img

La mémoire de la carte M4 est organisée en 4 zones. Chaque zone a son propre niveau de protection en lecture et en écriture. La taille totale de la mémoire est de 8kbits (1024 caractères) dont une partie est utilisée pour stocker des informations "systèmes" (environ 10 à 15%).

Remarque : une de ces zones s'appelle "zone de transaction" qu'il ne faut pas confondre avec le terme "mémoire de transaction" que nous avons utilisé jusqu'à présent pour nommer l'EPROM.

img

La zone en lecture libre

C'est dans cette zone que sont inscrites les informations systèmes nécessaires au processeur de la carte pour déterminer :

C'est également dans cette zone que l'on inscrira les informations lisibles par tous (exemple : identité du porteur dans le cas de la carte bancaire). Toutes ces informations doivent être inscrites lors de la phase de personnalisation. Lorsque la carte est fournie au client, le verrou indiquant "carte personnalisée" est positionné. Il n'est plus possible d'écrire ou de modifier des informations dans cette zone.

La zone de transaction

La zone de transaction permet de mémoriser les informations qui seront utilisées par l'application ou les applications mettant cette carte en oeuvre. Cette zone peut être protégée en lecture ou non. Si elle est protégée en lecture, il est nécessaire de présenter un code secret pour pouvoir la lire. Elle peut également être protégée en écriture ou non. Si elle est protégée en écriture, il sera possible de signer les informations (cf organisation des mots de la mémoire) que l'on y inscrit. La possibilité de signer permet de prouver qu'un information inscrite dans cette zone a été écrite sous contrôle d'un organisme ou d'une personne autorisée.

La zone confidentielle

Cette zone optionnelle permet d'inscrire une information qui ne doit être accessible en lecture que par un organisme ou une personne autorisée. Les informations contenues dans cette zone doivent être inscrites lors de la phase de personnalisation. Elles ne sont plus modifiables une fois la personnalisation achevée.

La zone de contrôle d'accès ou zone d'état

La carte utilise cette zone pour mémoriser les présentations de codes faux (et également, dans certain cas, la présentation de codes corrects) et se souvenir ainsi, si elle doit se bloquer ou continuer de fonctionner. Si la carte décide de se bloquer, il est possible de la débloquer par une opération de "réhabilitation".

La zone secrète

Cette zone contient les différentes clés secrètes, codes secrets et jeu secret nécessaires à la mise en oeuvre des fonctions de sécurité. Ces informations secrètes sont inscrites lors de la phase de personnalisation de la carte. Une fois la carte personnalisée, il n'est plus possible de lire ou d'écrire dans cette zone.

Les clés qu'il est possible d'inscrire dans cette zone sont les suivantes :

On peut remarquer que la carte ne connaît en interne que deux prestataires de service (le prestataire principal émetteur de la carte et le prestataire secondaire).

Organisation des mots de la mémoire

La carte est organisée en 256 mots de 32 bits. Chaque mot comporte trois bits systèmes nommés V, C, et CA sauf dans le cas de la zone d'état qui est gérée différemment. Tant que le bit V d'un mot n'a pas été positionné, il est possible de le surcharger c'est à dire de mettre à "0", les bits encore à "1". Ce bit est géré par le masque de la carte. En d'autres termes, l'utilisateur n'a pas la possibilité de le positionner directement. Il doit pour cela passer par une opération de "validation en écriture". La carte vérifie la validité de cette demande en comparant le positionnement des bits C et CA avec la dernière clé présentée selon la règle suivante :

V C CA  
0 0 x Validation sur présentation cle 2A ou 2B
0 1 1 Validation sur présentation clé 1A
0 1 0 Validation sur présentation clé 1B

 

32 31 30 bits 29 à 1
V C CA Données utilisateurs

Remarque : la validation en écriture sous contrôle de la clé de fabrication répond aux mêmes règles que celles de la clé 2A ou 2B.

L'opération de validation en écriture permet de prouver qu'un mot a été écrit sous le contrôle d'une clé particulière.

Fonctionnement de la zone de contrôle d'accès

La zone de contrôle d'accès ou zone d'état est utilisée pour mémoriser l'état de la carte (bloquée, état intermédiaire ou non bloquée) suite à une présentation de code secret suivi d'une opération de validation (en lecture ou en écriture). Cette zone est organisée en quartet.

Principe : Un code peut être présenté à la carte pour deux raisons.

1) on désire lire une zone protégée en lecture, il faudra alors effectuer une validation en lecture,

2) on désire valider un mot, il faudra alors effectuer une opération de validation en écriture.

Quelque soit la raison, une opération de validation entraînera le positionnement d'un bit et d'un seul. S'il s'agit d'une validation en lecture, ce bit sera systématiquement grillé en zone d'état. S'il s'agit d'une validation en écriture, il sera positionné, soit dans le bit V du mot à validé si le code est bon et les bits C et CA correctement positionnés par l'utilisateur, soit en zone d'état si le code est faux.

Exemple dans le cas d'une validation en lecture

On suppose ici que la carte n'a pas encore été utilisée. La zone d'état à donc la structure suivante :

1111 1111 1111 1111 1111 1111 1111 1111
 
               

La carte se trouve dans un état non bloqué. Cet état est caractérisé par la configuration quartet16 1111 ou 0111 ou 0011 ou 0001 ou 0000 et tous les quartets qui suivent à 1111. On effectue la présentation d'une clé 2A correcte suivie d'une validation en lecture :

0111 1111 1111 1111 1111 1111 1111 1111
 
               

même opération :

0011 1111 1111 1111 1111 1111 1111 1111
 
               

même opération mais cette fois ci, la clé 2A est incorrecte. Pour cette clé, l'utilisateur a le droit à 3 essais avant blocage de la carte.

0011 1011 1111 1111 1111 1111 1111 1111
 
               

La carte est passé au quartet suivant et a grillé le deuxième bit. Elle se trouve dans un état intermédiaire (elle n'est pas encore bloquée mais a mémorisée la présentation du code faux). Cet état intermédiaire est caractérisé par la configuration quartet 10x1 et tous les quartets qui suivent à 1111.

La deuxième présentation de la clé 2A est correcte.

0011 0011 1111 1111 1111 1111 1111 1111
 
               

La carte se retrouve dans un état non bloqué. On présente maintenant 3 clés 2A fausses consécutivement. Après la première présentation et validation, on a :

0011 0011 1011 1111 1111 1111 1111 1111
 
               

Après la deuxième présentation et validation, on a :

0011 0011 1001 1111 1111 1111 1111 1111
 
               

Après la troisième présentation et validation, on a :

0011 0011 1000 1111 1111 1111 1111 1111
 
               

La carte se trouve alors dans l'état bloqué. Cet état est caractérisé par la configuration quartet 1xx0 et tous les quartets qui suivent à 1111. Si on avait fait la même opération avec une clé 1A ou 1B fausse, la carte se serait bloquée immédiatement en grillant le dernier bit du premier quartet libre suivant le quartet en cours d'utilisation. Sa valeur aurait donc été 1110 ce qui correspond bien à un état bloqué.

Pour débloquer la carte, il faut lui présenter simultanément la clé 2A ou 2B et la clé 1A. Si cet ensemble de clés est faux, la carte se bloque de nouveau.

0011 0011 1000 1110 1111 1111 1111 1111
 
               

et ainsi de suite jusqu'à ce que la zone d'état soit saturée. Lorsque c'est le cas, il n'est plus possible de présenter un code et de le valider. Ceci empêche un fraudeur de tenter de débloquer la carte par essais successifs de présentation et validation de codes. Si la clé 2A ou 2B et la clé 1A sont correctes, la carte repasse dans l'état non bloqué :

0011 0011 1000 1110 0111 1111 1111 1111
 
               

En ce qui concerne les validations en écriture, le principe est le même que celui décrit pour les validations en lecture à la différence près suivante : lorsque le code est correct, le bit n'est pas grillé dans la zone d'état mais dans le bit V du mot à valider.

Pourquoi la carte positionne-elle systématiquement un bit ?

Que le code soit bon ou mauvais, la carte positionne un bit, soit dans la mémoire d'état, soit, si le code est bon et qu'il s'agit d'une validation en écriture, dans le bit V du mot à valider. Ainsi, si l'on mesure l'appel de courant que demande la carte lors de la programmation d'un bit, il ne sera pas possible de détecter une différence, que le code soit bon ou faux puisque dans les deux cas, l'opération réalisée est la même. Il s'agit d'une excellente contre mesure vis a vis de la SPA.

Evolution du mécanisme

Ce mécanisme a été imaginé alors que les cartes ne disposaient que de mémoires EPROM (non effaçables électriquement). Avec l'arrivée des EEPROM, le mécanisme a été amélioré de façon à ne plus être limité dans le nombre de présentations de codes (dans le cas précédent, on est limité par le nombre de bits de la zone d'état).

Le principe est le suivant :

C'est le mécanisme qui a été utilisé sur les cartes B4-B0'. Ce mécanisme a été abandonné sur les cartes récentes au profit de compteurs.

Dialogue avec la carte

La façon de dialoguer avec une carte est définis par des informations émises par la carte à sa mise sous-tension. Ces informations sont détaillées dans le chapitre "Normalisation". La carte M4 met en oeuvre une procédure de liaison de données asynchrone avec le format de trame suivant :

CI OR PAR1 PAR2 LG

A la réception d'un ordre, la carte émet un octet d'acquittement. C'est dans cet octet que sera également indiqué si la carte a besoin ou non de la tension de programmation Vpp.

A moins que l'on ait à réaliser un lecteur de carte, il est rare que l'on dialogue directement avec la carte en suivant cette procédure.

On remarquera que la norme ISO7816-3 est directement inspirée de ce protocole pour T=0

Ordres de la carte M4

Remise à zéro

La remise à zéro n'est pas un ordre de la carte au sens strict du terme. Il s'agit en fait du positionnement du signal RAZ sur le contact RAZ de la carte. En pratique, cette opération, qui est réalisée par le lecteur-encodeur, permet à ce dernier de déterminer les caractéristiques physiques de la carte (tension et courant de programmation, format des échanges, temporisation entre l'émission des caractères, etc... voir le chapitre "La normalisation") grâce aux informations émises par la carte suite à cet ordre :

MCE - MCF - MCH - ME1 - ME2

Avec :

MCE : caractéristique du composant

MCF : caractéristiques fonctionnelles

MCH : chronologie

ILU ILC ILF IIV IEP ILp 0 0

 

ILP 1
0
Zone de transaction protégée en lecture
Zone de transaction en lecture libre
IEP 1
0
Zone de transaction protégée en écriture
Zone de transaction en écriture libre
IIV 1
0
Carte Valide
Carte invalidée
ILF 1
0
Carte fabriquée
Carte non fabriquée
ILC 1
0
Carte personnalisée
Carte non personnalisée
ILU 1
0
Clé 2B active
Clé 2Aactive

A la fin de chaque ordre, la carte renvoie un compte-rendu d'exécution sur deux octets appelés ME1 et ME2 (ou SW1 et SW2 en anglais).

ME1 : #90 fin normale

ME1 : #6x fin anormale

Si ME1 = 6x, il faut exploiter ME2 pour connaître avec précision la raison de la fin anormale.

IF IT IE2 IE1 CCF CF X ER

 

ER 1 Erreur, la carte deviendra muette à la réception du prochain ordre, il faut faire une mise sous-tension.
CF 1 Clé fausse suite à une demande de validation de clé
CCF 1
0
La clé 2x était fausse (si CF=1)
La clé 1x était fausse (si CF=1).
IE1 1 la dernière clé 2A ou 2B présentée étaient fausse
IE2 1 Les deux dernières clé 2A ou 2B présentées étaient fausses
IT 1 Les trois dernières clés 2A ou 2B présentées étaient fausses ou la dernière clé 1A ou 1B était fausse. La carte est bloquée
IF   La zone d'état est saturée

Dans le tableau qui suit, les valeurs sont en hexadécimal. CI signifie classe d'instruction (#BC), T donne le type de l'ordre (entrant ou sortant (des données devront être émises par la carte en réponse à l'ordre)).

img

Quelques explications sur certains ordres :

Note sur la présentation des clés : elles doivent être présentées telles quelles sont représentées en mémoire complétées à 1. Le code 2A ou 2B utilisé pour le PIN (ou code porteur) est le plus souvent codé en DCB. Sa valeur est donc en hexadécimal #1234 ou en binaire 0001 0010 0011 0100. Il faut prendre en compte les bits V, C et CA du mot dans lequel le code est mémorisé. Toutefois, comme le code porteur est stocké sous le contrôle du porteur, le bit CA est en fait un bit de données. Donc, pour #1234, la valeur à présenter est la suivante :

0000 0100 1000 1101 0011 1111 1111 1111

Validation en écriture : on donne en paramètre l'adresse en mémoire du mot à valider. La carte vérifie que le positionnement des bits C et CA du mot en question correspond au type de la dernière clé émise et que cette clé est correcte. Si c'est le cas, le bit V est positionné. Sinon, une fenêtre d'erreur est ouverte dans la zone d'état et mémorise cette erreur sous la forme d'un bit.

Déblocage d'une carte : cet ordre permet de présenter simultanément, la clé 2A ou 2B de la carte et la clé 1A. Pour que la carte se débloque, il faudra effectuer une opération de validation en lecture.

Changement de la clé 2A : on ne peut faire cet ordre que si un emplacement libre (2 mots) a été réservé en zone secrète (clé 2B) pour y stocker la nouvelle valeur. Il au préalable émettre à la carte et valider la clé 2A. On émet ensuite les deux mots contenant le nouveau code porteur (clé 2B). Il faut ensuite valider ces deux mots en écriture puis positionner le verrou indiquant "clé 2B active".

Exécution d'un calcul : on fournit à la carte, l'adresse A d'un mot en mémoire et un nombre E de 64 bits. La carte calcule la fonction TELEPASS en prenant en compte le jeu secret JS inscrit dans sa zone secrète : V = F(E,(A),JS).

La carte M4B0' et B4-B0'

La carte B4 B0' a été créée à l'initiative des banques pour remplacer la carte M4. Les principales différences portent sur les points suivants :

BIBLIOGRAPHIE

Manuel Utilisateur de la carte M4, Bull-CP8, 1986.

La carte M9 de Bull-CP8

La carte au masque 9, également connue sous le nom de "SCOT" dérive de la carte M4.

Elle a été produite en plusieurs versions :

Cette carte a été utilisée pour réaliser la carte de santé française (Vitale 1).

On sent dans sa conception quelques acrobaties qui rendent son utilisation parfois délicate. Pour commencer, il faut décrire les zones de travail versus la zone confidentielle :

Certaines cartes peuvent comporter, soit deux zones de travail, soit une zone confidentielle et une zone de travail. Les descriptions qui suivent concernent la carte dans son état personnalisé. Dans la terminologie Bull :

La protection en lecture et en écriture de zones est donnée par la valeur des bits EPi et LPi situés en zone de fabrication, i désignant une zone :

Il y a enfin des couples de bits ECi qui définissent les règles d'effacement des zones. Une zone confidentielle n'est pas effaçable. Donc, si une telle zone est définie, alors le couple EC2 n'a pas de signification. le couple EC1 s'applique à la zone de transaction (zone de travail 1). Ces bits n'ont de sens que si la carte est effaçable (E²PROM). Les règles qui s'appliquent sont les suivantes :

Je ne garantis pas que le simulateur M9/SCOT de PCCAM gère correctement tous ces cas de figure. Il a été originellement conçu pour gérer des cartes M9 (une zone confidentielle, une zone de travail 1 = zone de transaction dans la terminologie M9 et M4) avec une mémoire non effaçable.

Vous trouverez ci-dessous un schéma d'organisation de la mémoire de ces cartes ainsi que la liste des ordres disponibles (tous ne sont pas disponibles sur toutes les cartes).

img

img

img

La carte M64 de Schlumberger

Il est probable que vous n'avez jamais eu de cartes M64 entre les mains et si c'est le cas, il serait étonnant que cela se produise dans le futur. A ma connaissance, cette carte n'a pas eu un grand succès. Elle est arrivée trop tôt ou trop tard. Si elle était arrivée plus tôt, ses performances l'aurait fait préférer à la carte M4. Mais la carte M4 était déjà sur le terrain et les cartes MP puis TB100 pointaient déjà le bout de leur nez lorsque la carte M64 a été annoncée. Enfin, la norme ISO7816-4 définissait des ordres et une organisation de la mémoire très différents de ceux proposés par la M64. Il en a été ainsi pour de nombreuses autres cartes proposés par d'autres fabricants.

Le problème, c'est que j'avais écrit un chapitre dédié à cette carte dans mon cours de 1989 et comme je n'aime pas jeter, je l'ai conservé dans la version de 2012 et suivantes

La carte M64 fait donc partie de la deuxième génération de cartes à micro-calculateur. La capacité la mémoire de transaction était de 64 kbits (8 kbits pour la carte M4). Elle disposait d'un système opératoire très évolué offrant un véritable gestionnaire de fichiers. Un algorithme DES permettait de mettre en oeuvre des fonctions de sécurité. A la différence de la carte M4, la gestion de la mémoire de transaction était gérée par le système d'exploitation de la carte elle même et non par l'utilisateur. Ceci permettait de bénéficier d'un cloisonnement parfait entre des informations de nature différentes ou concernant des prestataires différents. Avec cette nouvelle organisation, il était enfin possible d'envisager réellement des applications dites multi-services.

Dans le même temps, BULL. CP8 développait une carte (la carte MP-ADF qui fut rapidement remplacée par la TB100) dont les fonctionnalités étaient proches de la M64. Plus sophistiquée, elle était également beaucoup plus complexe à mettre en oeuvre et sa documentation laissait de nombreuse zones d'ombre sur son comportement aux limites.

Ces évolutions ont contribué à faire évoluer la normalisation. Les principales idées qui ont prévalu à la création de ces cartes se sont ensuite retrouvées dans la norme ISO 7816-4.

Gestion de fichiers

La gestion de fichiers utilise les notions de répertoires, sous-répertoires et fichiers. Chacun de ces niveaux peut avoir ces propres règles d'accès.

Il est possible de créer, consulter, effacer un répertoire ou le contenu des fichiers. Chaque répertoire dispose de sa propre clé, son type, ses règles d'accès, son nom. Un effacement ne libère pas la mémoire de la carte (la carte n'est pas effaçable au sens propre du terme). Les règles de sécurité logiques et physiques de la carte sont comparables à celles offertes par la carte M4 de Bull-CP8 (mono-circuit, impossibilité de relire les clés secrètes).

Personnalisation

Tout comme la carte M4, la carte M64 est livrée fabriquée et protégée par une clé de fabrication. La présentation de cette clé est indispensable pour pouvoir créer les répertoires et sous-répertoires nécessaires à l'application envisagée. Cette opération correspond à la phase de personnalisation de la carte M4. Si nécessaire, le prestataire peut invalider ou modifier la clé du fabricant afin d'y mettre sa propre clé prestataire. C'est également durant cette phase que pourra être stockée la valeur d'authentification de la carte. Une organisation possible peut être la suivante :

Description détaillée

La mémoire de transaction est organisée de manière hiérarchique en faisant intervenir des mécanismes de répertoires, sous-répertoires et fichiers tels qu'on peut les trouver sur des systèmes de gestion de fichiers (SGF) en informatique traditionnelle. Chaque fichier et répertoire est connu par un nom sur deux octets (les noms #0000 et #FFFF sont interdits).

Qu'est-ce qu'un fichier M64

Un fichier est un ensemble organisé d'informations généralement de même nature. Ces informations sont stockées dans des "enregistrements" (ou fiches). Chaque fichier de la carte peut avoir sa propre clé de protection (facultative) et ses propres règles d'accès. Les opérations pouvant être effectuées sur un fichier sont :

chacune de ces opérations peut être libre, interdite ou protégée par la clé du fichier.

Qu'est-ce qu'un répertoire

Un répertoire est un ensemble organisé de fichiers. En d'autre terme, les enregistrements d'un répertoire sont les fichiers eux mêmes. Les règles d'accès décrites pour les fichiers s'appliquent donc de manière identique aux répertoires.

Fichiers logiques, fichiers physiques

Les fichiers logiques sont les plus souples d'emploi et ceux qui se rapprochent le plus de ceux que l'on manipule en informatique traditionnelle. Il est possible de créer des enregistrements, d'en effacer, etc... Il faut toutefois être conscient qu'un enregistrement d'un fichier logique prend 8 octets sans compter la place prise par l'information utile. Le rendement (en terme de consommation de la mémoire) d'un tel fichier peut donc être très mauvais selon la taille de l'information utile.

LG NOM AF AR Données utiles
1 2 3 4 5 6 7 8  

Avec :

Si l'on n'a pas besoin de toute la souplesse offerte par les fichiers logiques, il est possible de créer des fichiers physiques. Un fichier physique est un ensemble de N enregistrements de M octets. Les deux paramètres M et N doivent être définis à la création du fichier.

 

En-tête d'un fichier logique (ou d'un répertoire)

LG NOM AF AR A1 RA Données utiles
2 2 2 2 2 2  

En-tête d'un fichier physique

LG NOM AF AR A1 RA Clé N M
2 2 2 2 2 2 8octets 1 1

Avec :

Remarque : Comme pour la carte M4, il est possible de surcharger les enregistrements d'un fichier ce qui consiste à positionner à "0" les bits de l'enregistrement qui sont encore à 1.  Cette opération n'est autorisée que si le premier bit (bit V) de l'enregistrement est à 1.

Règles d'accès

Les règles d'accès sont codés sur deux octets :

b3 b2 b1 b0 b3 b2 b1 b0 b3 b2 b1 b0 b3 b2 b1 b0
Q1 Q2 Q3 Q4

Q1 : pour un répertoire, ce quartet gère les règles de passage d'un niveau N à un niveau N+1. Pour un fichier, il gère les règles de lecture.

Q2 : pour un répertoire, ce quartet gère les règles de création des fichiers qui lui sont rattachés. Pour un fichier, il gère les règles d'écritures.

Q3 : pour un répertoire, ce quartet gère les règles d'effacement des fichiers qui lui sont ratachés. Pour un fichier logique, il gère les règles d'effacement des enregistrements :

En d'autres termes, b3=0 indique que la fonction est interdite. Si b3=1, les autres bits indiquent le type de protection :

Q4 : donne le type du fichier.

Sécurité

Tout comme pour la carte M4, il est possible de disposer d'un code porteur et d'utiliser ce code pour protéger les accès aux fichiers. Ce code doit se trouver dans un fichier créé sous le premier répertoire de la carte. Le nom de ce fichier est imposé et vaut "CM" en ASCII. Il doit bien sur être créé en lecture interdite. Il existe également une zone d'état chargé de mémoriser les présentations de codes. Son fonctionnement est légèrement différent de celui de la carte M4 :

Deux cas peuvent se présenter lors de la présentation d'un code. S'il est faux, la carte grille un bit dans la zone d'état. Après trois présentation fausse, la carte se bloque. La carte peut bien sûr être réhabilité. Si le code est correct, la carte simule le grillage d'un bit de façon que vu de l'extérieur, il soit impossible de déterminer si un bit a été grillé pour un code correct ou non. Par rapport à la carte M4, on voit que ce fonctionnement est plus économique en consommation mémoire. Par contre, à l'inverse de la carte MP, la taille de la zone d'état est fixe. Lorsqu'elle est saturée suite à un trop grand nombre de présentations de codes faux et de recyclages, il n'est plus possible de présenter de codes. Cet inconvénient propre à la carte M64 bâtie sur une EPROM a disparu avec la carte effaçable (M16).

En ce qui concerne les clés de fichiers, la carte ne mémorise pas les présentations erronées. Il faut toutefois se souvenir que ces clés font 64 bits utiles. Si l'on tentait de rechercher la clé d'un répertoire en essayant systématiquement toutes les combinaisons, il faudrait quelques milliards d'années à raison d'une présentation toute les ½ seconde pour trouver la bonne valeur (si l'on n'a pas de chance...).

Ordres acceptés par la carte

Certains des ordres que nous venons d'énumérer ne peuvent être exécutés par la carte que si les conditions d'accès sont réunies. Ceux qui suivent mettent en jeux les algorithmes de chiffrement DES simple et DES chaîné (MAC) (cf chapitre "Le chiffrement"). Pour mettre en oeuvre un chiffrement, il faut se positionner sur le fichier logique contenant la clé à utiliser et donner le nom de l'enregistrement la contenant.

Extensions

Dans la lignée de cette carte, Schlumberger a proposé une carte compatible réellement effaçable (technologie E²PROM). En effet, la M64 permettait d'effacer des données mais ne restituait pas la place prise par ces données (technologie EPROM). L'autre carte offrait les mêmes possibilités (compatibilité) avec en plus la possibilité de réutiliser la mémoire occupée par les données effacées.

BIBLIOGRAPHIE

Manuel utilisateur de la carte M64, Schlumberger, 1988.

Les cartes COS de Gemplus

La société Gemplus créée par des transfuges de THOMSON a développé le concept de COS (Chip Operating System) pour les cartes qu'elle fabriquait et distribuait

Si l'on se réfère à l'informatique traditionnelle, un ordinateur peut être décomposée en une partie matérielle comportant la CPU, les organes d'entrées et sorties, la mémoire de travail (mémoire vive) et une mémoire contenant les programmes nécessaires au démarrage de la machine (mémoire morte).

Du point de vue logiciel, on peut distinguer de manière très schématique, le système d'exploitation et les applications.

La notion de système d'exploitation permet aux applications de se décharger de la gestion des éléments périphériques du système, qu'il s'agisse des organes d'entrées-sorties que des organes de mémorisation, qu'ils soient de masse ou de travail.

Cette notion de système d'exploitation semble bien banale aujourd'hui. Il faut toutefois se rappeler qu'il n'en n'a pas toujours été ainsi. Le temps n'est pas si loin ou pour mémoriser une information sur disque, il fallait gérer soit même les secteurs, les pistes et optimiser les temps d'accès directement au niveau de l'application.

L'idée du COS rejoint le même objectif que celui qui a engendré les systèmes d'exploitation en informatique. Dans les grands principes, les cartes COS sont fournies avec un système d'exploitation gérant les ressources cartes (gestion de la mémoire, entrées-sorties, etc...) ainsi que des utilitaires (algorithmes cryptographiques par exemple).

La principale différence avec les cartes précédemment citées vient du fait qu'une carte COS n'est pas forcément livrée avec un applicatif. C'est à l'émetteur de la carte de définir les fonctionnalités que devra fournir la carte et de la programmer en conséquence. Concernant ce dernier point, l'astuce consiste à utiliser la mémoire que l'on a appelée de transaction pour les autres cartes comme mémoire programme. Par rapport à ces dernières, il existe donc une phase supplémentaire dans la personnalisation de la carte qui consiste à télécharger le programme créé et de verrouiller cette fonction une fois l'opération terminée.

Aujourd'hui, un dérivé de ce mécanisme est encore utilisé pour charger des correctifs dans les cartes. Par contre, pour les applications, on utilise désormais les cartes Java ou Multos

Les composants proposés pour le COS

Les caractéristiques physiques des cartes évoluent très rapidement en fonction des progrès liés à la technologie des semi-conducteurs. La liste citée ci-dessous correspond à l'offre Gemplus en 1990 (pour les cartes à micro-processeur).

Appellation et taille de la mémoire de transaction (en kbits) Taille COS Fonctionnalités
COS 8K EPROM 2ko Mono répertoire
Adressage par numéro
Sous-programems possibles.
COS 32K EPROM 3ko Mono répertoire
Adressage par identifiant ou n° de fichier
Sous-programems possibles.
COS 16KE²PROM 3ko Mono répertoire
Adressage par identifiant ou n° de fichier
Mise à jour de données.
COS20K EPROM 4ko Mono répertoire
Adressage par identifiant ou n° de fichier
Algo DES, télé-écriture, authentification.
MCOS 16K E²PROM 6ko Multi-Répertoires,
Adressage par identifiant ou n° de fichier
Mise à jour de données,
Algo DES, télé-écriture, authentification,sous-programmes possibles.

Les fonctionnalités du COS

La figure ci-contre représente l'organisation de la mémoire de la carte COS32K.

img

Le SGF (Système de gestion de fichier)

La première fonction assurée par le COS est de gérer la mémoire de la CAM. Cette mémoire est vue par l'application comme un ensemble de fichiers de longueur variable que le COS va numéroter dans l'ordre de leur allocation et protéger en lecture, écriture ou réécriture conformément à ce qui lui est indiqué lors de la création. L'application va fournir au COS, le type de données à attacher au fichier à créer afin de lui permettre d'en gérer le contenu. Ce type sera utilisé par le COS comme identifiant du fichier.

Pour le COS, le fichier est le plus petit élément manipulé en ce qui concerne les règles de protections. Pour l'application, il s'agit d'une zone de donnée continue pouvant contenir une ou plusieurs collections de données.

Les fichiers sont attachés à un ou des répertoires qui peuvent eux mêmes être regroupés en niveaux. Chaque répertoire peut contenir ses propres mots de passe ou utiliser ceux du niveau de rattachement. Le passage d'un répertoire à l'autre désactive automatiquement les sécurités qui lui étaient attachées (autorisation d'allocation de fichiers, mots de passes actifs, gestion des mots de passe, etc...).

A chaque répertoire, il est possible d'attacher de 1 à 8 mots de passe aux présentations desquelles les accès aux fichiers vont être assujettis. Ces mots de passe peuvent être modifiés par leur propriétaire et sont contrôlés par le COS à chaque utilisation (blocage après trois présentations erronées). Parmi ces mots de passe, on trouve celui qui sera utilisé par le porteur de la CAM (P1N), celui dévolu à l'émetteur de la carte ou de l'application, les autres pouvant être affectés librement aux différentes autorités gestionnaires de l'application.

Les utilitaires

Les fonctions cryptographiques supportées par certaines versions du COS utilisent l'algorithme DES standard. Elles permettent de faire l'authentification réciproque, des présentations de mots de passe chiffrés par une clé de session ainsi que des lectures et des écritures de données chiffrées de bout en bout par la clé de session.

Les sous-programmes

L'ouverture du COS à des sous-programmes permet à une application d'adapter la CAM aux besoins à satisfaire et ce, sans attendre le développement d'un masque complet. Il existe dans le COS quatre points d'entrées réservés pour de nouvelles fonctions (par exemple, sélection d'une clé et calcul d'authentification, demande de résultat de calcul, calcul d'une clé de session, etc...).

Les filtres

Les filtres sont des sous programmes particuliers permettant au développeur de modifier le comportement du COS lui-même. Seules, la réponse au RESET et quelques fonctions techniques ne peuvent être modifiées.

Les principales fonctions du COS

Conclusions

Les fonctionnalités offertes par le COS ont permis d'imaginer des solutions originales dans les divers domaines d'application de la CAM. Dans les années 1990, on peut signaler une application mettant en oeuvre un algorithme de brouillage qui était périodiquement modifié par le gestionnaire du système. Seul, ce type de carte pouvait répondre au problème de manière simple et économique à l'époque.

BIBLIOGRAPHIE

[1] Présentation des cartes de la famille COS, Gemplus.

[2] Manuel utilisateur de la carte COS32K, Gemplus.

Les premières cryptocartes

Historique

Dès la fin des années 80, le besoin s'est fait sentir de disposer de cartes permettant de mettre en oeuvre des algorithmes à clé publique tel que le RSA ou le GQ. Le besoin le plus précis est venu initialement des banques avec le projet ETEBAC5 (Echanges Télématiques entre les Banques et leur Clients). L'offre industrielle du moment était proposée par Logicam avec sa carte Mirza, Sofrel avec la carte Camélia II et Schlumberger avec la carte M64-P.

Les deux premières cartes étaient en fait des gommes composées de plusieurs chips sur un circuit imprimé au format d'une carte ISO7816 (à l'épaisseur près). La gomme Camélia provenait du CCETT (Centre Commun d'Etude de Télécommunications et de Télédiffusion, organisme commun à France-Télécom et Télédiffusion de France) et était déjà utilisée par le GIE-CB pour le calcul de la valeur d'accréditation des cartes bancaires.

La carte Schlumberger n'a jamais dépassée le stade des spécifications. Ses performances supposées pour un calcul RSA portant sur 512 bits (données de 512 bits, exposant de 512 bits, modulo de 512 bits) étaient de l'ordre de 14 secondes.

Toutes ces solutions apparaissaient comme bancales. Les gommes Mirza et Camélia ne pouvaient prétendre être de haute sécurité étant donné leur structure multi-chips, la carte Schlumberger était trop lente et les professionnels restaient sceptiques sur la capacité de Schlumberger de la produire réellement. Enfin, les progrès réalisés dans le domaine de l'intégration des composants laissaient espérer la possibilité de disposer de composants pour CAM associés à des co-processeurs arithmétiques, le tout sur un même chip.

La carte DX de Philips

La première offre industrielle a été faite par TRT-Philips avec son composant 83C852 et sa carte DX (algorithme RSA) dès 1993. Cette carte permettait de réaliser des calculs RSA jusqu'à 512 bits (voir plus si on avait le temps...). La conception originale avait été réalisée en collaboration avec Jean-Jacques Quisquater.

img  img

La Carte Mimosa du CCETT/Gemplus/Philips

Dans la foulée de la carte DX, Gemplus sortait le masque Mimosa sur la base du composant TRT-Philips à partir de spécification du CCETT. La particularité de cette carte était qu'elle exécutait l'algorithme Guillou (du CCETT) et Quisquater (Université de Louvain). Des problèmes techniques liés à ce composant firent que la carte Mimosa resta au stade de prototype.

img  img

Les co-processeurs arithmétiques

A partir de 1994-1995, la plupart des fabricants de composants pour CAM proposent à leur catalogue des crypto-chips (Cf. Introduction). Les paragraphes qui suivent donnent des indications sur leur performances et leur caractéristiques. Ils sont tirés d'un acte du congrès Eurocrypt'95, Arithmetic Co-processors : The State of the Art de David Naccache (Gemplus).

Dans le domaine qui nous intéresse, un co-processeur arithmétique (CPA) est un composant matériel dédié au calcul de d=a.b mod c ou, dans certains cas, une exponentiation modulo complète. Généralement, les CPA sont vus par le microcontrôlleur de la carte comme une mémoire spéciale dans laquelle les données a, b et C peuvent être écrites et la donnée d lue.

Principaux composants en 1995

Nom commercial Fab. µP Surf.tot
mm²
Surf. CPA
mm2
RAM EEPROM Techno
ST16CF54 Thomson 68HC05 ? ? 352 16k 1,2µ CMOS
ST16KL74 Thomson 68HC05 ? ? 608 20k 1,2µ CMOS
SLE44C200 Siemens 80C51 24,5 5,7 256 9k 1µ CMOS
P83C852 TRT 80C51 22,3 2,5 256 2k 1,2µ CMOS
P83C855 TRT 80C51 31,1 2,5 512 2k 1,2µ CMOS
M68HC05/SC29 Motorola 68HC05 27 5 512 4k 1,2µ CMOS

Et les performances...

Calcul SLE44C200 ST16CF54 83C852
512 bits RSA 60ms 54ms 600ms
768 bits RSA 271ms 290ms 3600ms
1024 bits RSA 456ms 390ms  

ANNEXE, HISTOIRE DE PROJETS

Dans mon cours de la fin des années 1980 et ses proches réactualisations, je décrivais quelques projets en cours, soit parce que j'y avais participé, soit parce que je m'étais intéressé à eux par la presse ou des communications techniques. j'avais également conservé un gros fond documentaire et technique pour compléter un jour ces histoires. Malheureusement, il a été détruit... Je ne vous parlerai donc pas du PIAF de Moréno ("le projet où les conducteurs devaient acheter leur parcmètres" m'avait dit un jour un collègue) ou d'autres projets plus ou moins farfelus ou géniaux selon le point de vue.

La télévision à péage

Ce chapitre décrit une application de la CAM pour un projet de télévision à péage développé par France-Télécom dans le cadre du projet européen Eurocrypt (le service commercial s'appelle aujourd'hui VIACCESS). D'autres réalisations ont vu le jour (en particulier en Grande Bretagne avec des CAM Gemplus). Celle-ci se distingue des précédentes par son ampleur et par sa vocation multi-prestataires.

Note : ce chapitre a été écrit pour l'essentiel par le service de presse du CCETT vers 1990. Pour ceux qui ne s'en souviendrait plus, le CCETT était un Centre Commun d'Etude de Télécommunications et de Télédiffusion (organisme commun à France-Télécom et Télédiffusion de France à l'époque ou ces organismes étaient dans le domaine public et faisaient de la recherche. Le CCETT était situé à Rennes).

En septembre 1988, France Télécom a lancé un important programme d'équipement de ses réseaux de distribution de services de radio-télévision pour les doter des moyens techniques appropriés à la gestion de la télévision à accès conditionnel et à la diffusion des programmes dans la norme D2MAC PAQUET. Cette décision stratégique s'appuie sur l'analyse de l'évolution de l'économie de l'audiovisuel qui prévoit le développement d'une télévision plus diversifiée, s'appuyant sur un mode de financement plus direct basé sur le paiement de la consommation effective des téléspectateurs et une rétribution des ayants droits calculée sur l'audience réelle des programmes.

La motivation de France Télécom se situe essentiellement sur un plan économique. L'opérateur public des réseaux de télécommunication et de télédiffusion se doit d'anticiper sur une évolution inéluctable du marché. La mise à niveau technique des infrastructures telles que les réseaux câblés et les satellites, qui représentent des investissements considérables, se révèle dès lors indispensable. La mise en oeuvre d'un système d'accès conditionnel permet la modularité de l'offre de programmes et la progressivité des coûts, condition indispensable au succès commercial du câble notamment.

Les solutions techniques se basent sur les procédés D2MAC, EUROCRYPT et la CAM PC2 résultant des recherches conduites depuis le début des années 1980 par le CCETT en harmonie avec les orientations stratégiques de France Télécom.

Le choix d'une CAM s'inscrit également dans le sens des efforts déployés depuis de nombreuses années par France-Télécom et d'autres acteurs (Banque notamment) pour promouvoir cette technologie. Mais loin d'être une option de circonstance, le "processeur de sécurité détachable" est avant tout un élément essentiel de la proposition D2 MAC/EUROCRYPT. La carte PC2 permet en effet :

Pour donner l'élan nécessaire au démarrage de cet ambitieux programme, France Télécom a estimé indispensable d'accompagner et de soutenir encore plus activement le développement des applications commerciales de contrôle d'accès en commandant un volume important de terminaux Visiopass. Ainsi, la constitution de ce parc d'équipements doit contribuer :

En prenant en charge l'intégralité des investissements techniques du système de contrôle d'accès D2 MAC/EUROCRYPT et en participant à la constitution d'un parc de 750 000 terminaux, France Télécom garantit une indépendance commerciale totale à ses partenaires qui utiliseront ces moyens pour développer leurs services de télévision à péage.

Visiopass

Le système Visiopass est destiné à s'adapter à l'évolution commerciale de la télévision : il permet d'enrichir graduellement et de manière souple l'offre de programmes proposée aux abonnés en développant des services audiovisuels à condition d'accès.

Grâce au terminal Visiopass, l'opérateur peut offrir, en plus d'un service de base complet, une gamme diversifiée de programmes répondant aux demandes de sa clientèle. Il peut ainsi déterminer d'une façon précise des classes de services adaptées à tous les publics, des modalités commerciales spécifiques et des formules de paiement variées.

Les programmes s'ouvrent à de nouveaux modes de financement dans un cadre réglementaire adapté ; leurs éditeurs peuvent être rémunérés en fonction de l'audience réelle. Par ailleurs, le ciblage des publics peut attirer de nouveaux annonceurs. Visiopass, c'est aussi une possibilité nouvelle d'accéder à domicile aux spectacles vivants de toutes sortes (concerts, théâtre, rencontres sportives) avec toute la force de "direct".

Visiopass inaugure la télévision de l'an 2000, avec le parc de téléviseurs existants. Premier pas vers la haute définition, le D2 MAC apporte une meilleure qualité d'image que les procédés traditionnels, un son stéréophonique haute fidélité et surtout le nouveau format 16/9 particulièrement apprécié lors des diffusions de films ou de grands spectacles.

Un service clé en main

Avec Visiopass, France Télécom propose aux opérateurs de réseaux câblés et aux sociétés de programmes un moyen immédiatement opérationnel pour conquérir de nouveaux publics sans engager de lourds investissements.

La mise en place de fonctions normalisées garantit une ouverture du système à tous les fournisseurs de programmes, permet la réalisation d'économies d'échelle et produit un effet d'entraînement sur l'offre de services payants. Ce choix de structure s'inscrit dans la logique d'opérateur public de France Télécom et dans une perspective européenne industrielle avec des options technologiques cohérentes et claires dans un secteur éminemment stratégique.

Indépendance commerciale des opérateurs et des fournisseurs de programmes

Visiopass garantit une totale indépendance commerciale à ses utilisateurs. Chacun d'eux peut en effet contrôler l'ensemble du système puisqu'il a la maîtrise des clés de contrôle d'accès sur son réseau et que toute carte PC2 doit être autorisée et validée par lui pour être opérationnelle.

De même Visiopass assure une confidentialité totale aux fichiers d'abonnés contrôlés par des fournisseurs de programmes. Le centre de gestion central de France Télécom (le "gestionnaire des titres d'accès") ne connaît que les numéros des cartes et ignore le nom des abonnés. Seul le centre de gestion commerciale appartenant à l'opérateur de réseau câblé peut identifier ses clients et prendre la décision d'ouvrir l'accès aux programmes aux seuls téléspectateurs ayant acquitté leurs droits.

Visiopass est la possibilité offerte à des fournisseurs de programmes distincts de se grouper pour partager les mêmes infrastructures techniques et concentrer ainsi leurs moyens financiers sur les seuls programmes.

Modalités commerciales diversifiées

Visiopass autorise trois modes de commercialisation de la télévision "à la demande" :

Visiopass offre des fonctionnalités complémentaires comme la télé-messagerie personnalisée (un opérateur ou un fournisseur de programme adresse un message en télétexte à un abonné en fin de droits) ou le contrôle local du terminal par code parental.

Eurocrypt

Issu des travaux du Centre Commun d'Etudes de Télédiffusion et Télécommunications (CCETT), Eurocrypt est un système d'accès conditionnel qui répond à trois principes de base :

Eurocrypt est un système ergonomique qui privilégie la facilité d'accès au service pour le téléspectateur. Il utilise le réseau de diffusion qu'emprunte le signal de télévision auquel il est associé pour transmettre les messages de gestion des titres d'accès et charge automatiquement les nouveaux droits dans la carte PC dès qu'elle est insérée dans le lecteur. L'intervention du téléspectateur n'est requise que pour l'expression de ses propres besoins. Par ailleurs, le système étant partageable entre plusieurs fournisseurs de programmes, il offre toute garantie quant à la cohérence des procédures d'accès d'un service à l'autre.

Eurocrypt offre un ensemble complet de services et de facilités :

Liens entre Eurocrypt et Visiopass

Le procédé de contrôle d'accès Eurocrypt permet aux fournisseurs de programmes et aux opérateurs commerciaux des réseaux câblés de réaliser toutes les applications de télévision à péage actuellement envisageables.

La première d'entre elles est la télévision par abonnement, pour laquelle le contenu peut être caractérisé par un niveau (prix, valeur commerciale...) ou par un thème, (sport, musique, cinéma), ou par une classe de service croisant les critères précédents de niveau et de thème : le téléspectateur ayant acquitté son abonnement pour une période déterminée a accès au contenu du programme correspondant à la classification de niveau ou de thème sélectionnée.

Eurocrypt permet aussi le paiement par émission : c'est le "pay-per-view" des américains. Dans ce cas, le téléspectateur n'a accès qu'au contenu de l'émission particulière qu'il a sélectionnée. Ceci peut se faire par achat anticipé, en faisant connaître à l'avance son choix au fournisseur de programme qui téléchargera le droit ainsi acquis avant l'émission ; ou bien par achat "impulsif", par action du téléspectateur sur son terminal sans avoir à prévenir a priori le fournisseur de programme. Dans ce cas, la consommation peut être organisée en mode de pré-paiement ou par facturation a posteriori des émissions consommées, ce mode supposant que les informations inscrites dans la carte à mémoire soient relevées par le Centre de Gestion des services. Le mode normal de télévision à péage par émission devrait être le mode d'achat impulsif avec facturation après les consommations.

Eurocrypt permet enfin le paiement des émissions à la durée. Dans ce cas, l'achat sera toujours impulsif, et le mode de facturation pourra être le pré-paiement ou la facturation après les consommations, celles-ci devant devenir le mode normal. L'unité de temps pour la mesure des consommations sera de dix secondes.

Tous les messages techniques sont diffusés au téléspectateur dans le canal vidéo, le plus souvent sous forme chiffrée, et sont traités automatiquement par le Visiopass et la carte à mémoire sans intervention physique du téléspectateur. Ce sont par exemple le renouvellement des abonnements, le téléchargement du droit d'accès à une émission achetée par anticipation ou bien le téléchargement d'un crédit pré-payé.

Eurocrypt permet d'adresser au téléspectateur des messages personnalisés en suivant la norme Télétexte. Cette capacité technique sera utilisée par le fournisseur de programmes pour un contact actif avec ses clients.

Enfin, chacune des émissions diffusées portera un code à huit niveaux, qui pourra être affecté à l'émission en fonction de son contenu ou de son coût. Le titulaire du contrat avec le fournisseur du programme (les parents en général) pourra décider de rendre obligatoire l'emploi d'un code secret (le code parental) lorsque le niveau dépassera une valeur prédéterminée.

Les capacités du terminal pour la relève des droits pourront être utilisées en présence du modem téléphonique nécessaire, pour la facturation des émissions consommées en pay-per-view impulsif, pour l'évaluation fine des montants dûs par le fournisseur de programmes à ses ayantsdroit et pour la mesure d'audience.

Le terminal Visiopass

Le terminal Visiopass réunit dans un même coffret six fonctions techniques complémentaires :

  1. Le syntoniseur (ou tuner) a pour mission de sélectionner un canal de télévision parmi l'ensemble des canaux acheminés jusqu'à la prise de raccordement. Il est connecté au téléviseur par un câble et une prise de télévision délivrant des signaux R.V.B, les sons et l'information de synchronisation.
  2. Le décodeur-désembrouilleur traite le signal D2 MAC pour en extraire les informations compatibles avec les récepteurs de télévision actuels et pour restaurer le cas échéant l'image en clair après autorisation émanant du processeur qui gére les données d'accès conditionnel.
  3. Le processeur central du terminal coordonne l'ensemble des fonctions du décodeur-désembrouilleur et reçoit les données de contrôle d'accès contenu dans le signal D2 MAC. Il dialogue également avec le lecteur de carte à mémoire pour charger ou contrôler les clés d'accès inscrites dans la carte.
  4. Le lecteur de carte à mémoire permet l'insertion d'une carte PC2. Cette opération est indispensable pour déverrouiller le décodeur et le système de gestion interne pour l'accès conditionnel.
  5. Un connecteur permet la pose d'un modem téléphonique qui sera utilisé pour la récupération des données de consommation instantanée des programmes audiovisuels vers le Centre de Gestion. Ces informations serviront à la facturation détaillée ainsi qu'à la mesure de l'audience pour la rémunération des droits des propriétaires des oeuvres audiovisuelles et pour la facturation du téléspectateur.
  6. Les commandes des différentes fonctions du terminal sont regroupées sur une télécommande à infra-rouge. Les manipulations du téléspectateur sont facilitées par des menus qui apparaissent sur l'écran du téléviseur. Le boîtier est pourvu de deux prises de péritélévision (une pour le téléviseur, l'autre pour le magnétoscope), d'une sortie en Secam "bande de base" (pour les anciens téléviseurs sans prise de péritélévision), d'une sortie pour les données numériques et de deux prises cinch pour le raccordement éventuel du son stéréophonique sur une chaîne haute-fidélité.

La carte PC2

La carte PC2 du téléspectateur assure la mémorisation et la protection des titres d'accès et des clés secrètes ainsi que les fonctions algorithmiques qui sont nécessaires à la mise en oeuvre du processus d'accès au programme (commande de désembrouillage de l'image et du son, vérification du droit d'accès). Elle conserve une trace explicite des transactions et des titres d'accès. Le téléspectateur peut consulter ses informations et le relevé des consommations peut être effectué par le gestionnaire du système pour le compte des sociétés de programme. Le téléspectateur peut également créer un code parental dont il fixe lui-même les conditions d'emploi.

Cette carte constitue le seul élément sécurisé et personnalisé de l'équipement de réception situé chez le téléspectateur.

Les modes de commercialisation offerts par cette carte sont multiples :

Des cartes PC2 simplifiées pourront être mises en circulation pour des applications commerciales de courte durée (opérations publicitaires ou de parrainage du type concert de rock offert par la marque X).

La carte PC2 a été conçue par le CCETT et est industrialisée par Bull-CP8.

Conclusion 2013

Pourquoi ce nom de PC2 ? Parce qu'elle a fait suite à deux précédents projets nommés PC0 et PC1, toujours sous l'égide du CCETT. Et PC signifiait alors "Porte-Clés" ce qui est bien trouvé.

Après avoir été produite par Bull-CP8 et ses successeurs, la carte PC2 a également été développée par la société EDSI située à Cesson-Sévigné près de Rennes. Cette société a été rachetée en 2008 par la société Suisse Kudelski qui était devenue entre temps, un des premiers fournisseurs mondiaux de système de télévision à péage (comme quoi, il ne suffit pas d'y avoir pensé les premiers, il faut également savoir valoriser ses inventions).

Le mode de gestion des clés très particulier des cartes de télévision à péage utilisés dans les systèmes par satellites ont fait qu'elles ont été les plus attaquées.

A partir de 2012-2013, les cas de cartes violées semblent avoir diminué. Il y a plusieurs raisons possibles. Certaines, sur lesquelles je ne m'étendrai pas, sont techniques. Les autres viennent du fait qu'avec le développement de la télévision par Internet (câblée), le système de contrôle d'accès a pu se renforcer grâce à l'existence d'une voie de retour dans les communications. Et au fur et a mesure de la montée en puissance de ces offres, les utilisateurs ont tendance à se détourner de la télévision par satellite (du moins en Europe). Du coup, il devient moins intéressant de casser les cartes de contrôle d'accès à la télévision par satellite.

VERIDIAL, préhistoire de la signature électronique

Préambule

VERIDIAL fait partie de ces ratages dont l'industrie informatique a le secret. L'histoire de ce projet s'est terminée brutalement au début de l'année 1993. J'ai toutefois tenu à conserver la description de ce qu'aurait pu devenir ce système car il s'agit de la première tentative de réalisation d'envergure d'un système d'échange de messages sécurisés signés électroniquement.

Avertissement : il faut se replacer dans le contexte de l'époque (1988-1993) pour lire ce texte qui est écrit au présent, à la date où le projet est en cours de développement

Introduction

En 1986, une étude est menée par plusieurs organismes bancaires avec la participation de France-Télécom concernant la sécurisation des échanges de données entre les trésoriers d'entreprises et leurs banques. Il s'agit du projet PLUCE. Il n'est pas dans l'objet de ce document de décrire les résultats auxquels ont abouti les différents partenaires. Il suffit de savoir qu'un marché est effectivement identifié et qu'il peut justifier de la création d'une société dont le but serait d'offrir les services qui ont été répertoriés. C'est ainsi que naît VERIDIAL en Juillet 1988.

La structure et les partenaires de VERIDIAL portent la marque des tenants qui ont abouti à sa création. Il s'agit d'une société anonyme au capital initial de 15MF ayant pour actionnaires :

VERIDIAL est en effet un système d'échange d'informations (d'où France-Télécom), destiné à sécuriser les transactions entre des trésoriers d'entreprise et leurs banques (d'où les banques) en utilisant la CAM comme dispositif de sécurité (d'où INNOVATRON). Mais réduire VERIDIAL à ce seul objectif serait partiel et partial. Comme nous allons pouvoir le constater, ses ambitions sont en effet plus larges et il s'agit également d'un investissement portant sur un marché encore naissant mais très prometteur qui est celui de la sécurité logique en général et de la signature électronique en particulier.

Architecture du système VERIDIAL

img

VERIDIAL est à la fois le nom d'une société et le nom d'un système offrant des services de sécurisation logique. Ce système est bâti autour d'un système informatique à tolérance de panne (matériel TANDEM) disposant d'un véritable arsenal de boites à outils assurant son adaptabilité et son évolutivité à des besoins nouveaux. Ces boites à outils sont utilisées par des sous systèmes de communication offrant le service demandé. Le premier système de communication développé sur ce système correspond bien évidemment au premier marché qui a été à l'origine de la création de VERIDIAL.

Principes

Le service VERIDIAL a pour objet d'assurer des services de sécurisation de transmissions de données sur les réseaux de communication, d'en gérer les systèmes de preuves et de facturation des services rendus.

Les utilisateurs du service VERIDIAL sont des Tiers appelants (TA) qui émettent des messages à destination de Serveurs d'Applications (SAP). Le Serveur VERIDIAL se situe en intermédiaire entre les TA et les SAP.

En tant que noeud intermédiaire, le serveur VERIDIAL gère pour le compte des utilisateurs l'absence de certaines normalisations et l'évolution très rapide des technologies liées notamment aux dispositifs de sécurité et aux échanges de données sécurisées. VERIDIAL assure donc la pérennité de leurs investissements tout en leur garantissant des possibilités d'évolutions en fonction de nouvelles normes ou standards de fait qui pourraient apparaître sur le marché.

Sa position lui permet également d'être un témoin neutre des échanges entre les TA et le SAP et de jouer le rôle de "Notaire" en offrant des services de stockage et de vérification de preuves.

Qui sont les TA ?

Tout équipement capable de répondre aux STUR (Spécifications Techniques d'Utilisation du Réseau ou du seRvice) peut être utilisé. Il doit être muni d'un dispositif de sécurité reconnu par VERIDIAL. Il peut s'agir par exemple d'un micro-ordinateur muni d'une carte de télécommunication et d'un lecteur de carte à mémoire. Dans la suite de ce chapitre, cet équipement sera nommé Terminal TA ou TA lorsqu'il n'y aura pas d'ambiguïté.

Le serveur VERIDIAL supporte également les TA utilisant un Minitel muni d'un LECAM (Lecteur de Carte à Mémoire de France Télécom). Ce type de terminal sera nommé Minitel-LECAM dans la suite de ce chapitre.

Qui sont les SAP ?

De la même façon que pour les TA, tout équipement capable de répondre aux STUR-SAP peut être utilisé.

Les services proposés par VERIDIAL

La finalité du service VERIDIAL est de sécuriser la transmission d'un message émis par un TA à destination d'un SAP. Le terme "message" est pris ici au sens large, le serveur VERIDIAL n'ayant pas connaissance de la structure et du type des données qui transitent par lui.

La sécurisation s'appuie sur l'utilisation de dispositifs de sécurité (comme par exemple la carte à mémoire) et permet d'identifier les utilisateurs, d'assurer l'intégrité des données transmises et leur non répudiation.

Certaines de ces fonctions de sécurité peuvent être mises en oeuvre de manière optionnelle et de façon différente entre les TA et le serveur VERIDIAL d'une part et le serveur VERIDIAL et les SAP d'autre part. De ce point de vue, VERIDIAL joue donc le rôle d'un convertisseur de protocole de sécurité.

Le mécanisme général d'émission d'un message sécurisé est le suivant :

VERIDIAL est en mesure d'offrir à la demande des deux parties, la preuve qu'un message a été effectivement émis et reçu. Ce service de reconstitution de preuve est assuré sans stocker les messages eux-mêmes mais seulement leur signature électronique et les paramètres associés.

D'autres services sont accessibles par le TA tel que la visualisation d'un historique des échanges, la gestion de son compte (ouverture, approvisionnement, consultation, modification), etc...

La tarification et la facturation

Les principaux services à facturer sont :

A qui facture-t-on les coûts ?

Les services directement rendus par VERIDIAL au TA sont normalement facturés à ce dernier. Il en est de même si le SAP destinataire demande la facturation de ses services dans le cadre du kiosque continu.

A sa demande, le SAP peut être facturé de tout ou partie des coûts de sécurisation de la transmission normalement facturée au TA.

Comment les coûts sont-ils facturés ?

Les TA

Lors de sa première connexion sur le serveur VERIDIAL, le TA ouvre un compte par une transaction d'ouverture de compte. Ce compte est identifié par son dispositif de sécurité. Il fonctionne en prépaiement et peut être alimenté par une transaction d'approvisionnement de compte.

Le compte est débité dès que le service est rendu :

Les SAP

Les coûts du service VERIDIAL sont facturés mensuellement.

Les raccordements

Pour les TA, VERIDIAL est accessible :

Pour les SAP, VERIDIAL est accessible par TRANSPAC ou liaison spécialisée.

Les dispositifs de sécurité et algorithmes cryptographiques

Les dispositifs de sécurité reconnus par VERIDIAL côté TA sont :

  1. la carte Bancaire à puce au masque 4 (puis B4B0'),
  2. la carte PASTEL de France Télécom.

Le choix de ces cartes permet de bénéficier d'une large base installée et limite le coût d'acquisition du dispositif d'authentification et de signature par les utilisateurs

L'algorithme de scellement utilisé est le Générateur d'Octets Chiffrant  (GOC) et les signatures sont faites par l'algorithme TELEPASS.

Pour les SAP, tout dispositif de sécurité permettant d'effectuer des scellements DES et des signatures RSA conformément au mode opératoire décrit dans le protocole PeSIT peuvent être utilisés.

Généralités sur les services offerts par VERIDIAL aux TA

Le précédent paragraphe décrivait de façon générale le service global proposé par VERIDIAL aux utilisateurs. Ce paragraphe reprend en les détaillant, les services spécifiquement proposés aux utilisateurs TA. Il constitue une introduction informelle au chapitre décrivant les services et le protocole VERIDIAL.

Les services offerts aux TA sont les suivants :

Informations "VERIDIAL".

Chacun de ses services fait l'objet d'une "transaction" spécifique.

Le service VERIDIAL sait consécutivement à chaque connexion :

Le service qui sera offert par VERIDIAL à son ouverture n'est qu'un des multiples services que la société compte proposer tel que le téléchargement sécurisé de clés pour les machines de banques ou comme serveur de sécurité déporté pour des systèmes informatiques, etc... On peut remarquer que dans ces deux derniers cas, VERIDIAL n'est plus en coupure sur le réseau mais en parallèle.

Plus généralement, on peut faire la remarque suivante : à l'époque héroïque de la téléinformatique, chaque grand utilisateur se construisait son propre réseau de transfert de données avec ses propres protocoles et son propre système de supervision. Par la suite, il a fallu ouvrir ce réseau à d'autres utilisateurs que ceux de l'entreprise, que ce soient ses clients, ses fournisseurs voire le grand public. Les problèmes d'évolution et de dimensionnement se sont posés à partir de ce moment. Puis apparurent des réseaux "public" tels que TRANSPAC qui fournissaient un service réseau conforme aux normes internationales et qui garantissaient l'évolution de ce service, tant en termes de respect des nouvelles normes qu'en dimensionnement, les coûts de ces évolutions étant répartis entre l'ensemble des abonnés. Une des ambitions de VERIDIAL est de réussir ce tour de force dans le domaine de la sécurité en pariant sur le fait qu'à terme, les solutions-maisons poseront les mêmes problèmes que ceux qu'elles ont posés en téléinformatique et qu'un prestataire spécialisé dans ce domaine saura être moins cher et plus performant grâce en particulier à la mutualisation des coûts. Ce pari est moins évident que le précédent. En effet, on touche ici à une fonction sensible, la sécurité, que les entreprises n'aiment pas trop voir sortir à l'extérieur de leurs enceintes. Toutefois, on peut remarquer que l'on fait depuis longtemps confiance aux banques pour conserver et gérer notre argent. Pourquoi n'en serait-il pas de même pour les moyens nécessaires à la mise en oeuvre des fonctions de sécurité ?

Conclusion 1992

VERIDIAL a connu bien des déboires depuis sa création. Les retards dans le développement du système font que le service qui devait démarrer en 1990 n'a toujours pas vu le jour (1992). Depuis fin 1991, VERIDIAL a été repris par la société TRANSPAC qui tente de remettre le projet sur pied. Une difficulté supplémentaire due à ce nouveau contexte a également vu le jour : TRANSPAC dispose de son propre système de sécurisation des échanges (SEI ou CERDIAL) qui, s'il n'est pas officiellement concurrent de VERIDIAL, n'en recouvre pas moins certaines caractéristiques...

Conclusion de 1993

Il est également intéressant de tenter de comprendre pourquoi ce projet a finalement échoué au regard des 13 commandements pour lancer un projet.

Une anecdote "amusante" à ce propos est que ces commandements m'ont été fournis par le premier Directeur Général de la société VERIDIAL. Comme quoi...

Ci dessous, les commandements et un commentaire.

Naissance du besoin

  1. le besoin de sécurité : les banques, principaux intéressés par ce projet, mènent depuis longtemps une politique de sécurité concernant les échanges entre eux et les trésoriers d'entreprises. Les différents protocoles ETEBAC (Echanges Télématiques Entre les Banques et leurs Clients) sont là pour le démontrer. La version 5 des protocoles ETEBAC (échanges télématiques entre les banques et leurs clients) atteignent un sommet pour ce qui est de ce point.
  2. la démarche mercatique : ce point était déjà en partie acquis pour ce qui était des échanges entre les banques et leurs clients.
  3. recherche d'économies : cette économie était surtout valable pour les banques puisque les transactions transitant par VERIDIAL devaient être payantes. Toutefois, l'étude de marché réalisée préalablement à la création de VERIDIAL montrait que les grands clients étaient prêt à payer.
  4. le souci de modernité : on peut douter que ce facteur ait joué de manière importante dans la décision de créer VERIDIAL. Toutefois, on peut le considérer comme un sous-produit du projet dont les banques utilisatrices auraient sans doute profité.

Initialisation

  1. cohésion des décideurs : superficiellement, les principaux décideurs pouvaient apparaître comme cohérents dans le souhait de lancer ce projet. Pour France-Télécom, il y avait là l'opportunité de pénétrer le secteur bancaire dans le domaine des réseaux à valeur ajoutée. Pour les banques, la présence de ce grand opérateur était une garantie de pérennité et elles trouvaient également le moyen de mutualiser les coûts liés aux besoins de sécurité. Toutefois, il faut préciser que ces mêmes banques avaient en ETEBAC5, un projet banco-bancaire concurrent de VERIDIAL. Il existait même une concurrence interne dans le groupe des actionnaires sur ce sujet (en particulier entre la BNP et le Crédit-Lyonnais). Il semble qu'une grande part de l'échec de VERIDIAL soit né de ces diverses concurrences. En fait, les banques auraient probablement souhaité que VERIDIAL gère ETEBAC5 pour elles ce qui n'a jamais été pris en compte dans les objectifs techniques initiaux du projet.
  2. la taille de l'application : il s'agissait certes d'une grande application mais pas suffisamment pour que cela présente un risque dans sa réalisation, pour peu que celle-ci soit menée dans les règles de l'art, ce qui ne fut pas le cas, la société Télésystème, filliale de France-Télécom et maitre d'oeuvre de la réalisation du système ayant fait montre d'une incompétence assez dramatique. Pour l'histoire, les autres sociétés qui avaient répondues étaient CAP-SESA (la meilleure réponse technique) et SLIGOS associé à OST (réponse originale mais risquée. OST pour Ouest Standard Télématique).
  3. les investissements : le capital de VERIDIAL permettait de couvrir l'investissement lié à la réalisation du projet et à sa première année d'exploitation.
  4. l'affirmation d'une volonté politique : cela n'a pas été le cas dans ce projet mais il n'y en avait pas besoin.

Développement

  1. demande mobilisable : dans une certaine mesure, les banques avaient la possibilité d'imposer le système à leur client.
  2. normalisation : sans aller jusque là, le projet prévoyait une extension de VERIDIAL dans certains pays étrangers qui aurait pu alors devenir un standard de fait.
  3. la concurrence : à part ETEBAC5 qui n'en était qu'au stade de la définition, il n'y avait pas de systèmes réellement concurrents. Le SEI de TRANSPAC (CERDIAL) aurait pu le devenir dans une certaine mesure mais s'agissant d'un projet France-Télécom, ce dernier aurait sans aucun doute trouvé le moyen de jouer la complémentarité plutôt que la concurrence. C'était d'ailleurs la façon dont TRANSPAC présentait ces deux services lorsque cette société filiale de France-Télécom a repris en main VERIDIAL en 1992.
  4. services supplémentaires : de nombreux services nouveaux utilisant la plate-forme matérielle et logicielle de VERIDIAL avaient été imaginés.
  5. performances et coûts : le système s'avérait plus agréable à utiliser et offrait plus de services que les systèmes ETEBAC1 à 4 proposés par les banques. Le coût des équipements spécifiques était quasi nul pour les clients déjà équipés de systèmes ETEBAC (principale cible visée). Le seul élément spécifique au système était un lecteur de carte (environ 1300FHT à l'époque ou 50FTTC par mois s'il s'agissait d'un LECAM).

Le non respect du cinquième commandement est probablement celui par lequel le mal est arrivé. Mais nous ne serions pas honnête en ne citant pas le déclencheur qui a fait qu'un jour, les banques ont décidé de jeter l'éponge. Le développement du projet a démarré en Mai 1989. L'ouverture du service avait été prévue en Juin/Septembre 1990. Fin 1990, les premiers tests de conformité et tests en charge commençaient à peine. Ils s'avérèrent peu concluant et les corrections qui suivirent ne permirent pas d'arriver au niveau de service requis. En d'autre termes, le développeur de l'application ne se révéla pas être à la hauteur (Télésystème, aujourd'hui disparu) et il est curieux que ce point ne soit pas cité dans les commandements, comme si la technique allait de soi... Fin 1991, il fut décidé d'arrêter tous les développements et de faire un état des lieux. En d'autre terme, il fallait faire un point sur ce qui avait été développé et un énorme travail de rétro-ingénierie s'ensuivi. Ce travail s'acheva fin 1992. Quelques mois plus tard, les banquiers faisaient savoir à France-Télécom qu'ils ne seraient pas client pour ce système. Entre-temps, ETEBAC5 avait progressé, les logiciels de gestion de trésorerie commençaient à intégrer ce nouveau moyen de communication.

Conclusion 2013

Regardez la conclusion n°3 du chapitre suivant qui parle du marché de la signature électronique et qui s'applique aussi bien à CERDIAL qu'à VERIDIAL.

BIBLIOGRAPHIE

[1] Spécifications techniques d'Utilisation du seRvice VERIDIAL, VERIDIAL, 1990.

CERDIAL, préhistoire de la signature électronique

Dans les années 92, la société TRANSPAC a proposé un service de Sécurisation des Echanges de Données (SEI) connu sous le nom commercial de CERDIAL. Comme VERIDIAL, ce service a été un échec. A ma connaissance, il n'a jamais eu de client. Ce qui suit a été écrit en 1992. Je l'ai laissé dans l'état jusqu'à la deuxième conclusion de ce chapitre.

Services proposés par CERDIAL

Les services de base proposés par CERDIAL sont l'identification et l'authentification des partenaires, le contrôle d'intégrité des messages et des fichiers transmis et la non répudiation réciproque. Un service de confidentialité est également proposé.

Toutes les fonctions de sécurité proposées sont effectuées à l'aide d'une CAM et d'équipements spécifiques proposés en location par TRANSPAC.

Principes généraux

img

Un correspondant noté E soucieux de protéger des données qu'il souhaite transmettre à un correspondant noté R va devoir effectuer les opérations suivantes :

A la réception des données accompagnées du bloc de sécurité, R pourra vérifier la validité de ce bloc en faisant appel à un serveur de sécurité accessible à travers le réseau. Le rôle de ce serveur est le suivant :

Suite à la demande de vérification faite par R au serveur de sécurité, R reçoit donc un certificat qui prouve l'existence et l'intégrité de la transaction avec E.

Il est à noter que E peut également être destinataire d'un certificat (s'il en a fait la demande) qui prouvera que R a bien reçu les données émises (notion d'accusé de réception).

Comme dans le cas de VERIDIAL, la carte utilisée, son algorithme et le mode opératoire retenu permettent en une seule opération d'obtenir :

Carte  utilisée

La carte à mémoire utilisée est du type PC1. Elle a été développée par le CCETT et est commercialisée par Bull-CP8. Son algorithme privé VIDEOPASS est de type symétrique mais peut être dissymétrisé lors de la personnalisation ce qui permet la mise en oeuvre de la fonction de signature électronique.

Tarification

Les tarifs indiqués ici sont ceux définis à la date du 1er Mars 1992. Ils sont donnés à titre purement indicatifs afin que le lecteur puisse disposer d'un ordre de grandeur du coût de la sécurité.

Ces prix n'incluent pas l'abonnement au réseau TRANSPAC ni les coûts de communications à travers ce réseau.

Différences et complémentarités entre CERDIAL et VERIDIAL

Architecture

A la différence de VERIDIAL, le serveur de sécurité du SEI ne se place pas en intermédiaire dans la communication. Il faut plutôt le considérer comme un abonné particulier sur le réseau chargé de fournir des certificats aux différents interlocuteurs. La possibilité de récupérer les certificats via la messagerie ATLAS 400 accentue encore la différence d'approche entre VERIDIAL et le SEI. Dans le cas de VERIDIAL, le message reçu doit être immédiatement traité (au sens VERIDIAL du terme) de façon à fournir une réponse immédiate à l'émetteur. Le fonctionnement de VERIDIAL s'approcherai donc plus d'un transactionnel sécurisé ce qui n'est pas forcément le cas du SEI.

Abonnement

En théorie, il n'est pas nécessaire au TA de s'abonner à VERIDIAL pour bénéficier du service proposé. C'est au moment de la première connexion qu'un compte sera alimenté et ensuite débité pour l'utilisation de chaque service. De plus, il n'est pas non plus nécessaire au TA de s'abonner à un réseau de communication informatique particulier (si l'on exclu le RTC) ce qui n'est pas le cas du SEI.

Typologie d'application

VERIDIAL a été conçu initialement pour sécuriser des messages de type "ordre" (ordres bancaires). Le service proposé n'est pas symétrique. On distingue nettement un émetteur d'ordre (le TA) et un récepteur (le SAP) ayant des fonctions fondamentalement différentes.

Le SEI se veut quant à lui indépendant des modes de communication et d'application. Il semble bien adapté à la sécurisation de transferts de fichiers, messages bureautiques, EDI etc...

Services

VERIDIAL propose des services très divers et bien adaptés aux besoins de la profession qui a été à l'origine du système (les banques). La fonction notariale en est la pierre angulaire. Le SEI est plutôt un élément destiné à s'insérer dans une politique de sécurité propre à chaque groupe d'utilisateur.

Conclusion 1 (1992)

Du fait de l'aspect très généraliste du SEI, il serait parfaitement envisageable de créer un système équivalent à VERIDIAL à partir de cette brique de base. Toutefois, cette présentation de la situation est en partie biaisé car il faut se rappeler que VERIDIAL est, du moins en théorie, antérieur au SEI (la mise en service de VERIDIAL était prévue pour mi 90, celle du SEI pour 92). Néanmoins, les retards pris dans la réalisation de VERIDIAL (en 1992, le service VERIDIAL n'était toujours pas ouvert) pourrait mettre cette idée à l'ordre du jour.

Inversement, VERIDIAL pourrait être utilisé comme serveur de sécurité pour le SEI. Initialement, le serveur VERIDIAL avait en effet été conçu comme une sorte de boîte à outils de sécurité au dessus de laquelle il devait être possible de greffer de multiples applications, la première étant celle qui est annoncée, la suivante devant être précisément un serveur de sécurité.

Actuellement, le seul élément apparaissant comme certain est que VERIDIAL, en tant que système spécifique, ne survivra que si le marché bancaire visé se décide à l'utiliser et à le rentabiliser (le SEI, en tant que système intégré à TRANSPAC peut quant à lui se permettre d'être en position d'attente jusqu'à ce qu'un marché de sécurisation des transmissions se développe). L'arrivée et le développement d'ETEBAC5 risque de contrecarrer celui de VERIDIAL pour lequel TRANSPAC devra alors prendre une décision. Aller plus loin dans les conjectures n'est plus du domaine de cet ouvrage.

Conclusion 2 (1998)

La conclusion 1 datait de 1992. En 1998, VERIDIAL et CERDIAL ne sont plus que des noms connus de quelques vieux loups de mer de l'informatique. ETEBAC5 lui même n'a pas eu un grand succès. Jusqu'en 1995, on pouvait encore imaginer des successeurs plus heureux à ces systèmes. Ici comme ailleurs, la révolution Internet leur a fait prendre brutalement un sacré coup de vieux.

Conclusion 3 (2013)

13 ans après la directive européenne 1999/93/CE sur la signature électronique, les applications dans ce domaine peinent à se développer, et ceci, malgré l'explosion de l'internet en France, en Europe et dans le monde. On a cherché beaucoup de raisons à cet échec qui ressemble fort à ceux de VERIDIAL et de CERDIAL. Les études menées par la commission européenne mettent en avant le manque d'interopérabilité des implémentations de la directive dans les pays de la communauté. Il semble que personne n'ose avouer, sauf en privé, que la vraie raison est qu'il n'y a pas (encore) de réels besoins. La révision de la directive en 2012/2013 permettra peut-être de redonner un coup de fouet à ces solutions... Rendez-vous dans quelques années.

img  img