Brevet FR2795198A1 — publié le 20001222

INTERFACE CARTE A PUCE POUR CLAVIER D'ORDINATEUR La présente invention concerne une interface carte à puce destinée à communiquer avec un ordinateur comportant un clavier de commande. L'invention concerne plus particulièrement une interface carte à puce dotée d'un microcontrôleur apte à être connecté à un ordinateur, par l'intermédiaire d'une liaison distincte de celle utilisée pour connecter ledit ordinateur à un microcontrôleur d'un clavier de commande. L'invention trouve une application particulièrement avantageuse, mais non exclusive, dans le domaine de la sécurisation des données et des transferts de données à partir d'un ordinateur. L'intégration d'interfaces carte à puce dans les claviers des ordinateurs personnels type PC ("personal computer" en anglais) tend à se généraliser dans la mesure où la sécurité des données et des transactions effectuées à partir d'un ordinateur devient un enjeu majeur de l'informatique d'aujourd'hui. Une solution pour intégrer une interface carte dans un clavier consiste à placer ladite interface carte en coupure de ligne sur la liaison qui relie le clavier et l'ordinateur. Dans ce cas de figure, l'alimentation peut être avantageusement fournie par cette liaison. Le flux de données entre le clavier et l'ordinateur est ainsi contrôlé par le microcontrôleur de l'interface carte, ce qui permet d'envisager de réaliser des fonctions de saisie de code afin d'authentifier le porteur de la carte lue par l'interface carte. Cette fonction est importante dans la sécurisation des données et dans le procédé de validation d'une transaction sur un réseau par exemple. Malheureusement, ce type d'architecture n'est pas conforme aux principales spécifications standards connues dans le monde du PC, ce qui constitue un inconvénient majeur de nature à en empêcher le succès commercial. En effet, il est impossible d'obtenir les certifications requises comme celle du WHQL (Windows Hardware Quality Labs), car le port PS2 de l'unité centrale auquel est généralement connecté la liaison clavier n'est pas supporté par les standards PC/SC et Plug & Play. Ce type d'architecture présente également l'inconvénient de ne pas permettre un fonctionnement simultané de l'interface et du clavier puisque ces derniers utilisent la même ligne de communication. Par exemple, le clavier n'est pas opérationnel pour commander l'ordinateur lorsque la carte à puce est utilisée pour calculer une signature RSAjDES ; la ligne étant à ce moment là monopolisée par l'interface. Pour remédier à ces difficultés, on peut avoir recours à un autre type d'architecture dans lequel l'interface carte est reliée au connecteur RS232 de l'ordinateur via un cordon spécifique. L'interface peut être intégrée directement ou pas à l'intérieur du clavier. L'avantage de la première solution réside dans l'ergonomie apportée à l'utilisateur et dans l'optimisation de l'alimentation de l'interface carte, directement fournie en interne par le clavier. Quoi qu'il en soit, la liaison RS232 étant supportée par les standards du monde PC, l'intégration de l'interface carte à puce est parfaitement conforme aux certifications en vigueur. Ce type d'architecture présente toutefois l'inconvénient de ne pas offrir de liaison fonctionnelle directe entre le microcontrôleur du clavier et celui gérant l'interface carte. Il en résulte que toutes les données en provenance du clavier, et à destination de l'interface carte, vont systématiquement transiter par l'ordinateur. La saisie clavier d'informations confidentielles peut donc être aisément espionnée à l'insu de l'utilisateur par un quelconque logiciel. Aussi, le problème technique à résoudre par l'objet de la présente invention est de proposer une interface carte à puce pour ordinateur dont l'intégration serait parfaitement conforme aux spécifications standards du monde du PC, mais qui permettrait néanmoins de sécuriser les données saisies au clavier et destinées à ladite interface. Le but de la présente invention est de proposer une interface carte à puce destinée à communiquer avec un ordinateur comportant une unité centrale et un clavier de commande doté d'un microcontrôleur, l'interface comportant un microcontrôleur connecté à l'unité centrale par l'intermédiaire d'une liaison distincte de celle utilisée pour connecter ladite unité centrale au microcontrôleur du clavier de commande ; interface carte à puce qui permettrait d'éviter les problèmes de l'état de la technique en garantissant une sécurisation optimale des données en provenance du clavier et à destination de ladite interface, tout en demeurant parfaitement conforme aux incontournables standards PC. La solution au problème technique posé consiste, selon la présente invention, en ce que l'interface carte à puce comporte des moyens de liaison aptes contrôler les flux de données sortant du microcontrôleur clavier et à en transmettre au moins une partie au microcontrôleur de ladite interface, sans les faire transiter par l'unité centrale de l'ordinateur. Bien que l'intégration de l'interface carte à puce soit réalisée au niveau d'une liaison distincte de la liaison clavier, afin d'être conforme aux standards PC de type Plug & Play ou PC/SC par exemple, l'invention telle qu'ainsi définie présente l'avantage de permettre une sécurisation optimale des données et des transactions effectuées à partir de l'ordinateur. Elle combine en quelque sorte les avantages à priori incompatibles des deux architectures de l'art antérieur. Les données saisies au clavier ne sont en effet pas systématiquement transmises à l'unité centrale de l'ordinateur via la liaison clavier, pour être ensuite éventuellement envoyées à l'interface lorsque lesdites données sont destinées à être exploitées par une carte à puce. Le transit peut être réalisé directement entre les microcontrôleurs du clavier et de l'interface, court- circuitant en quelque sorte l'unité centrale de l'ordinateur. Cette caractéristique permet avantageusement de garantir l'intégrité des données saisies au clavier et destinées à l'interface carte à puce, vis-à-vis d'un éventuel logiciel espion hébergé dans l'unité centrale de l'ordinateur. Selon une particularité de l'invention, les moyens de liaison sont aptes à transmettre au microcontrôleur de l'interface, les flux de données provenant du microcontrôleur clavier et destinés à ladite interface, sans faire transiter lesdits flux de données par l'unité centrale de l'ordinateur. Ainsi donc, les moyens de liaison permettent de diriger sélectivement les flux de données en provenance du microcontrôleur clavier, en les orientant en fonction de leur destination d'utilisation, soit vers l'unité centrale, soit vers le microcontrôleur de l'interface. Concrètement, la transmission se fera directement vers l'unité centrale de l'ordinateur via la liaison clavier, quand il s'agira d'une saisie de données classique destinée à être exploitée par un quelconque logiciel de l'ordinateur. A contrario, la transmission s'effectuera directement vers le microcontrôleur de l'interface lorsque les données saisies au clavier ne seront destinées à être utilisées que par la carte à puce de l'interface. Selon une autre particularité de l'invention, les moyens de liaison sont aptes à transmettre au microcontrôleur de l'interface, les flux de données provenant du microcontrôleur clavier, en réponse à l'envoi par l'ordinateur d'une commande spécifique à destination dudit microcontrôleur de l'interface. Si la logique des moyens de liaison est contrôlée directement par le microcontrôleur de l'interface, il est clair que la mise en oeuvre desdits moyens dépend indirectement de l'application logicielle requérant la saisie de donnés. Ainsi donc, pour qu'une information confidentielle ne remonte pas vers l'unité centrale de l'ordinateur mais soit orientée directement vers l'interface, il est nécessaire que le logiciel fonctionnant dans l'ordinateur en fasse la demande. L'interface carte à puce reçoit alors la commande correspondante au travers de la liaison spécifique reliant son microcontrôleur et l'unité centrale. L'interface peut alors commander les moyens de liaison pour que les flux de données sortant du microcontrôleur clavier soit transmis directement et avec le timing approprié à son microcontrôleur. De manière particulièrement avantageuse, la commande spécifique, envoyée par l'ordinateur à destination du microcontrôleur de l'interface, correspond à une demande de saisie d'au moins une donnée confidentielle en provenance du clavier et à destination de l'interface. Cette commande spécifique, envoyée par l'ordinateur à destination du microcontrôleur de l'interface, pourra correspondre à une demande de saisie de PIN code. Lorsque le microcontrôleur de l'interface carte à puce recevra ce type de commande, il empêchera les flux de données provenant du microcontrôleur clavier de transiter par l'unité centrale de l'ordinateur, en les orientant directement vers l'interface par l'intermédiaire d'une liaison directe et notamment indépendante de la liaison clavier. Selon un mode de réalisation de l'invention, les moyens de liaison comportent un circuit d'aiguillage apte à orienter sélectivement les flux de données en provenance du microcontrôleur clavier, soit vers l'unité centrale de l'ordinateur via la liaison clavier, soit vers le microcontrôleur de l'interface via une liaison directe, le circuit d'aiguillage étant commandé par ledit microcontrôleur de l'interface. Selon une variante de l'invention, les moyens de liaison comportent un circuit de rupture apte à interrompre la liaison clavier entre le microcontrôleur clavier et l'unité centrale de l'ordinateur, ledit microcontrôleur clavier étant connecté de manière permanente et directe au microcontrôleur de l'interface, le circuit de rupture étant commandé par ledit microcontrôleur de l'interface. Il est à noter que dans l'ensemble de ce texte, la notion de liaison directe entre les microcontrôleurs du clavier et de l'interface signifie simplement que la liaison ne passe pas par l'unité centrale de l'ordinateur. Conformément à l'objet de la présente invention, la liaison directe est totalement indépendante de l'unité centrale, mais elle peut accessoirement relier d'autres dispositifs dans la mesure où ces derniers sont également complètement indépendant de ladite unité centrale. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui va suivre en référence aux dessins annexés, donnés à titre d'exemples non limitatifs. Cette description détaillée fera bien comprendre en quoi consiste l'invention et comment elle peut être réalisée. La figure 1 est une vue schématique d'une architecture selon un premier mode de réalisation de l'invention. La figure 2 représente schématiquement une architecture selon un second mode de réalisation de l'invention. Pour des raisons de clarté, les mêmes éléments ont été désignés par des références identiques. De même, seuls les éléments essentiels pour la compréhension de l'invention ont été représentés, et ceci sans respect de l'échelle et de manière schématique. La figure 1 montre une interface carte à puce 1 apte à communiquer avec un ordinateur 2 doté d'une unité centrale 3 à laquelle est reliée un microcontrôleur 4 d'un clavier de commande 5 via une classique liaison clavier 6, de type PS2 dans le cas présent. L'interface 1, via un microcontrôleur 7 propre, est quant à elle connectée à l'unité centrale 3 par l'intermédiaire d'une liaison 8 distincte de la liaison clavier 6, c'est-à-dire via une liaison supportant parfaitement les standard PC, en l'occurrence de type RS232 dans le cas présent. Ainsi qu'on peut le voir dans ce premier exemple de réalisation choisi pour illustrer l'invention, les moyens de liaison 10 destinés à contrôler et orienter sélectivement les flux de données en provenance du microcontrôleur clavier 4 sont constitués par un circuit d'aiguillage 11 câblé, structurellement indépendant du microcontrôleur 7 de l'interface 1 bien que commandé par ce dernier. Le circuit d'aiguillage 11 est connecté directement à la sortie du microcontrôleur clavier 4. I1 est relié par ailleurs, d'une part, à l'unité centrale 3 de l'ordinateur 2 via la liaison 6 de type PS2, et d'autre part, au microcontrôleur 7 de l'interface 1 via une liaison directe 12. Le circuit d'aiguillage 11 se trouve ainsi intercalé entre le clavier 5 et l'unité centrale 3 de manière à offrir la possibilité de faire basculer les flux de données, en provenance du microcontrôleur clavier 4, directement vers l'interface carte à puce 1. Suivant la position de la bascule 13 symbolisant la fonction d'aiguillage, les flux de données seront en effet transmis sélectivement en fonction de leur destination d'utilisation, soit vers l'unité centrale 3 de l'ordinateur 2, soit vers l'interface 1. Afin que le microcontrôleur 7 de l'interface 1 puisse piloter le circuit d'aiguillage 11, et notamment commander le positionnement de la bascule 13, une ligne de commande 14 est prévue entre ces deux entités. Dans la pratique, les données saisies au clavier 5 sont principalement destinées à commander l'ordinateur 2 ou à être utilisées par l'application logicielle mise en oeuvre. Aussi, les flux de données sortant du microcontrôleur clavier 4 sont transmis systématiquement par défaut à l'unité centrale 3 via la liaison 6 de type PS2. Il en résulte que, contrairement à ce qui apparaît à la figure 1, la bascule 13 est positionnée de manière à connecter le microcontrôleur clavier 4 et l'unité centrale 3 de l'ordinateur 2. Les moyens de liaison 10 ne sont par conséquent pas en mesure de faire communiquer ensemble les microcontrôleurs 4, 7 du clavier 5 et de l'interface 1, la position ouverte de la bascule 13 du circuit d'aiguillage 11 coupant la liaison entre ces deux éléments. Lorsque la mise en oeuvre de l'intégralité, d'une partie ou d'une fonction de l'application logicielle requiert une saisie d'informations confidentielles devant être validée par une carte à puce 9, l'ordinateur 2 envoie au microcontrôleur 7 de l'interface 1, par l'intermédiaire de la liaison 8 de type RS232, une commande demandant la mise en oeuvre des moyens des liaison 10 de manière à modifier l'orientation des flux de données en provenance du microcontrôleur clavier 4. Pour cela, le microcontrôleur 7 de l'interface 1 commande alors au circuit d'aiguillage 11, via la ligne de commande 14, d'inverser la position de la bascule 13. Il en résulte une coupure de la liaison clavier 6 et une connexion des microcontrôleurs 4, 7 du clavier 5 et de l'interface 1, permettant ainsi un transfert direct des données sans les faire transiter par l'unité centrale 3. L'authentification prise en exemple peut alors être menée en toute sécurité. La figure 2 représente un second exemple de réalisation de l'invention, qui diffère du précédent dans le fait que la fonction d'aiguillage des flux de données est ici remplie par un circuit de rupture 21 capable d'interrompre la liaison clavier 6 entre le microcontrôleur clavier 4 et l'unité centrale 3 de l'ordinateur 2. Ainsi donc, et de manière sensiblement analogue au premier exemple, le circuit de rupture 21 est positionné directement à la sortie du microcontrôleur clavier 4 et il est relié à l'unité centrale 3 de l'ordinateur 2 via la liaison 6 de type PS2. Par contre, le circuit de rupture 21 est connecté de manière permanente au microcontrôleur 7 de l'interface 1, par l'intermédiaire d'une liaison directe 22, de sorte que lorsque la bascule 23 est ouverte, les flux de données ne peuvent plus transiter qu'en direction de l'interface 1. Là encore, le circuit de rupture 21 est commandé par le microcontrôleur 7 de l'interface 1, via une ligne de commande 24. La gestion des flux de données par les moyens de liaisons 10 est sensiblement identique à celle pratiquée dans le premier mode de réalisation. Lorsqu'il est nécessaire de saisir des informations confidentielles au clavier 5, par exemple un PIN code destiné à être vérifié par la carte à puce 9 présente dans l'interface 1, ordre est donné au microcontrôleur 7 de l'interface 1 de couper la liaison entre le clavier 5 et l'unité centrale 3. Le microcontrôleur 7 de l'interface 1 étant à cet instant le seul élément directement connecté au microcontrôleur clavier 4, il est alors en mesure de récupérer les données et de les transmettre à la carte à puce 9. Ainsi donc, et de manière particulièrement avantageuse, il n'est pas possible à un logiciel installé dans l'unité centrale 3 d'espionner ces informations sensibles. Conformément à une caractéristique essentielle de l'invention, le microcontrôleur 7 de l'interface 1 doit être connecté à l'unité centrale 3 de l'ordinateur 2 par l'intermédiaire d'une liaison 8 supportant les principaux standards PC, notamment PC/SC et Plug & Play. Il est ainsi possible d'utiliser une liaison de type série, telle que la liaison RS232 des différents exemples précédemment décrits. Il est également possible de réaliser une connexion via une liaison de type parallèle, notamment DB25. Naturellement, l'invention n'est en rien limitée par les particularités qui ont été spécifiées dans ce qui précède ou par les détails des modes de réalisation spécifiques choisis pour illustrer l'invention. Toutes sortes de variantes peuvent être apportées aux réalisations particulières décrites à titre d'exemples et à leurs éléments constitutifs sans sortir pour autant du cadre de l'invention. Ainsi donc la fonction d'aiguillage pourra être réalisée par des moyens faisant partie intégrante du microcontrôleur 7 de l'interface 1 (traits pointillés 30), et non pas uniquement par des moyens dédiés indépendants comme dans le cas des circuits d'aiguillage 11 ou de rupture 21 précédemment décrits. De même, les fonctions réalisées par les moyens de liaison 10 pourront indifféremment être réalisées de manière logicielle ou câblée comme dans les exemples. REVENDICATIONS 1. Interface carte à puce (1) destinée à communiquer avec un ordinateur (2) comportant une unité centrale (3) et un clavier de commande (5) doté d'un microcontrôleur (4), l'interface (1) comportant un microcontrôleur (7) connecté à l'unité centrale (3) par l'intermédiaire d'une liaison (8) distincte de celle utilisée pour connecter ladite unité centrale (3) au microcontrôleur (4) du clavier de commande (5), caractérisée en ce que l'interface (1) comporte des moyens de liaison (10) aptes à contrôler les flux de données sortant du microcontrôleur clavier (4) et à en transmettre au moins une partie au microcontrôleur (7) de ladite interface (1), sans les faire transiter par l'unité centrale (3) de l'ordinateur (2). 2. Interface (1) selon la revendication 1, caractérisée en ce que les moyens de liaison (10) sont aptes à transmettre au microcontrôleur (7) de l'interface (1), les flux de données provenant du microcontrôleur clavier (4) et destinés à ladite interface (1), sans faire transiter lesdits flux de données par l'unité centrale (3) de l'ordinateur (2). 3. Interface (1) selon l'une des revendications 1 ou 2, caractérisée en ce que les moyens de liaison (10) sont aptes à transmettre au microcontrôleur (7) de l'interface (1), les flux de données provenant du microcontrôleur clavier (4), en réponse à l'envoi par l'ordinateur (2) d'une commande spécifique à destination dudit microcontrôleur (7) de l'interface (1). 4. Interface (1) selon la revendication 3, caractérisée en ce que la commande spécifique, envoyée par l'ordinateur (2) à destination du microcontrôleur (7) de l'interface (1), correspond à une demande de saisie d'au moins une donnée confidentielle en provenance du clavier (5) et à destination de l'interface (1). 5. Interface (1) selon l'une des revendications 3 ou 4, caractérisée en ce que la commande spécifique, envoyée par l'ordinateur (2) à destination du microcontrôleur (7) de l'interface (1), correspond à une demande de saisie de PIN code. 6. Interface (1) selon l'une quelconque des revendications 1 à 5, caractérisée en ce que les moyens de liaison (10) comportent un circuit d'aiguillage (11) apte à orienter sélectivement les flux de données en provenance du microcontrôleur clavier (4), soit vers l'unité centrale (3) de l'ordinateur (2) via la liaison clavier (6), soit vers le microcontrôleur (7) de l'interface (1) via une liaison directe (12), le circuit d'aiguillage (11) étant commandé par ledit microcontrôleur (7) de l'interface (1). 7. Interface (1) selon l'une quelconque des revendications 1 à 5, caractérisée en ce que les moyens de liaison (10) comportent un circuit de rupture (21) apte à interrompre la liaison clavier (6) entre le microcontrôleur clavier (4) et l'unité centrale (3) de l'ordinateur (2), ledit microcontrôleur clavier (4) étant connecté de manière permanente et directe au microcontrôleur (7) de l'interface (1), le circuit de rupture (21) étant commandé par ledit microcontrôleur (7) de l'interface (1). 8. Interface (1) selon l'une quelconque des revendications 1 à 7, caractérisée en ce que le microcontrôleur (7) de l'interface (1) est connecté à l'unité centrale (3) de l'ordinateur (2) par l'intermédiaire d'une liaison (8) supportant le standard Plug & Play. 9. Interface (1) selon l'une quelconque des revendications 1 à 8, caractérisée en ce que le microcontrôleur (7) de l'interface (1) est connecté à l'unité centrale (3) de l'ordinateur (2) par l'intermédiaire d'une liaison (8) supportant le standard PC/SC. 10. Interface (1) selon l'une quelconque des revendications 1 à 9, caractérisée en ce que le microcontrôleur (7) de l'interface (1) est connecté à l'unité centrale (3) de l'ordinateur (2) par l'intermédiaire d'une liaison (8) de type série, notamment RS232. 11. Interface (1) selon l'une quelconque des revendications 1 à 9, caractérisée en ce que le microcontrôleur (7) de l'interface (1) est connecté à l'unité centrale (3) de l'ordinateur (2) par l'intermédiaire d'une liaison (8) de type parallèle, notamment DB25. 12. Interface (1) selon l'une quelconque des revendications 1 à 11, caractérisée en ce que le microcontrôleur (4) du clavier (5) est connecté à l'unité centrale (3) de l'ordinateur (2) par l'intermédiaire d'une liaison (6) de type PS2.