Brevet FR2693815A1 — publié le 19940121

PROCEDE DE PROTECTION D'UN CLAVIER DE SAISIE DE DONNEES, ET CLAVIER POUR MISE EN OEUVRE. La présente invention se rapporte aux procédés qui permettent de protéger les claviers de saisie de données contre une observation frauduleuse par des tiers lors de cette saisie de données. Elle concerne aussi les claviers spécialement adaptés pour la mise en oeuvre de ce procédé. Elle s'applique plus particulièrement aux appareils qui sont destinés à utiliser une carte à circuit intégré, dite "carte à puce", et qui comportent un clavier permettant l'introduction de données, soit dans la carte, soit dans l'appareil sous le contrôle de cette carte. Les claviers de saisie de données, du genre de ceux utilisés dans les téléphones à touches, sont utilisés dans de nombreuses applications, dont un grand nombre réclament une protection contre l'interception par des tiers, éventuellement mal intentionnés, des données qui sont frappées sur ce clavier. L'exemple le plus connu est celui des distributeurs bancaire d'argent liquide, dans lesquels on introduit une carte d'accrédîtation et qui permettent au client d'obtenir des billets de banque, sous le contrôle d'un code secret contenu dans la carte et que le client frappe sur le clavier du distributeur. L'un des points faibles de ce système réside dans la lecture du code secret sur la carte, ce qui a longtemps été très facile, puisqu'il était contenu sur une piste magnétique sous une forme très accessible. Ce problème est maintenant résolu par les cartes à puce dans lesquelles le code secret est implémenté dans un circuit intégré contenu dans la carte, sous la protection d'un algorithme de cryptage qui fonctionne en liaison avec le processeur d'exploitation du distributeur de billets. Cette protection est suffisamment compliquée pour résister à toutes les tentatives de décryptage. Un second point faible pour ce genre de dispositif réside dans la possibilité pour un tiers de lire le code que frappe le client sur le clavier. Cette possibilité n'est nullement théorique, puisque l'on constate souvent des queues de gens qui se pressent autour du distributeur pour se faire délivrer de l'argent. Dans le cas particulier de ce distributeur, l'observation directe du clavier est plus ou moins protégée parce que celui-ci se trouve au fond d'un renfoncement de l'appareil, ce qui ne permet en principe qu'à la seule personne utilisatrice de pouvoir voir le clavier. Cette protection est cependant relativement illusoire, car dans certains distributeurs le masquage du clavier est très faible, et par ailleurs les gens mal intentionnés sont souvent très habiles à repérer même le simple mouvement des doigts qui composent le code. Ce problème a pris une acuité plus importante avec justement la multiplication des cartes de crédit comportant une puce. En effet ceci nécessite l'usage d'un clavier même pour les transactions de paiement courantes, et l'on constate que dans la pratique ce clavier est à la vue de tout le monde. C'est particulièrement le cas dans les lecteurs de cartes portables, parfois connus sous l'appellation anglo-saxonne de "pin pads", et que l'on vient présenter au client, à la table d'un restaurant par exemple. La disposition des touches est tout-à-fait standard et la plupart des clients frappent leur code d'une manière lente et réfléchie afin de ne pas commettre d'erreurs, ce qui facilite beaucoup la vison de ce code, même pour un voisin sans intention frauduleuse, comme tout le monde a pu le constater. Pour pallier cet inconvénient, l'invention propose un procédé de protection d'un clavier de saisie de données comportant un ensemble de touches sur chacune desquelles est affiché un caractère d'identification correspondant à une donnée à introduire par l'intermédiaire de cette touche, principalement caractérisé en ce que l'on modifie de manière aléatoire pendant au moins une partie de la saisie des données la répartition de l'affectation des données entre les touches, et les affichages correspondants. D'autres particularités et avantages de l'invention apparaîtront clairement dans la description suivante présentée à titre d'exemple non limitatif en regard des figures annexées qui représentent - La figure 1, un clavier de saisie de données selon l'art connu; - La figure 2, le schéma synoptique d'un dispositif permettant de mettre en oeuvre le procédé selon l'invention; et - La figure 3, une répartition particulière des touches d'un clavier de saisie de données selon l'invention. On a représenté sur la figure 1 un clavier ordinaire connu comportant 10 touches numériques disposées selon la configuration courante, ainsi q'une onzième et une douzième touches comportent respectivement les lettres C et V, l'une pour effacer les données rentrées, et l'autre pour les valider. C'est cette disposition figée qui amène les risques vus plus haut. On a représenté sur la figure 2, de manière très schématique, un dispositif permettant de mettre en oeuvre le procédé selon l'invention. Les différents organes sont représentés séparés et réunis par des connexions multifilaires, mais ils pourront bien entendu dans la pratique être intégrés dans un boîtier unique. Ce dispositif comprend un processeur central 201, un micro-processeur muni de ses mémoires par exemple. Ce processeur est réuni à un clavier 202, à un lecteur de carte à puce 203, à une imprimante 204, et à un dispositif de visualisation, ou afficheur, 205. Dans cet exemple, à l'état de repos les touches du clavier 202 ne comportent aucune inscription. On pourrait très bien concevoir qu'elles présentent des inscriptions diverses qui pourraient être aussi bien les chiffres et les lettres habituels répartis de manière standard, ou des inscriptions quelconques. Selon les applications, les modalités d'utilisation sont très diverses et l'introduction du code secret, ou des données à protéger, peut se faire à des moments différents, par exemple au tout début de la transaction, ou au cours de celle-ci (on appelle transaction l'ensemble des opérations effectuées par l'opérateur et le dispositif entre la mise en fonctionnement de celui-ci et son arrêt). Pour fixer les idées, dans cet exemple lorsque l'utilisateur introduit sa carte à puce 206 dans le lecteur 203, il déclenche l'initialisation du processeur 201, lequel active l'afficheur 205 qui va inviter l'utilisateur à frapper son code secret sur le clavier 202. Simultanément les touches de ce clavier changent d'état et l'utilisateur voit apparaître sur chacune d'entre elles un chiffre ou une lettre disposés selon une distribution aléatoire, ce caractère aléatoire étant caractéristique de l'invention. Cette distribution pourra être à un moment donné par exemple celle représentée sur la figure 3. Le client frappe alors son code secret et la transaction se continue, par exemple par l'introduction d'une somme à payer. Dans la suite de cette transaction, l'état du clavier 202 pourra alors être variable ou fixe, selon plusieurs variantes de l'invention. Ainsi la disposition des touches pourra rester celle initialisée au départ, mais elle pourra également revenir, sur la commande du processeur 201, à une disposition standard, utile par exemple pour effectuer une introduction rapide d'une grande quantité de données à saisir rapidement. La répartition pourra également changer en cours de saisie, une ou plusieurs fois, de manière régulière ou aléatoire, afin d'augmenter la sécurité de saisie des données, éventuellement très confidentielles, qui pourront être frappées après le code secret (ou avant selon le cas). On pourrait même changer la répartition des indications des touches après chaque frappe d'une seule touche, même pendant la frappe du code secret, pour obtenir une sécurité maximale. La disposition aléatoire des caractères des touches peut être obtenue de différentes manières connues. Il est courant de disposer dans les programmes d'exploitation des processeurs d'un sous-programme permettant de générer une suite de nombres aléatoires que l'on utilisera alors pour répartir les caractères dans les touches du clavier, en utilisant par exemple une table de transcodage dont les relations entrées/sorties sont obtenues à partir de ces nombres aléatoires. Très souvent cette répartition aléatoire n'est que pseudo-aléatoire, car elle provient d'un algorithme répétitif, mais la période de ces algorithmes est souvent très longue et donne dans la pratique strictement les mêmes avantages qu'une suite purement aléatoire. Une variante importante consiste à supprimer l'affichage du clavier, ou éventuellement à le modifier de manière aléatoire, en fin d'utilisation de l'appareil. Ceci permet d'empêcher quelqu'un qui aurait mémorisé, ou plus facilement filmé, le mouvement des doigts de l'utilisateur, de restituer le code secret à partir d'une lecture de l'état du clavier lorsque la transaction est finie. A la fin de la transaction, dans cet exemple, l'imprimante 204 sort un ticket 207 qui permet de matérialiser les résultats de la transaction effectuée. Pour pouvoir mettre en oeuvre l'invention, il faut bien entendu pouvoir disposer d'un clavier dans lequel la répartition des touches puisse être changée, tant du point de vue de leur signification que du point de vue de leur affichage. En ce qui concerne la signification des touches, ceci n'est pas un problème. En effet de manière courante les micro-ordinateurs du type "PC" comprennent des moyens permettant de réaffecter la signification des touches, afin par exemple d'obtenir des claviers adaptés à la pratique nationale des différents pays, par exemple en ce qui concerne les divers caractères accentués. En ce qui concerne l'affichage des caractères sur les touches, on connaît depuis longtemps des touches individuelles comportant des moyens divers permettant d'afficher un caractère plus ou moins quelconque sous la commande d'un signal extérieur. On connaît aussi des claviers plus ou moins étendus comportant un groupement de telles touches. Il y a eu aussi des tentatives pour réaliser des claviers d'ordinateurs comportant un affichage variable, notamment au niveau des caractères accentués dont on a parlé plus haut. Le plus souvent ces touches à affichage variable comportent des moyens lumineux permettant d'obtenir le caractère choisi. Les plus anciens étaient constitués d'une juxtaposition de caractères de petite taille, munis par derrière d'une lampe d'éclairage, ce qui donnait un affichage assez désagréable et difficile à regarder. On a ensuite utilisé des systèmes de projection, toujours à base de sources lumineuses et de masques découpés à la forme du caractère, mais la réalisation était compliquée et coûteuse. La technique la plus répandue actuellement consiste à utiliser une matrice de sources lumineuses de faibles dimensions, des diodes électroluminescentes, dites "DEL", par exemple, et à allumer les différentes sources de cette matrice selon le dessin du caractère à obtenir. Dans sa réalisation préférée, l'invention propose d'utiliser un afficheur à cristal liquide du type "LCD", représentant les touches du clavier et muni sur sa surface d'une couche tactile 208 (sensible à la pression des doigts) transparente dont les points sensibles sont disposés au dessus des cases représentant les touches et correspondant aux caractères à afficher. Ainsi donc, sous la commande du processeur, l'écran affichera une image du clavier, comportant les caractères souhaités, disposés dans un ordre aléatoire. L'utilisateur n'aura alors qu'à frapper les données à rentrer, son code secret par exemple, en appuyant sur la surface tactile de l'afficheur à l'endroit où se trouvent les caractères composant ces données ou ce code. Il existe de nombreux types d'afficheurs à cristaux liquides et on sait que l'un des inconvénients de ceux-ci réside dans les difficultés de vision correcte en dehors d'un cône relativement restreint centré sur la normale au plan de l'afficheur. Une grande partie des efforts techniques sur la réalisation de ce type d'afficheur a porté justement sur l'augmentation des dimensions de ce cône de vision correcte. Selon l'invention, on s'efforcera au contraire de diminuer les dimensions de ce cône, de manière à ce que dans la pratique seul l'utilisateur du dispositif pourra avoir une vision correcte de l'affichage des touches, en se plaçant sous l'angle favorable. Ceci réduira bien entendu le confort d'utilisation de l'appareil, mais c'est le prix à payer pour obtenir le degré de protection voulu. Il n'est pas forcément très facile d'obtenir d'un fabricant un dispositif utilisant des technique anciennes dont les performances sont considérées comme mauvaises dans l'usage courant aujourd'hui. Revenir en arrière sur les progrès techniques revient souvent à relancer des fabrications selon des procédés qui ne sont plus utilisés, ce qui n'intéresse généralement pas les fabricants. Ce problème est bien connu pour les pièces détachées, par exemple pour certains circuits intégrés devenus obsolètes. Heureusement les notices techniques des différents fabricants d'afficheurs à cristaux liquides montrent que l'on peut jouer sur un certain nombre de paramètres accessibles à l'utilisateur, la tension d'alimentation par exemple, ou la forme des signaux d'adressage.En outre le marché potentiel de l'invention est particulièrement grand et justifierait tout-à-fait la fabrication en grande série d'un afficheur particulier à ce type de matériel. La couche tactile transparente superposée à l'afficheur peut être réalisée par différents moyens connus utilisés couramment dans les terminaux actuellement mis à la disposition du public, par exemple pour distribuer des billets de chemin de fer. On utilisera par exemple un réseau d'électrodes transparentes croisées noyées dans un sandwich de feuilles elle-même transparentes et pouvant établir une connexion aux points de croisement, soit par contact, soit par capacité avec le doigt de l'utilisateur. L'invention n'est pas limitée aux lecteurs de carte à puce. Elle s'étend à tous les dispositifs comportant un clavier dont il faut limiter la vision pendant l'usage au seul utilisateur, par exemple les serrures électroniques de portes d'immeubles. REVENDICATIONS 1 - Procédé de protection d'un clavier de saisie de données (202) comportant un ensemble de touches sur chacune desquelles est affiché un caractère d'identification correspondant à une donnée à introduire par l'intermédiaire de cette touche, caractérisé en ce que l'on modifie de manière aléatoire pendant au moins une partie de la saisie des données la répartition de l'affectation des données entre les touches, et les affichages correspondants. 2 - Procédé selon la revendication 1, caractérisé en ce que l'on modifie cette répartition après la saisie d'au moins une série de données. 3 - Procédé selon la revendication 1, caractérisé en ce que l'on modifie cette répartition après chaque saisie d'une donnée. 4 - Procédé selon la revendication 1, caractérisé en ce que dans le cours de la saisie d'une série de données, on fige cette répartition selon une structure fixe. 5 - Procédé selon la revendication 4, caractérisé en ce que cette répartition est une structure standard. 6 - Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que l'on modifie la répartition après la fin d'utilisation du clavier. 7 - Procédé selon la revendication 6, caractérisé en ce que cette modification consiste à supprimer tout affichage sur le clavier. 8 - Clavier pour la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'il comporte un ensemble de touches (202) sur lesquelles sont affichés des caractères que l'on peut modifier. 9 - Clavier selon la revendication 8, caractérisé en ce qu'il comprend un afficheur à cristal liquide représentant les touches, et une couche tactile transparente superposée sur cet afficheur et comportant un ensemble de points sensibles situés respectivement au-dessus de chaque représentation d'une touche. 10 - Clavier selon la revendication 9, caractérisé en ce que les caractéristiques de visualisation de l'afficheur à cristal liquide permettent de réduire au maximum le cône de visibilité de cet afficheur pour limiter l'observation au seul utilisateur de l'afficheur.