Historique, concepts, sécurité des cartes, TP
© Pascal Chour, 1989 - 2021
Mise à jour, juillet 2021, 10ème édition indice 8
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 PIN 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.
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.
Carte Laser Drexler, 2Mo
Carte Laser Canon, 2Mo
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
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 :
- d'améliorer les performances techniques par rapport à une carte magnétique,
- de diminuer de manière importante les possibilités de duplication ou de reproduction.
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
La carte F256 est un monocomposant contenant principalement :
- une logique d'accès et de contrôle,
- une mémoire non volatile (EPROM) de 256 bits.
Organisation de la mémoire
La mémoire est structurée en 8 blocs de 32 bits. Elle est divisée en deux zones :
- une zone de 96 bits protégés en écriture par un fusible en polysilicium,
- une zone de transaction de 160 bits.
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 :
- interface entre la mémoire et l'extérieur,
- remise à zéro du compteur d'adresse,
- incrémentation du compteur d'adresse,
- lecture du bit pointé par le compteur d'adresse,
- écriture (mise à un) du bit pointé par le compteur d'adresse et vérification de l'écriture,
- autorisation d'écriture dans la zone protégée.
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.
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 :
- des informations systèmes nécessaire au bon fonctionnement de la carte avec le lecteur (bits 5 à 8 et 81 à 84),
- un mot de contrôle certifiant le contenu de la zone protégée (bits 1 à 4),
- un code permettant d'identifier le prestataire. L'émetteur de la carte garanti que ce code est unique (bits 85 à 88).
- les autres bits disponibles permettent d'enregistrer une information propre au prestataire (N( de série, valeur d'authentification, etc...).
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.
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
La carte MZ9 est une carte monocomposant conçue par Schlumberger qui contient principalement :
- une logique d'accès,
- une mémoire EPROM non volatile de 9216 bits (9 k bits).
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 :
- interface entre la mémoire de la carte et l'extérieur. On ne peut adresser directement la mémoire de la carte,
- décodage des micro-instructions,
- pointage des adresses et décodage des zones,
- contrôle d'accès en lecture/écriture aux différentes zone,
- mémorisation des états internes,
- lecture du bit pointé par le compteur d'adresse,
- écriture et vérification du bit pointé,
- blocage de la carte après présentation de trois codes faux consécutifs,
- déblocage de la carte sous contrôle de la clé émetteur.
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 :
- la remise à zéro du compteur d'adresse,
- l'adressage d'une zone par incrémentation du compteur d'adresse,
- la ratification de la transaction,
- la lecture ou l'écriture du bit adressé par le compteur d'adresse.
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 :
- Code E = code émetteur
- Code P = code porteur 1 ou 2
- V = bit de verrouillage
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 :
- Exploration de la zone d'état pour repérer la configuration de blocage.
- présentation du code émetteur.
- écriture des bits d'adresse impaire pour avoir des doublets neutres (11).
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
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 :
- authentification du porteur par code secret,
- mémorisation des tentatives d'accès frauduleux,
- mémorisation du nombre de cycles d'écriture/effacement,
- possibilité de changer sous condition le code porteur de la carte par un autre.
Description de la mémoire
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.
- Si la carte n'est pas personnalisée, cette zone contient une clé inscrite par Gemplus. Elle devra être présentée à la carte pour que celle-ci accepte d'être personnalisée.
- Lorsque la carte est personnalisée, cette zone contient le code porteur de la carte.
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.
- s'il vaut 1111, la clé présentée était bonne,
- pour chaque clé fausse présentée, un bit est grillé dans le compteur. Si la valeur du compteur vaut 0111, cela signifie qu'il y a eu une présentation d'un code faux, s'il vaut 0011, il y a eu deux présentations de codes faux, etc...
- s'il vaut 0000, la carte est bloquée.
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 :
- les premières cartes GPM416 nécessitaient une tension particulière pour permettre le grillage du fusible de personnalisation. En pratique, ce fusible ne pouvait être grillé que par Gemplus sauf à disposer d'équipements spéciaux. Les nouvelles cartes proposées par Gemplus peuvent être personnalisées par tous les lecteurs capable de gérer l'interface électrique de la GPM416. Le fusible physique a été remplacé par un fusible logique. Le grillage du fusible correspond maintenant à une écriture d'un bit dans la mémoire. Cette carte n'est à notre connaissance diffusée que par Gemplus.
- Le compteur d'effacement de la carte diffusée par Gemplus n'autorise que 64 effacement de la zone de transaction. D'autres fournisseur de cartes ont proposés le ST1301A qui autorise un nombre d'effacements "illimité" (quelques milliers). Par contre, ce composant a toujours un fusible physique pour marquer la fin de la phase de personnalisation.
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 (documentation pdf) 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 :
- écriture de deux octets de test situés en début et en fin de mémoire afin de vérifier le bon fonctionnement de la puce.
- écriture d'un numéro de série de la carte. Ce numéro de série comporte un numéro de séquence et un numéro d'encarteur (1 pour Bull-CP8, 2 pour PHILIPS, etc...). L'encarteur garanti que ce numéro ne se retrouvera pas dans une autre carte. Il faut savoir qu'une partie de la sécurité de la carte bancaire est basé sur l'unicité de ce numéro.
- inscription d'une clé de fabrication. Cette clé sera utilisée durant la phase suivante.
- inscription du type d'application. Cette information est spécifique à la carte M4 et sera détaillée ultérieurement.
- inscription du numéro de lot de la carte. Cette information sera utilisée dans la phase suivante.
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 :
- la plus importante est liée au coût de la carte même et à sa relativement faible capacité de mémorisation. (1koctet pour la carte M4). Certaines applications de la CAM ne sont pas envisageables pour cette seule raison. Dans beaucoup de cas, cet inconvénient a disparu avec l'arrivée sur le marché de cartes disposant d'une plus grande capacité de mémorisation (8koctets pour la M64) et de cartes effaçables électriquement (utilisant une mémoire EEPROM).
- il n'est pas toujours facile pour l'utilisateur de maîtriser la consommation de sa carte. Il risque donc de se trouver brusquement privé d'un service par le simple fait que la mémoire de sa carte se sature.
Organisation de la mémoire
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.
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 :
- dans quelle phase de sa vie se trouve la carte (invalide, personnalisée). Ces phases sont matérialisées par des verrous logiques.
- Les adresses des autres zones.
- Le type de protection associé à la zone de transaction (cf zone de transaction).
- Le type de l'application. Il s'agit en fait d'un numéro inscrit à une adresse particulière permettant de distinguer des cartes émises pour des applications différentes. Etant donné l'absence de normalisation dans ce domaine (à l'époque), chacun était libre de mettre le numéro qu'il désirait ce qui rendait cette information peu utilisable. Toutefois, Bull réserva le numéro #3FE5 (hexadécimal) aux cartes bancaires et #3FE2 aux cartes Pastel en pré-positionnant les bits de cette zone de façon à ce que d'autres émetteurs ne puissent inscrire ces valeurs.
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 :
- le code confidentiel ou code porteur (clé 2A) : il s'agit du code que le porteur de la carte devra présenter à la carte pour s'identifier comme étant bien son détenteur légitime. Ce code peut être changé une seule fois. Sa référence est alors "clé 2B".
- la clé du prestataire principal (clé 1A) : cette clé que seul le prestataire principal connaît (l'émetteur de la carte par exemple) lui permet de signer les informations qu'il inscrit dans la zone de transaction. C'est également à l'aide de cette clé et du code porteur qu'il sera possible de débloquer une carte bloquée.
- la clé du prestataire secondaire (clé 1B) : cette clé, que seul le prestataire secondaire (et éventuellement le prestataire principal) connaît lui permet de signer les informations qu'il inscrit dans la zone de transaction.
- le jeu secret : ce jeu secret est utilisé par la carte pour effectuer des calculs (chiffrement, certification). Il n'est connu que du prestataire principal et lui seul est capable de vérifier la validité des résultats fournis par la carte lors d'une demande de calcul.
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 :
- La zone d'Etat fait deux mots de 32 bits. Ces mots sont effaçables.
- Le mécanisme de grillage des bits est le même que celui décrit précédemment
- Lorsque tout se passe bien, la carte utilise le premier mot, puis passe au second lorsqu'il est plein et efface ensuite le premier mot, puis, lorsque le deuxième mot est plein, repasse au premier, etc.
- Si des codes faux sont présentés, la carte n'efface pas les mots déjà remplis. Elle consomme des quartets pour mémoriser la situation de blocage jusqu'à les avoir tous consommé ce qui arrive très vite (31 tentatives). Lorsque tous les quartets sont consommées, la carte se déclare saturée est devient inutilisable (sauf à être invalidée.
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 |
- CI est la classe d'ordres de la carte M4 (#BC en hexadécimal),
- OR est le code opération à exécuter,
- PAR1 est le premier paramètre de l'opération,
- PAR2 est le deuxième paramètre de l'opération,
- LG est la longueur des informations à transférer suite à la prise en compte de l'ordre.
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
- 1 = composant fabriqué par MOTOROLA,
- 2 = composant fabriqué par EUROTECHNIQUE.
MCF : caractéristiques fonctionnelles
- 4 = masque 4 de Bull-CP8
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)).
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 :
- la carte est en technologie E²PROM (carte effaçable),
- les règles d'effacement sont régies par de nouveaux bits systèmes situés en zone de fabrication,
- l'algorithme cryptographique est le DES mais le mode opératoire reste le même qu'avec TELEPASS,
- la zone d'état (zone de ratification) peut se recycler automatiquement. Sa longueur peut alors être de deux mots,
- la zone confidentielle est vue comme une deuxième zone de transaction,
- elle est compatible avec la carte M4 au niveau des ordres.
BIBLIOGRAPHIE
Manuel Utilisateur de la carte M4, Bull-CP8, 1986.
La carte M9 ou SCOT de Bull-CP8
La carte au masque 9 (documentation pdf), également connue sous le nom de "SCOT" dérive de la carte M4.
Elle a été produite en plusieurs versions :
- SCOT10, 6ko de ROM, 8ko d'EPROM, algorithme cryptographique Telepass, une zone de travail, un changement de code porteur possible
- SCOT20, 6ko de ROM, 8ko d'EPROM, algorithme cryptographique DES, deux zones de travail, un changement de code porteur possible
- SCOT50, 3ko de ROM, 1ko d'E²PROM, algorithme cryptographique Telepass, une zone de travail, un changement de code porteur possible
- SCOT60, 3ko de ROM, 1ko d'E²PROM, algorithme cryptographique DES, deux zones de travail, n changements de code porteur possible
- SCOT100, 6ko de ROM, 3ko d'E²PROM, algorithme cryptographique Telepass, une zone de travail, 1 changement de code porteur possible
- SCOT110, 6ko de ROM, 3ko d'E²PROM, algorithme cryptographique DES, deux zones de travail, n changements de code porteur possible
Pour ceux qui veulent en savoir plus (caractéristiques, partition mémoire), consultez cette page.
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 :
- une zone confidentielle est protégée en lecture et en écriture interdite.
- une zone de transaction est protégée ou non en lecture et/ou en écriture en fonction de bits d'état positionnés lors de la personnalisation.
- Certains modèles de cartes ne peuvent pas avoir deux zones de travail. Elles ne peuvent avoir qu'une zone confidentielle et une zone de travail.
- Certains modèles de cartes peuvent avoir au choix, deux zones de travail ou une zone confidentielle et une zone de travail.
- L'existence de deux zones peut être remise en cause en fonction de la valeur des pointeurs qui désignent où commence et où s'arrête une zone. Si l'adresse de début d'une zone 1 est égale à l'adresse du début d'une zone 2 (celle immédiatement adjacente dans le sens des adresses croissantes), alors, la zone 1 n'existe pas.
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 :
- Si EPi = 0, la zone est protégée en écriture. Les bits V, C et CA de chaque début de mot sont des bits systèmes.
- Si EPi = 1, la zone est en écriture libre. Le bit V de chaque début de mot peut être utilisé comme bit de données.
- Si LPi = 0, la zone est protégée en lecture
- Si LPi = 1, la zone est en lecture libre
- Si la carte ne gère qu'une zone de travail et une zone confidentielle, seuls les bits EP1 et LP1 ont une signification et s'appliquent à la zone de travail dite, zone de travail 1. La zone confidentielle est toujours protégée en lecture et est en écriture interdite
- Si la carte est en mesure de gérer deux zones de travail, il existe alors un bit Z2 qui indique combien il y a de zones de travail. Si Z2=1, il n'y a qu'une zone de travail (la zone de travail 1) et l'autre zone est une zone confidentielle. Si Z2=0, il y a deux zones de travail (nommées zone de travail 1 et zone de travail 2) et alors, les droits d'accès sont définis par EPi et LPi y compris pour la deuxième zone de travail
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 :
- ECi = 11, effacement interdit
- ECi = 10, effacement protégée par code porteur (2A ou 2B)
- ECi = 01, effacement protégé par clé 1B
- ECi = 00, effacement protégé par clé 1A
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).
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 :
- Création d'un fichier "clés" contenant le code secret du porteur.
- Création d'un fichier "identité du porteur".
- Création d'un fichier "banque" contenant un numéro de compte bancaire (RIB, numéro de carte bleue, etc...).
- Création d'un fichier "tarification" pour chaque critère de tarification possible.
- Création d'un fichier "porte-monnaie" permettant d'inscrire un crédit et des débits.
- Création d'un répertoire par prestataire (si nécessaire) afin d'y stocker les éventuelles informations liées à ce service (numéro d'inscription, tarification propre), un éventuel porte-monnaie privé, etc... (toutefois, la carte ne gère pas les soldes pour les porte-monnaie).
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 :
- les lectures d'enregistrements,
- les créations/écritures d'enregistrements,
- les effacements d'enregistrements,
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 :
- LG : longueur de l'en-tête et des données utiles en octet.
- NOM : nom de l'enregistrement.
- AF : chaînage avant.
- AR : chaînage de remplacement si AF ne peut être écrit correctement.
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 :
- LG : est la longueur de l'entête y compris LG.
- NOM : est le nom du fichier. Les valeurs #0000 et #FFFF sont interdites. Elles correspondent respectivement à "fichier effacé" et "dernier fichier".
- AF : chaînage avant.
- AR : chaînage de remplacement.
- A1 : adresse du premier enregistrement du fichier (ou du premier fichier du répertoire).
- RA : règles d'accès.
- CLE : clé du fichier. Elle est facultative.
- N : nombre d'enregistrement du fichier physique.
- M : nombre d'octet d'un enregistrement du fichier physique.
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 :
- Qx = 0xxx : fonction interdite.
- Qx = 101x : fonction autorisée après présentation de la clé du fichier ou du répertoire.
- Qx = 110x : fonction autorisée après présentation du code porteur.
- Qx = 100x : fonction autorisée après présentation de la clé du fichier ou du répertoire et du code porteur.
- Qx = 111x : fonction libre.
En d'autres termes, b3=0 indique que la fonction est interdite. Si b3=1, les autres bits indiquent le type de protection :
- b2=0 protection par la clé du fichier ou du répertoire.
- b1=0 protection par le code porteur.
- b0 non utilisé.
Q4 : donne le type du fichier.
- Q4 = xxx0 : répertoire.
- Q4 = xx01 : fichier logique.
- Q4 = x011 : fichier physique.
- Q4 = 0111 : réservé pour usage futur.
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
- Ordre RAZ : pour les principes, voire la carte M4.
- Création d'un fichier : NOM, règles, clé, M, N. Création d'un fichier logique ou physique. Si le fichier est physique, M représente le nombre d'enregistrement, N le nombre d'octets d'un enregistrement.
- Ouverture d'un fichier (ou d'un répertoire) : Nom. Permet de se positionner et d'ouvrir le fichier de nom donné.
- Fermeture d'un fichier : fermeture du dernier fichier ouvert. Si le fichier est un répertoire, on remonte au répertoire du niveau supérieur.
- Destruction d'un fichier : Nom. Destruction du fichier de nom donné dans le répertoire courant.
- Changement de la clé d'un fichier : clé. Permet de changer la clé du fichier ou du répertoire (création d'une nouvelle entête de fichier). Il faut avoir au préalable présenté l'ancienne clé.
- Création d'un enregistrement : Nom, Longueur, Données. Création de l'enregistrement du nom donné. On indique la longueur de l'enregistrement et on fournit les données à inscrire. Si le nombre d'octets de données est inférieur à la longueur indiquée, l'enregistrement est complété à #FF. On peut donc créer un enregistrement vide.
- Lecture d'un enregistrement : Nom, longueur. Lecture de "longueur" octets de l'enregistrement de nom donné dans le fichier courant. Cet ordre concerne les fichiers logiques.
- Lecture de N octets d'un enregistrement : Adr., N. Lecture de N octets dans l'enregistrement Adr d'un fichier physique. Adr doit être inférieur ou égal au nombre d'enregistrements du fichier. N doit être égal au nombre d'octets contenus dans l'enregistrement.
- Ecriture dans un enregistrement : Nom, Longueur, Données. Permet d'écrire dans un enregistrement déjà créé d'un fichier logique. On remarque qu'il est donc possible de surcharger un enregistrement déjà écrit (à condition que le bit V ne soit pas positionné).
- Ecriture dans un enregistrement : Adr, N, données. Permet d'écrire dans un enregistrement d'un fichier physique. Adr est l'adresse de l'enregistrement, N, le nombre d'octets à écrire qui doit être égal à celui indiqué lors de la création du fichier.
- Effacement d'un enregistrement : Nom. Cet ordre ne concerne que les fichiers logiques. Il permet de détruire l'enregistrement de nom donné.
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.
- Chiffrement DES : Nom enregistrement, données. Les données fournies sont chiffrées par la clé indiquée.
- Déchiffrement DES : Nom, données. Les données fournies sont déchiffrées par la clé indiquée.
- Chiffrement MAC : Nom, données. Les données fournies sont chiffrées par la clé indiquée.
- Déchiffrement MAC : Nom, données. Les données fournies sont déchiffrées par la clé indiquée.
- Lecture du résultat
- Permet de lire le résultat du calcul DES. Les ordres qui suivent concernent les présentations de codes secrets. Ces présentations peuvent être chiffrées ou en clair. On utilise un mode ou l'autre selon le degré de sécurité désiré :
- Si un code est présenté en local, la présentation en clair pourra suffire. Si ce code doit être transmit sur un réseau, il sera préférable d'utiliser une présentation chiffrée. Dans ce dernier cas, il faudra utiliser le générateur de nombres aléatoires de la carte.
- Présentation en clair de la clé d'un fichier : données. Les données contiennent la clé du fichier sur lequel on s'est positionné.
- Présentation chiffrée de la clé d'un fichier : données. Les données contiennent la clé chiffrée du fichier sur lequel on s'est positionné.
Principes :
- On demande à la carte un nombre aléatoire R. Le terminal effectue le calcul suivant :
- VAL=DES(R,CLE) où CLE est la clé du fichier en question. Le résultat VAL est fournit à la carte.
- Celle-ci effectue le calcul : R = DES-1(VAL,CLE)
- Si le résultat R est identique à celui qui a été fournit, la clé présentée est bonne.
- Présentation du code secret en clair : données. Il faut au préalable se positionner sur le fichier "CM" qui contient le code porteur de la carte.
- Présentation chiffrée du code secret : données. Le principe est le même que pour la présentation d'une clé chiffrée. La clé de chiffrement utilisée est le code secret.
- Réhabilitation en clair de la carte : données. Il faut fournir à la carte la clé du fichier "CM" contenant le code porteur.
- Réhabilitation chiffrée de la carte : données. Même principe que ci-dessus mais en présentant l clé chiffrée selon ce qui a été exposé dans l'ordre "présentation chiffrée de la clé d'un fichier".
- Génération d'un nombre aléatoire. La carte fournit un nombre aléatoire de 8 octets.
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.
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
- Gestion de la mémoire
- Allocation de fichier,
- Allocation de répertoire,
- Protection des fichiers,
- Sélection d'un fichier,
- Accès en lecture,
- Accès en écriture,
- Accès en réécriture,
- Liste des répertoires,
- Liste des fichiers.
- Mots de passe
- Créations
- Présentation,
- Modification,
- Annulation,
- Réhabilitation.
- Algorithme DES
- Authentification réciproque,
- Utilisation de clé de session,
- Lecture/écriture chiffrées,
- Mots de passe chiffrés.
- Divers
- Fichier comptage,
- Recherche d'informations,
- Génération d'un pseudo-aléa.
- Contrôle d'intégrité d'un fichier,
- Aide au diagnostic.
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.
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.
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 :
- une totale banalisation des terminaux,
- une ouverture du système d'accès conditionnel à toutes les sociétés de programmes,
- une diminution radicale des risques de fraudes techniques (le processeur de sécurité "intégré" dans le terminal est, de ce point de vue, plus vulnérable, comme le prouve certaines expériences étrangères).
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 :
- au développement du marché de la réception directe du satellite TDF1 qui diffusera un bouquet de 5 programmes sur 4 canaux ainsi que de celui de TDF2,
- à l'élaboration, par des opérateurs commerciaux, de nouvelles offres de services distribuées sur les réseaux câblés.
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" :
- l'abonnement permet au téléspectateur d'acheter un programme pour une période donnée. L'opérateur de réseau câblé peut diversifier son offre en proposant différents thèmes (sport, musique) ou différents niveaux (tranches horaires).
- le paiement à la séance permet au téléspectateur d'acheter un programme à l'unité selon deux procédures : l'achat anticipé qui implique l'acquisition des droits avant la diffusion de l'émission et l'achat impulsif sur un crédit de droits préalablement autorisé par le centre de gestion du fournisseur de programme. Dans ce dernier cas il est procédé ultérieurement à un relevé de consommations pour calculer la rémunération des "ayants droits" et la facturation éventuelle du service.
- le paiement à la durée autorise le téléspectateur à payer le programme au prorata de la durée de visualisation (vidéo-clips, dessins animés, etc.)
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 :
- il est indépendant des réseaux de diffusion et peut être utilisé par plusieurs fournisseurs de programmes. Sa conception hiérarchique, en couches fonctionnelles, distingue clairement les fonctions liées à l'embrouillage-désembrouillage de l'image et des sons, à l'exploitation commerciale et à la gestion du système lui-même.
- c'est un système offrant deux niveaux de sécurité. Pour accéder au programme de son choix, le téléspectateur doit en effet posséder à la fois la clé d'exploitation du service désiré et un titre d'accès compatible avec les paramètres du programme. Ces informations sont inscrites dans la carte PC2 qui contient l'ensemble des clés d'exploitation et de gestion lié aux services demandés par l'usager ainsi que les droits acquis correspondants. Si les deux informations requises sont effectivement présentes dans la mémoire du micro-processeur, celui-ci peut restituer le mot de contrôle qui autorisera l'accès en clair au programme. Précaution supplémentaire, le mot de contrôle peut être renouvelé toutes les dix secondes.
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 :
- le fournisseur de programmes ou l'opérateur commercial des réseaux câblés conserve son autonomie de gestion de la ressource qui lui est affectée, l'autorité émettrice de la carte PC2 lui allouant une zone de service (dans le microprocesseur) où seront inscrites les clés secrètes (de gestion et d'exploitation) ainsi que les titres d'accès correspondant à ses programmes.
- un centre de traitement des données assure la gestion des différents titres d'accès en toute indépendance et selon toutes les modalités commerciales possibles (abonnement, paiement à la séance ou à la durée). Dans le cas d'un achat impulsif, c'est à dire d'un accès au programme payant sans réservation, les informations nécessaires à la facturation détaillée du service et à la rémunération des ayants-droits sont récoltées par le centre de gestion puis transmises aux sociétés de programme.
- le téléspectateur peut exercer un contrôle local de ses droits d'accès lui permettant de valider un achat en mode impulsif, de mémoriser des séances présélectionnées ou de restreindre l'utilisation de sa carte en créant un "code parental". Il peut préselectionner n'importe quel programme, quel que soit le mode d'achat de celui-ci. La mise à jour des droits d'accès est effectuée rapidement grâce à l'utilisation du réseau de diffusion des programmes et de l'adressage groupé des téléspectateurs.
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 :
- 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.
- 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.
- 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.
- 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.
- 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.
- 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 :
- abonnement déterminé par des dates de validité, des thèmes et des niveaux de programme (six niveaux possibles),
- abonnement déterminé par des dates de validité pour une liste de classe de programmes,
- achat anticipé à la séance déterminé par un domaine de numéros de programmes autorisés (la réservation peut être effectuée par minitel ou par téléphone),
- achat impulsif (c'est à dire sans réservation préalable) par ouverture d'un crédit de droits d'accès que l'usager consomme librement. La carte PC2 enregistre alors les programmes achetés par le téléspectateur pour une relève ultérieure en vue d'une facturation détaillée des consommations.
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 :
- La BNP, Banque Nationale de Paris (18,5% du capital),
- COGECOM (groupe France-Télécom, 38% du capital),
- La Compagnie Financière Edmond de Rothschild Banque (10% du capital),
- Le Crédit Lyonnais (18,5% du capital),
- Innovatron Smart-Card Venture N.V. qui possède les brevets de la Carte à Mémoire (5% du capital),
- Le Réseau Ecureuil (Caisses d'Epargne, 10% du capital),
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
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 :
- Toute utilisation d'un service proposé par VERIDIAL nécessite une identification préalable des TA. Cette identification est faite à distance en mettant en oeuvre les fonctions cryptographiques de son dispositif de sécurité. Selon le dispositif utilisé, l'identification authentifie le dispositif de sécurité et éventuellement identifie son utilisateur.
- Le TA envoie un message accompagné d'une signature S1 à destination d'un SAP via VERIDIAL. Cette signature porte sur un aléa et un horodatage envoyé par le serveur et un sceau calculé par le TA portant sur le message qu'il transmet.
- A la réception du message, VERIDIAL vérifie la signature et s'assure de l'intégrité du message reçu. Si tout est correct, VERIDIAL calcule alors une signature S2 portant, entre autres, sur le message reçu et sa signature et envoie l'ensemble au SAP destinataire.
- A la réception du message, le SAP vérifie la signature, s'assure de l'intégrité du message reçu et envoi un accusé de réception comportant une signature S3 à VERIDIAL.
- VERIDIAL vérifie S3, stocke les signatures S1, S2 et S3 et les éléments nécessaires à la vérification des preuves sur disque optique numérique. Enfin, il signale le bon déroulement du transfert au TA en lui envoyant un accusé de réception.
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 :
- les services directement rendus par VERIDIAL, à savoir la sécurisation de la transmission des messages et les services annexes décrits plus loin,
- la prestation du SAP rendue au TA appelée kiosque continu.
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 coûts des services rendus en temps réel sont débités du compte TA en temps réel,
- les services ne pouvant être rendus qu'en différé sont débités en différé.
Les SAP
Les coûts du service VERIDIAL sont facturés mensuellement.
Les raccordements
Pour les TA, VERIDIAL est accessible :
- directement par réseau téléphonique commuté,
- par R.T.C. via un PAD TRANSPAC,
- par TRANSPAC en X25 ou X32.
- via le réseau TELETEL lorsque le terminal TA répond aux spécifications du Minitel-LECAM.
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 :
- la carte Bancaire à puce au masque 4 (puis B4B0'),
- 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 :
- Création de compte,
- Approvisionnement de compte,
- Consultation de compte,
- Envoi d'un message,
- Historique des échanges,
- Vérification de preuves,
- Modification de compte,
Informations "VERIDIAL".
Chacun de ses services fait l'objet d'une "transaction" spécifique.
Le service VERIDIAL sait consécutivement à chaque connexion :
- authentifier le dispositif de sécurité (reconnaissance du type de dispositif, de l'organisme émetteur, authentification du dispositif de sécurité dans le cas des cartes à micro circuit) et déterminer les règles de gestion qui lui sont associées (facturation),
- identifier le porteur, en s'assurant que le code confidentiel a bien été présenté (cas des cartes à micro circuit essentiellement).
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
- 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.
- la démarche mercatique : ce point était déjà en partie acquis pour ce qui était des échanges entre les banques et leurs clients.
- 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.
- 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
- 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.
- 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).
- 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.
- 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
- demande mobilisable : dans une certaine mesure, les banques avaient la possibilité d'imposer le système à leur client.
- 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.
- 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.
- services supplémentaires : de nombreux services nouveaux utilisant la plate-forme matérielle et logicielle de VERIDIAL avaient été imaginés.
- 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
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 :
- calcul d'un condensé sur les données à transmettre à l'aide d'une fonction de compression (voir le chapitre "Utilisation des fonctions de compression" du présent ouvrage).
- le condensé obtenu sert d'entrée à un algorithme cryptographique dont la clé secrète est propre à E.
- transmission des données et du bloc de sécurité l'accompagnant à R.
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 :
- il agit en tant que tiers neutre vis à vis des correspondants du réseau. Il est le seul à pouvoir vérifier les calculs cryptographiques effectués par les cartes à mémoire des utilisateurs.
- il est à même de calculer des certificats horodatés permettant à R d'avoir la certitude que le bloc de sécurité reçu répond à certains critères.
- il peut gérer divers services pour le compte des utilisateurs tels qu'une liste d'interdits, l'horodatage des transactions, etc...
- enfin, sous réserve d'un accord entre un groupe d'utilisateur et TRANSPAC, il peut prendre en compte des dispositifs de sécurité spécifiques sous réserve qu'ils offre les mêmes services que ceux utilisés actuellement.
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 :
- une signature électronique accompagnant les données reçu avec tout ce que cela signifie en terme d'identification et authentification de E et de non répudiation,
- un contrôle d'intégrité des données reçues.
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é.
- Les prix sont en Francs Hors taxes.
- Carte à mémoire : 400 F pour la mise en service et 200 F d'abonnement mensuel.
- Demande de certificat : 1 F pour le service de base, 1,50 F pour le service avec options.
- Demande d'avis de réception : 1 F par avis.
- Périphérique de sécurité PERISEC : 400 F pour la mise en service et 250 F d'abonnement mensuel.
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.