Brevet FR2934395A1 — publié le 20100129

SYSTEME ET PROCEDE POUR LA SECURISATION D'UNE INTERFACE UTILISATEUR L'invention concerne un système pour la sécurisation 5 d'une interface utilisateur, ainsi qu'un procédé de sécurisation d'une telle interface. L'interface utilisateur est l'interface par laquelle un utilisateur d'une machine informatique, par exemple un ordinateur ou un système embarqué, dialogue avec cette 10 machine. L'interface utilisateur comprend un ou plusieurs périphériques d'interface. Les périphériques d'interface sont divers. Certains périphériques sont des périphériques dits d'entrée, qui permettent d'entrer des informations dans la machine. 15 D'autres périphériques sont des périphériques dits de sortie, qui permettent d'obtenir des informations de la machine. D'autres périphériques d'interface encore sont des périphériques dits d'entrée/sortie, qui permettent d'entrer des informations dans la machine ou de sortir 20 des informations de celle-ci. Parmi les périphériques d'entrée, on citera notamment les claviers, les souris ou autres dispositifs de pointage, les pinpad (clavier d'identification personnelle en langue française), les lecteurs de cartes 25 à puce, les tablettes graphiques, les microphones. Parmi les périphériques de sortie, on citera notamment les écrans ou les enceintes acoustiques. Enfin, parmi les périphériques d'entrée/sortie, on citera notamment les écrans tactiles. 30 Dans la plupart des cas, les informations sont présentées affichées en mode pixels sur un écran, généralement dans un environnement fenêtré, et l'utilisateur utilise un clavier et une souris, ou bien l'écran lui-même - si celui-ci est tactile - pour 35 interagir avec la machine. Il appartient alors aux applications contrôlant l'interface de traiter et d'interpréter les informations venant de l'utilisateur. Par exemple, lorsque l'utilisateur souhaite consulter son compte bancaire sur l'Internet, il dialogue avec une application bancaire à l'aide d'un écran et d'un clavier et/ou une souris. Dans un premier temps, l'application bancaire identifie l'utilisateur en demandant à celui-ci de saisir son numéro de client. L'utilisateur saisit alors sont numéro de client à l'aide du clavier de l'ordinateur. Dans un deuxième temps, l'application bancaire authentifie l'utilisateur client en demandant à celui-ci de saisir son code d'accès secret à l'aide du clavier de son ordinateur et/ou de la souris. Si l'identification et l'authentification sont validées par l'application bancaire, alors celle-ci affiche l'état du compte de l'utilisateur client à l'écran. De telles interactions homme/machine sont sujettes à de nombreuses attaques malveillantes. Par exemple, certaines de ces attaques consistent à récupérer l'identifiant et le code secret d'accès de l'utilisateur client afin que le pirate puisse consulter à loisir les comptes de l'utilisateur client en vue notamment de procéder à des virements illicites. En pratique, deux techniques sont souvent utilisées 25 à cet effet. La première technique consiste à intercepter et enregistrer tous les évènements liés aux périphériques d'entrée de l'interface utilisateur et, notamment, à collecter toutes les touches qui ont été pressées par 30 l'utilisateur sur un clavier et/ou tous les clics de souris voire les déplacements de celle-ci. Fatalement, l'identifiant et le code d'accès de l'utilisateur client sont récupérés par l'application malveillante. Une seconde technique consiste à prendre le contrôle 35 des périphériques de sortie de l'interface et, notamment, à prendre le contrôle de l'affichage de l'écran et d'émuler ou simuler l'application bancaire. L'utilisateur client, qui croit alors avoir affaire à la véritable application bancaire, fournit ses identifiants et codes d'accès à l'application malveillante. Ces identifiants et codes sont récupérés pour une utilisation frauduleuse. L'hameçonnage est un exemple de telles pratiques frauduleuses. Pour contrer les attaques malveillantes précitées et, plus généralement, les problèmes de confiance de la relation avec l'interface utilisateur, il est connu, selon une première approche, de sécuriser les logiciels pilotes des périphériques de ladite interface. Il s'agit par exemple de la sécurisation du pilote du clavier, de la souris et/ou de la sécurisation du pilote de la carte graphique de l'écran. Les pilotes sécurisés comprennent par exemple une clé secrète partagée avec le matériel piloté, de sorte que les informations traitées par le pilote soient chiffrées et par suite, non accessibles en clair par des applications malveillantes. Toutefois, le développement de pilotes sécurisés a été freiné car il impose une modification du matériel piloté, par exemple l'insertion d'une clé secrète partagée avec le pilote. Cette modification est couteuse pour les fabricants de matériels. Certes, MicrosoftTM a proposé un système d'exploitation dit NGSCB, qui implémente des pilotes sécurisés ainsi que cela est divulgué dans le brevet publié sous le numéro US2005/091503. Néanmoins, non seulement la technologie implémentée dans cette base informatique exige une modification du matériel piloté, soit pour chiffrer/déchiffrer les informations échangées, soit pour accéder à un espace sécurisé, mais, en outre, elle suppose que les entrées de l'utilisateur transitent toujours par le système d'exploitation hôte de la machine, qui constitue un environnement non sécurisé, ce qui représente une faille potentielle de sécurité, même si ces informations sont chiffrées, compte tenu du fait que le système d'exploitation hôte est un environnement non sécurisé qui pourrait par exemple détruire ou ne pas transférer ces entrées. Il en va de même pour les entrées sécurisées visées dans le document brevet publié sous le numéro EP1526425 qui enseigne que les informations sécurisées entrées et destinées à être gérées par le noyau sécurisé de la base informatique, en pratique le nexusTM, transitent dans une pile logicielle du système d'exploitation hôte de la machine. Quant à la technologie dite TerraTM, qui est divulguée dans le document intitulé � Terra: A Virtual Machine-Based Platform for Trusted Computing �, Tal Garfinkel et al., Computer Science Department, Stanford University, elle n'a pas été mise en oeuvre commercialement essentiellement pour les raisons évoquées ci-dessus. D'ailleurs, cela est confirmé dans ce document, qui enseigne, au point 2.3, que �Nous n'avons pas mis en ouvre une interface utilisateur sécurisée dans notre prototype Terra. Nous sommes d'avis que la mise en ouvre d'une interface utilisateur sécurisée, qui permettrait l'utilisation des capacités du matériel graphique, devrait requérir un matériel additionnel et un support logiciel�. Par ailleurs, pour sécuriser l'interface utilisateur, il est possible, selon une seconde approche, d'adjoindre des indicateurs de sécurité dans l'interface utilisateur. Il s'agit, dans un exemple non limitatif, d'un petit cadenas dans un coin du navigateur, d'un cadre rouge autour d'une fenêtre, et/ou d'un bandeau réservé en haut de l'écran. Ainsi, une fenêtre ou des informations saisies au clavier seront considérées comme de confiance si l'indicateur de sécurité est présent. De tels indicateurs sont divulgués en particulier dans la demande internationale publiée sous le numéro WO2007060322. On peut aussi citer l'architecture du prototype NetTopTM divulguée dans le document Tech Trend Notes, vol. 9, Edition 4, automne 2000, p.l-8, ou même, la technologie TerraTM précitée, qui réservent une partie de l'écran pour spécifier quelle est la machine virtuelle qui contrôle l'interface utilisateur. La sécurité de cette approche repose sur la difficulté de deviner l'ensemble des indicateurs prévus par l'application et d'afficher un indicateur à l'endroit particulier de l'interface utilisateur. Il s'agit donc d'une approche pratique, qui est communément utilisée en matière informatique, mais qui offre un niveau de sécurité plus modeste, l'affichage d'un indicateur dans une fenêtre étant potentiellement à la portée d'un attaquant plus ou moins averti. Enfin, pour sécuriser l'interface utilisateur, il est possible, selon une troisième approche, de dupliquer les contrôleurs d'interface utilisateur. Ainsi, si deux applications A et B, qui veulent se protéger l'une de l'autre, exécutent chacune leur propre contrôleur d'interface utilisateur, alors les évènements clavier/écran de l'application A sont traités par le contrôleur d'interface de l'application A et restent invisibles de l'application B, et réciproquement. Cette technique est utilisée par l'équipe de recherche en systèmes d'exploitation de l'Université Technique de Dresde dans sa démonstration pour sécuriser les interfaces utilisateurs graphiques. Dans cette démonstration, un premier contrôleur d'interface, appelé NitpickerTM, est placé au-dessus du micronoyau L4. Il contrôle l'interface utilisateur graphique pour les applications de ce micronoyau. Un second contrôleur d'interface est, quant à lui, placé dans une application particulière nommée L4Linux, qui est, en fait, le système d'exploitation Linux implémenté sous la forme d'une application au dessus du micronoyau L4. Cette application particulière est ainsi vue comme une application du micronoyau L4, fonctionnant en mode utilisateur. Le gestionnaire de fenêtres classique de Linux se trouve dans l'application L4Linux. Les évènements graphiques des applications du micronoyau L4 sont gérés directement par le premier contrôleur d'interface NitpickerTM et sont invisibles des applications de Linux, et réciproquement. Cette troisième approche permet donc une bonne séparation des applications. Toutefois, elle impose une duplication des contrôleurs d'interface utilisateur, ce qui implique une augmentation de la taille du code, une consommation accrue de ressources et, bien entendu, des erreurs à corriger dans chacun des contrôleurs soit un support technique à assurer. Compte tenu de ce qui précède, un problème de se propose de résoudre l'invention est de réaliser un système pour la sécurisation d'une interface utilisateur comportant : une interface utilisateur gérée par des périphériques matériels ; une ou plusieurs applications utilisant l'interface utilisateur ; un ou plusieurs périphériques matériels de l'interface utilisateur pour interagir avec ladite interface, lesdits périphériques matériels étant pilotés par des logiciels pilotes, qui pallie aux inconvénients précités de l'état de la technique et qui, en particulier, ne nécessite pas de modification des périphériques matériels ni une duplication des contrôleurs d'interface, tout en montrant un niveau adéquat de sécurisation vis-à-vis, notamment, d'applications malveillantes qui procèdent par enregistrement de frappes ou par hameçonnage. La solution de l'invention à ce problème posé a pour premier objet un système pour la sécurisation d'une interface utilisateur comportant : une interface utilisateur comprenant un ou plusieurs périphériques matériels de l'interface utilisateur pour interagir avec ladite interface, lesdits périphériques matériels étant pilotés par des logiciels pilotes ; une ou plusieurs applications utilisant l'interface utilisateur ; caractérisé en ce qu'il comporte en outre : un hyperviseur disposant d'un accès direct aux périphériques matériels de l'interface utilisateur ; une ou plusieurs machines virtuelles permettant l'exécution de la ou des applications utilisant l'interface utilisateur, lesdites machines virtuelles ne disposant pas d'accès direct aux ressources matérielles de l'interface utilisateur ; et un composant logiciel de sécurisation comprenant une partie frontale contrôlée par la ou les machines virtuelles et une partie principale contrôlée par l'hyperviseur, les pilotes des périphériques matériels de l'interface utilisateur étant scindés en deux parties, une partie principale desdits pilotes étant placée sous le contrôle de l'hyperviseur, une partie frontale desdits pilotes étant placée sous le contrôle des machines virtuelles, la partie frontale du composant logiciel de sécurisation assurant la gestion de la partie frontale des pilotes, la partie principale du composant logiciel de sécurisation assurant la gestion de la partie principale des pilotes. Elle a pour second objet un procédé pour la sécurisation d'une interface utilisateur, caractérisé en ce qu'il comprend les étapes de : fourniture d'une interface utilisateur comprenant un ou plusieurs périphériques matériels de l'interface utilisateur pour interagir avec ladite interface, lesdits périphériques matériels étant pilotés par des logiciels 5 pilotes ; fourniture d'un hyperviseur, d'une ou plusieurs machines virtuelles permettant l'exécution d'une ou plusieurs applications utilisant l'interface utilisateur, lesdites machines virtuelles ne disposant pas d'accès 10 direct aux ressources matérielles de l'interface utilisateur et d'un composant logiciel de sécurisation comprenant une partie frontale contrôlée par la ou les machines virtuelles et une partie principale contrôlée par l'hyperviseur ; 15 d'exécution d'une application d'une machine virtuelle ; d'activation d'un mode sécurisé du système à la requête de l'application ; d'affichage sécurisé d'une information contrôlé par 20 la partie principale du composant logiciel de sécurisation, l'hyperviseur accédant directement aux périphériques matériels de l'interface utilisateur ; puis de désactivation du mode sécurisé du système. De manière avantageuse, - les périphériques 25 matériels de l'interface utilisateur comprennent au moins un périphérique d'entrée d'information de l'utilisateur et un écran ; - la partie principale du composant logiciel est apte à afficher et à contrôler l'affichage d'un composant d'interface graphique dans l'interface 30 utilisateur, pour la saisie d'une information par l'utilisateur ; - la partie principale du composant logiciel est apte à valider une information d'identification et/ou d'authentification saisie par l'utilisateur ; - les informations échangées entre la 35 partie principale du composant de sécurisation et la partie frontale de ce composant est sécurisé au moyen de clés de chiffrement et/ou de signature ; - des informations échangées entre la partie frontale du composant logiciel de sécurisation et une application de la machine virtuelle comportant cette partie frontale sont sécurisées au moyen de clés de chiffrement et/ou de signature ; - le procédé comporte en outre les étapes suivantes selon lesquelles : l'application requiert la saisie d'une information utilisateur, la requête de saisie est transmise à la partie principale du composant logiciel, un composant graphique de saisie d'information est affiché sous le contrôle direct du composant logiciel de sécurisation, l'utilisateur saisit une information utilisateur, et l'information utilisateur est validée ; - l'information utilisateur est validée par la partie principale du composant logiciel de sécurisation, ou est renvoyée à la partie frontale dudit composant voire à l'application demanderesse, pour validation ; - l'information utilisateur est validée contre des données conservées en mémoire de la partie principale du composant logiciel de sécurisation ; - l'application requiert l'établissement ou la mise à jour d'une information conservée en mémoire du composant logiciel de sécurisation, en ce que l'information est saisie par l'utilisateur, et en ce qu'elle est enregistrée dans la partie principale du composant logiciel de sécurisation ; et - le procédé comporte en outre les étapes suivantes selon lesquelles : l'application requiert un affichage sécurisé d'une information, la requête d'affichage est transmise à la partie principale du composant logiciel, etl'information est affichée sous le contrôle direct dudit composant logiciel. L'invention sera mieux comprise à la lecture de la description non limitative qui va suivre de modes de réalisation de l'invention, et au regard des dessins dans lesquels : la figure 1 présente, de manière schématique, le système selon l'invention ; la figure 2 est un diagramme qui illustre les différentes étapes du procédé selon l'invention pour la saisie sécurisée d'information dans un composant graphique ; et la figure 3 est un diagramme qui illustre les 10 différentes étapes du procédé selon l'invention pour l'affichage sécurisé d'information. La présente invention concerne des systèmes pour la sécurisation d'une interface utilisateur. Les systèmes selon l'invention sont destinés à être 15 implémentés, en particulier, mais non exclusivement, dans des dispositifs du type embarqués, qui disposent bien souvent de ressources matérielles limitées, en comparaison des ressources dont disposent des ordinateurs notamment du type personnel par exemple. Ils sont 20 néanmoins susceptibles de concerner de tels ordinateurs. Les dispositifs embarqués plus particulièrement visés dans la présente invention sont des dispositifs portatifs fabriqués en séries tels que des cartes à puce associées à des lecteurs de cartes eux-mêmes connectés à un 25 terminal, des téléphones portables éventuellement munis de modules d'identification abonnés et disposant d'un écran, des assistants digitaux personnels, ou tous autres dispositifs électroniques de dimensions réduites manipulant des données numériques. Les dispositifs 30 embarqués selon l'invention sont munis d'un processeur ou non. Ils comportent au moins une et parfois plusieurs mémoires. Les systèmes selon l'invention comportent une interface utilisateur comprenant un ou plusieurs 35 périphériques matériels de l'interface utilisateur, et une ou plusieurs applications utilisant l'interface utilisateur. L'interface utilisateur est l'interface par laquelle un utilisateur d'une machine informatique, par exemple un ordinateur ou un système embarqué, dialogue avec cette machine. L'interface utilisateur comprend un de plusieurs périphériques matériels de l'interface, qui sont pilotés par des logiciels pilotes. Les périphériques de l'interface sont divers. Certains périphériques sont des périphériques d'entrée, qui permettent d'entrer des informations dans la machine. D'autres périphériques sont des périphériques de sortie, qui permettent d'obtenir des informations de la machine. D'autres périphériques de l'interface encore sont des périphériques d'entrée/sortie, qui permettent d'entrer des informations dans la machine ou de sortir des informations de celle-ci. Parmi les périphériques d'entrée, on citera notamment les claviers, les souris ou autres dispositifs de pointage, les pinpad, les lecteurs de cartes à puce, les tablettes graphiques, les microphones. Parmi les périphériques de sortie, citera notamment les écrans ou les enceintes acoustiques. Enfin, parmi les périphériques d'entrée/sortie, on citera notamment les écrans tactiles. Les applications utilisant l'interface utilisateur sont des applications diverses qui sont à l'origine d'évènements de l'interface utilisateur pour la gestion des informations saisies par l'utilisateur et/ou la présentation de telles informations, ou d'autres informations audit utilisateur. Les informations saisies par l'utilisateur sont notamment des informations d'identification et/ou d'authentification. Les applications émettent des requêtes diverses telles que des requêtes d'affichage ou de saisie. Par exemple, une application peut être une application bancaire, qui permet à un utilisateur d'accéder à ces comptes bancaires et de procéder à des virements. Les périphériques matériel de l'interface utilisateur sont des périphériques permettant à l'utilisateur d'interagir avec ladite interface. Ils sont pilotés par des logiciels pilotes. Ces périphériques sont par exemple des claviers, des souris, des écrans notamment tactiles. Ainsi que cela est montré à la figure 1, le système selon l'invention comporte en outre un hyperviseur, une ou plusieurs machines virtuelles et un composant logiciel de sécurisation appelé, dans cette figure Secure UI. L'hyperviseur, ou domaine privilégié, est une couche logicielle qui permet l'exécution d'une ou plusieurs machines virtuelles au-dessus de ladite couche. L'hyperviseur dispose d'un accès direct aux ressources matérielles de l'interface utilisateur et notamment, aux périphériques. Dans l'invention, il s'agit de la seule entité disposant d'un tel accès direct à ces ressources. En effet, les machines virtuelles ne disposant pas d'un accès direct aux périphériques matérielles. Elles ne disposent pas de ce privilège. Les machines virtuelles comprennent un système d'exploitation dit invité qui leur est propre et au moins une application utilisant l'interface utilisateur. Elles permettent l'exécution de cette ou ces applications. Les machines virtuelles disposent soit d'un accès indirect aux périphériques matériels, soit d'un accès susceptible d'apparaître comme direct, mais qui transite par l'hyperviseur. Aussi, les accès dit matériels dont disposent les machines virtuelles, qui sont des accès indirects aux périphériques d'interfaces, sont ainsi contrôlés et pilotés uniquement par l'hyperviseur. De plus, les machines virtuelles ne communiquent pas entre elles. Elles sont isolées les unes des autres. On connaît différentes architectures logicielles de virtualisation susceptibles d'être utilisées dans le système selon l'invention. Il s'agit par exemple de l'architecture de virtualisation XenTM développée par l'université de Cambridge (Royaume-Uni) ou de l'architecture de virtualisation VMWareTM. Dans l'architecture XenTM, l'hyperviseur, qui constitue finalement une machine virtuelle particulière, correspond au domaine zéro (domo). Il assure la séparation et l'isolement des machines virtuelles, chaque machine virtuelle correspondant à un domaine spécifique, domU, qui ne dispose pas des privilèges de domo. En effet, le privilège de l'accès physique aux périphériques est délégué par les machines virtuelles des domU à l'hyperviseur. Dans l'invention, les pilotes des périphériques matériels de l'interface utilisateur sont scindés en deux parties. Une partie importante desdits pilotes est placée et tourne dans l'hyperviseur, soit sous le contrôle dudit hyperviseur. Il s'agit de la partie qui gère physiquement les accès aux périphériques. Une autre partie, moins importante au niveau taille, est placée et tourne dans chaque machine virtuelle, soit sous le contrôle de chaque machine virtuelle. Cette autre partie sert de relais vers la partie du pilote située dans l'hyperviseur. La partie du pilote contenue dans l'hyperviseur est appelée partie principale du pilote ou pilote backend à la figure 1. La partie du pilote située dans les machines virtuelles est appelée partie frontale du pilote ou pilote frontend à la figure 1. Le composant logiciel de sécurisation selon l'invention (Secure UI) est un composant de l'interface 35 utilisateur, destiné à la sécurisation de cette interface. Ce composant comprend une partie frontale ou Secure UI frontend, contrôlée par la ou les machines virtuelles ainsi qu'une partie principale, ou Secure UI backend, contrôlée par l'hyperviseur. Ce composant gère les pilotes des périphériques matériels de l'interface, c'est-à-dire par exemple les pilotes du clavier, de l'écran, de la souris ou du pinpad. Ce composant peut être considéré comme étant un composant pilote des pilotes des périphériques matériels de l'interface utilisateur. La partie principale de ce pilote interagit avec les périphériques d'interface de l'utilisateur. Si l'on se rapporte désormais aux figures 2 et 3, il apparaît que, pour la sécurisation de l'interface utilisateur, une machine virtuelle d'un système selon l'invention active tout d'abord la partie frontale du composant logiciel de sécurité d'interface utilisateur. Un contexte de sécurisation est alors créé et diverses informations sont notées telles que l'identifiant de la machine virtuelle. Dès lors, l'interface utilisateur est en mode dit sécurisé. Lorsque, dans ce mode sécurisé, une application A de la machine virtuelle précitée, souhaite authentifier un utilisateur, par exemple par la saisie d'un mot de passe ou d'un code d'identification personnel (PIN), elle notifie la partie frontale du composant de logiciel de sécurisation de sa requête. Cette partie frontale de ce composant transmet la requête à la partie principale du composant de l'hyperviseur. Cette dernière peut alors décider ou non d'afficher, sur l'écran, d'un composant d'interface graphique, plus spécifiquement une fenêtre de confiance, pour la saisie du mot de passe ou du PIN. Si elle décide d'afficher ce composant graphique, l'hyperviseur accède directement à la carte ou au composant graphique de l'interface. Plus particulièrement, la partie principale du composant logiciel de sécurisation récupère la mémoire tampon d'image (frame buffer) de la machine virtuelle concernée et y insère l'affichage du composant d'interface graphique pour la saisie du mot de passe ou du PIN en appelant le pilote de la carte ou du composant graphique pour effectuer l'affichage. Une fenêtre s'affiche alors sur l'écran de l'interface utilisateur. Celui-ci peut saisir son mot de passe ou son PIN par exemple à l'aide du clavier ou d'un pinpad. A la saisie du mot de passe ou du PIN, le pilote du clavier ou du pinpad est utilisé. Les informations saisies sont directement envoyées à la partie principale du composant logiciel de sécurité d'interface utilisateur. Dans ce cas, soit la partie principale de ce composant valide le mode de passe elle-même, soit ledit mot de passe est transmis à la partie frontale du composant de sécurité. Pour que la partie principale du composant valide le mot de passe, il suffit que cette partie ait mémorisé les mots de passe attendus, ou leur empreinte numérique (hash) pour chaque application de chaque machine virtuelle. En fonction de la comparaison du mot de passe ou du PIN saisi par l'utilisateur avec les mots de passe ou PIN mémorisé dans la partie principale du composant logiciel de sécurisation, cette partie principale renvoie à la partie frontale un accord de validation (OK) ou un refus (NOK). Pour terminer, la partie frontale du composant fait suivre l'accord ou le refus à l'application demanderesse. Si la partie principale du composant logiciel de sécurité transmet le mot de passe à la partie frontale de ce composant, celle-ci peut, à son tour, valider ce mot de passe/PIN ou alors le transmettre à l'application afin que celle-ci le valide. Ainsi, selon l'invention, les requêtes et informations échangées dans le systèmes sont sécurisées car elles transitent nécessairement par les deux parties du composant de sécurisation. En mode sécurisé, une application B, par exemple malveillante, contenue dans la machine virtuelle comprenant l'application A ou alors dans une autre machine virtuelle, ne peut pas modifier l'affichage du composant graphique de saisie de mot de passe ni modifier la saisie de ce dernier. En effet, l'affichage du composant graphique et la saisie d'informations par l'utilisateur sont entièrement gérés par le composant logiciel de sécurisation, au sein de l'hyperviseur. C'est ce composant qui décide d'afficher un composant graphique de saisie de mot de passe/PIN et accède directement aux ressources matérielles pour cet affichage. C'est ce composant logicel qui décide de la taille et de la forme de ce composant graphique de saisie. C'est ce composant logiciel de sécurisation qui reçoit les évènements saisis par l'utilisateur et gère cette information. Les machines virtuelles ne peuvent pas accéder à la mémoire tampon d'image et aux informations saisies aux périphériques matériels de l'interface graphique. Elles ne peuvent pas non plus court-circuiter l'hyperviseur car elles n'ont pas d'accès direct aux périphériques matériels. Aussi, l'invention sécurise effectivement les interactions homme/machine. Le composant logiciel de sécurisation est susceptible de répondre aux commandes suivantes, qui sont pour la plupart mentionnées aux figures 2 et 3 précitées. La commande ACTIVATE, émise par une application, qui permet de créer un contexte de sécurisation entre une machine virtuelle, ou une application d'une machine virtuelle. Il s'agit donc de la commande qui permet d'entrer dans le mode sécurisé. La commande DEACTIVATE permet de passer du mode sécurisé à un mode non sécurisé. Après l'appel de cette commande, l'interface utilisateur n'est plus sécurisée. On notera que le contexte sécurisé ne peut être désactivé que par le composant ayant commandé l'activation du mode sécurisé. L'authentification de ce composant peut être effectuée en utilisant une clé partagée de signature lors de la création du contexte. La commande GET_DATA est une commande qui peut être émise par l'application qui requiert la saisie d'informations telles qu'un PIN, un mot de passe, un identifiant ou des données diverses, et qui est destinée au composant logiciel de sécurisation. Les informations obtenues suite à l'exécution de cette commande sont envoyées chiffrées et signées à la partie frontale du composant logiciel de sécurisation, ou à l'application demanderesse, dans le cas où des clés auront été partagées. La commande DISPLAYDATA, qui requiert l'affichage d'informations dans une fenêtre de confiance. En réponse à cette commande, les informations sont transmises par la partie frontale du composant logiciel de sécurisation, ou de l'application, à la partie principale de ce composant, puis elles sont affichées dans l'interface utilisateur sous le contrôle de l'hyperviseur. La partie principale du composant logiciel de sécurisation, qui s'exécute au sein de l'hyperviseur, contrôle la mise en forme de ces informations. Notamment, l'hyperviseur peut afficher la provenance desdites informations. Par ailleurs, des commandes propres à la saisie de mots de passe, PIN ou autres informations d'identifications ou d'authentification sont susceptibles d'être mise en oeuvre dans le procédé selon l'invention. Il s'agit tout d'abord de la commande COMPARE PIN, qui est requise lorsque l'application requiert la saisie d'un PIN ou d'une autre information d'identification ou d'authentification. Cette information est validée par comparaison dans la partie principale du composant logiciel de sécurisation, qui s'exécute dans l'hyperviseur. La validation ou l'absence de validation de l'authentification est renvoyée, par exemple, chiffrée et signée, à la partie frontale du composant logiciel de sécurisation, voire à l'application demanderesse, si des clés ont été partagées à cet effet avec cette application. La saisie de l'information sous le contrôle du composant logiciel de sécurisation, qui s'exécute dans l'hyperviseur, est susceptible d'être effectuée au clavier, au moyen d'une souris ou en cliquant sur un pinpad notamment du type comprenant une fenêtre munie de touches visuelles sur lesquelles l'utilisateur doit cliquer. Il s'agit ensuite de la commande SET_PIN selon laquelle une application, qui envoie la commande, requiert la mise à jour d'une information d'identification ou d'authentification dans la mémoire de la partie principale du composant logiciel de sécurisation, qui s'exécute dans l'hyperviseur. En effet, l'information d'identification ou d'authentification est validée, dans la partie principale du composant logiciel de sécurisation, contre des données conservées en mémoire de celui-ci. Cette commande autorise donc la modification des données conservées dans la mémoire de la partie principale du composant logiciel. Elle peut être invoquée une première fois par une application quelconque, si l'application requiert l'établissement d'une information de comparaison dans la mémoire du composant logiciel. Ensuite, la modification de l'information par cette application quelconque ne pourra être effectuée que sur présentation et validation de l'information conservée en mémoire. Il s'agit enfin de la commande PAY TRANSACTION selon laquelle une application requiert un paiement pour une transaction donnée. Dans ce cas, la partie principale du composant logiciel de sécurisation, qui s'exécute dans l'hyperviseur, active un périphérique particulier tel qu'un lecteur de cartes à puce, requiert la saisie d'un code d'identification, valide le code entré ou non, et renvoie l'information de validation ou de non validation à la partie frontale du composant logiciel de sécurisation, voire à l'application demanderesse, si des clés ont été partagées à cet effet. On notera que la sécurisation du système selon l'invention peut avantageusement être renforcée en sécurisant le canal de communication entre la partie principale du composant logiciel de sécurisation et sa partie frontale. Dans ce cas, à la création du contexte de sécurisation, des clés de signature et/ou de chiffrement sont partagées entre les parties principale et frontale du composant. Ces clés sont utilisées pour sécuriser les requêtes et les réponses qui transitent entre ces parties. En particulier, si une information d'identification est validée par la partie frontale du composant, cette information sera transmise de manière sécurisée, chiffrée et/ou signée dans le canal de communication. En effet, si l'information et signée et/ou chiffrée, elle ne peut pas être modifiée et/ou lue par des machines virtuelles tierces. La sécurisation du système selon l'invention peut par ailleurs avantageusement être renforcée en sécurisant les communications entre la partie frontale du composant logiciel de sécurisation et la ou chacune des applications de la machine virtuelle comportant cette partie. Dans ce cas, des clés de chiffrement et/ou de signature sont partagées entre cette partie frontale et l'application sécurisée. Ces clés permettent de chiffrer et/ou de signer les messages qui transitent entre les deux entités notamment les informations d'identification ou d'authentification si celles-ci doivent être validées par l'application elle-même. Les autres applications de la machine virtuelle ne peuvent pas lire et/ou modifier les informations destinées à l'application demanderesse. 21 REVENDICATIONS1. Système pour la sécurisation d'une interface utilisateur comportant : une interface utilisateur comprenant un ou plusieurs périphériques matériels de l'interface utilisateur pour interagir avec ladite interface, lesdits périphériques matériels étant pilotés par des logiciels pilotes ; une ou plusieurs applications utilisant l'interface utilisateur ; caractérisé en ce qu'il comporte en outre : un hyperviseur disposant d'un accès direct aux périphériques matériels de l'interface utilisateur ; une ou plusieurs machines virtuelles permettant l'exécution de la ou des applications utilisant l'interface utilisateur, lesdites machines virtuelles ne disposant pas d'accès direct aux ressources matérielles de l'interface utilisateur ; et un composant logiciel de sécurisation comprenant une partie frontale contrôlée par la ou les machines virtuelles et une partie principale contrôlée par l'hyperviseur, les pilotes des périphériques matériels de l'interface utilisateur étant scindés en deux parties, une partie principale desdits pilotes étant placée sous le contrôle de l'hyperviseur, une partie frontale desdits pilotes étant placée sous le contrôle des machines virtuelles, la partie frontale du composant logiciel de sécurisation assurant la gestion de la partie frontale des pilotes, la partie principale du composant logiciel de sécurisation assurant la gestion de la partie principale des pilotes. 2. Système selon la revendication 1, caractérisé en 35 ce que les périphériques matériels de l'interfaceutilisateur comprennent au moins un périphérique d'entrée d'information de l'utilisateur et un écran. 3. Système selon l'une des revendications précédentes, caractérisé en ce que la partie principale du composant logiciel est apte à afficher et à contrôler l'affichage d'un composant d'interface graphique dans l'interface utilisateur, pour la saisie d'une information par l'utilisateur. 4. Système selon l'une des revendications précédentes , caractérisé en ce que la partie principale du composant logiciel est apte à valider une information d'identification et/ou d'authentification saisie par l'utilisateur. 5. Système selon l'une des revendications précédentes, caractérisé en ce que les informations échangées entre la partie principale du composant de sécurisation et la partie frontale de ce composant est sécurisé au moyen de clés de chiffrement et/ou de signature. 6. Système selon l'une des revendications précédentes, caractérisé en ce que des informations échangées entre la partie frontale du composant logiciel de sécurisation et une application de la machine virtuelle comportant cette partie frontale sont sécurisées au moyen de clés de chiffrement et/ou de signature. 7. Procédé pour la sécurisation d'une interface utilisateur, caractérisé en ce qu'il comprend les étapes de .fourniture d'une interface utilisateur comprenant un ou plusieurs périphériques matériels de l'interface utilisateur pour interagir avec ladite interface, lesdits périphériques matériels étant pilotés par des logiciels pilotes ; fourniture d'un hyperviseur, d'une ou plusieurs machines virtuelles permettant l'exécution d'une ou plusieurs applications utilisant l'interface utilisateur, lesdites machines virtuelles ne disposant pas d'accès direct aux ressources matérielles de l'interface utilisateur et d'un composant logiciel de sécurisation comprenant une partie frontale contrôlée par la ou les machines virtuelles et une partie principale contrôlée par l'hyperviseur ; d'exécution d'une application d'une machine virtuelle ; d'activation d'un mode sécurisé du système à la requête de l'application ; d'affichage sécurisé d'une information contrôlée par la partie principale du composant logiciel de sécurisation, l'hyperviseur accédant directement aux périphériques matériels de l'interface utilisateur ; puis de désactivation du mode sécurisé du système. 8. Procédé selon la revendication 7, caractérisé en ce qu'il comporte en outre les étapes suivantes selon lesquelles : l'application requiert la saisie d'une information utilisateur ; la requête de saisie est transmise à la partie principale du composant logiciel ; un composant graphique de saisie d'information est affiché sous le contrôle direct du composant logiciel de sécurisation ;l'utilisateur saisit une information utilisateur ; l'information utilisateur est validée. 9. Procédé selon la revendication 8, caractérisé en ce que l'information utilisateur est validée par la partie principale du composant logiciel de sécurisation, ou est renvoyée à la partie frontale dudit composant voire à l'application demanderesse, pour validation. 10. Procédé selon la revendication 9, caractérisé en ce que l'information utilisateur est validée contre des données conservées en mémoire de la partie principale du composant logiciel de sécurisation. 11. Procédé selon la revendication 10, caractérisé en ce que l'application requiert l'établissement ou la mise à jour d'une information conservée en mémoire du composant logiciel de sécurisation, en ce que l'information est saisie par l'utilisateur, et en ce qu'elle est enregistrée dans la partie principale du composant logiciel de sécurisation. 12. procédé selon l'une des revendications 8 à 11, 25 caractérisé en ce qu'il comporte en outre les étapes suivantes selon lesquelles : l'application requiert un affichage sécurisé d'une information ; la requête d'affichage est transmise à la partie 30 principale du composant logiciel ; et l'information est affichée sous le contrôle direct dudit composant logiciel. et