Brevet FR2984564A1 — publié le 20130621

Arrière-plan de l'invention La présente invention se situe dans le domaine de la sécurisation d'une application informatique s'exécutant sur un terminal. Plus précisément, l'invention se situe dans le domaine de la sécurisation des applications informatiques sollicitant la saisie de données sensibles d'un utilisateur, par exemple un mot de passe ou un code secret. L'application informatique en question est créée par un fournisseur d'applications. L'invention vise à empêcher qu'une application frauduleuse créée par un tiers malveillant, obtienne de telles données au moment où elles sont saisies par l'utilisateur. Dans ce contexte, un problème particulier a été identifié dans lequel une application frauduleuse introduite sur le terminal à l'insu de l'utilisateur s'exécute en tache de fond sur le terminal et superpose sur l'écran de saisie de l'application piratée, un écran de saisie frauduleux, copie exacte de cet écran de saisie, pour récupérer les données saisies par l'utilisateur. Dans l'état actuel de la technique, on connait des mécanismes de sécurisation visant à combiner l'écran de saisie des données sensibles avec une image connue de l'utilisateur. Malheureusement la sécurisation proposée par ce mécanisme n'est pas suffisante car le fournisseur d'applications ne peut garantir l'authenticité de cette image connue. L'invention propose un procédé de sécurisation et un terminal mettant en oeuvre ce procédé qui corrige certaines failles du procédé de l'art antérieur mentionné ci-dessus. Objet et résumé de l'invention Plus précisément, l'invention concerne un procédé de sécurisation d'une application informatique s'exécutant sur un terminal, ce procédé comportant : - une étape d'obtention d'une information selon laquelle l'application s'apprête à inviter un utilisateur du terminal à saisir des données ; - une étape d'accès à un fichier binaire représentatif d'une image secrète connue de l'utilisateur du terminal, ce fichier binaire étant mémorisé dans un élément de sécurité du terminal - une étape pour constituer, dans l'élément de sécurité, une image complexe obtenue à partir de l'image secrète et d'une donnée dynamique inaccessible au terminal ; et - une étape pour afficher l'image complexe sur un écran du terminal. Corrélativement, l'invention concerne un dispositif de sécurisation d'une application informatique s'exécutant sur un terminal, ce dispositif comportant : - des moyens d'obtention d'une information selon laquelle ladite application s'apprête à inviter un utilisateur du terminal à saisir des données ; - des moyens d'accès à un fichier binaire représentatif d'une image secrète connue de l'utilisateur du terminal, ce fichier binaire étant mémorisé dans un élément de sécurité du terminal ; - des moyens pour constituer, dans ledit élément de sécurité, une image complexe obtenue à partir de ladite image secrète et d'une donnée dynamique inaccessible audit terminal ; et - des moyens pour afficher ladite image complexe sur un écran du terminal. Ainsi, et d'une façon générale, l'invention propose, comme la technique de l'art antérieur mentionnée précédemment, d'afficher sur l'écran du terminal, une image connue de l'utilisateur de ce terminal, pour renforcer sa confiance sur le fait que l'application informatique qui s'exécute sur le terminal est une application autorisée. De façon remarquable, contrairement à l'art antérieur, le fichier binaire qui représente l'image secrète connue de l'utilisateur, est mémorisée dans un élément de sécurité du terminal. Cet élément de sécurité peut par exemple être constitué par une carte SIM, un support amovible de type "Secure SD Card" ou un élément de sécurité intégré au terminal ("Embedded Secure Element") ou encore une zone sécurisée du processeur applicatif grâce à l'utilisation d'une technologie de sécurité intégrée dans le processeur (par exemple la technologie TrustZone, marque déposée de la société ARM). Ainsi, en mémorisant l'image secrète dans l'élément de sécurité, il devient très difficile, pour une application frauduleuse, d'obtenir ce fichier binaire pour créer un écran frauduleux. L'invention garantit l'authenticité de l'image secrète. Par ailleurs, contrairement à l'art antérieur, l'image affichée sur l'écran du terminal n'est pas la simple image secrète connue de l'utilisateur, mais une image complexe obtenue à partir de cette image secrète et d'une donnée dynamique inaccessible au terminal. Le fait de combiner l'image secrète avec une donnée dynamique (autrement dit de « variabiliser » l'image secrète) augmente considérablement l'entropie de l'image affichée sur l'écran du terminal, si bien que même si une application frauduleuse parvenait à obtenir copie de l'image affichée, elle pourrait très difficilement reconstituer l'image secrète pour tromper l'utilisateur. L'invention s'applique en particulier pour des applications de paiement sans contact, par exemple conforme à la norme NFC. Dans ce contexte particulier de mise en oeuvre de l'invention, la donnée dynamique peut être un montant d'une transaction de paiement. D'une façon générale, il est préférable que la donnée dynamique soit un paramètre de l'application à sécuriser. Conformément à l'invention, la donnée dynamique est inaccessible au terminal. Cela signifie que les applications du terminal ne peuvent pas obtenir cette donnée dynamique en tant que telle, mais simplement l'image de ces données dynamiques combinée avec l'image secrète. Conformément à l'invention, le procédé de sécurisation est mis en oeuvre lorsqu'il est détecté que l'application à sécuriser s'apprête à inviter l'utilisateur du terminal à saisir des données. Cette invitation peut se faire de différentes façons. Par exemple, l'invitation peut être un message audio invitant l'utilisateur à saisir des données de façon vocale. Dans ce cas, dès que ce message audio est détecté, on affiche l'image complexe sur l'écran du terminal. Dans un mode particulier de l'invention, l'invitation se fait par un écran applicatif comportant une zone de saisie textuelle des données. Dans ce mode de réalisation, la sécurisation consiste à combiner l'image complexe avec cet écran applicatif. On se rapproche ainsi de la solution de l'art antérieur mais, avec deux différences majeures, selon lesquelles - d'une part l'image secrète est mémorisée dans un élément de sécurité du terminal ; et - d'autre part, l'image secrète est combinée avec une donnée dynamique inaccessible au terminal. L'invention peut être mise en oeuvre pour sécuriser des applications dans lesquelles les données saisies par l'utilisateur sont validées de façon implicite. Par exemple, l'invention peut être mise en oeuvre dans un procédé dans lequel on demande à l'utilisateur de saisir un code secret à quatre chiffres, la saisie du 4ème chiffre validant la saisie du code secret. Mais l'invention, s'applique préférentiellement pour des applications dans lesquelles on demande à l'utilisateur de valider la saisie de façon explicite. Dans ce mode de réalisation, l'affichage est effectué avant de permettre la validation de la saisie. On peut ainsi demander à l'utilisateur de confirmer que l'image complexe affichée sur l'écran du terminal correspond à l'image secrète choisie par cet utilisateur. On peut ainsi attendre une telle confirmation avant de présenter à l'utilisateur des boutons de validation de la saisie. Deux variantes principales de l'invention peuvent être envisagées. Selon une première variante, l'application à sécuriser comporte elle-même les moyens pour obtenir l'image secrète, pour constituer l'image complexe, et pour afficher cette image complexe sur l'écran du terminal. Dans ce mode de réalisation de l'invention, il est nécessaire que l'application puisse accéder à l'élément de sécurité pour obtenir l'image secrète et pour constituer l'image complexe. Mais il n'est pas indispensable, pour la mise en oeuvre de ce mode de réalisation, que l'application s'exécute elle-même dans l'élément de sécurité. Dans une deuxième variante de réalisation, l'invention peut être mise en oeuvre par une application de sécurisation afin de sécuriser une autre application informatique. Il est simplement nécessaire, dans cette variante de réalisation, que l'application de sécurisation puisse obtenir un message de l'application informatique à sécuriser selon lequel celle-ci s'apprête à inviter l'utilisateur à saisir des données. L'application de sécurisation constitue alors l'image complexe, et la renvoie à l'application à sécuriser qui l'affiche à l'écran. Si, suite à cet affichage, l'utilisateur confirme avoir reconnu l'image secrète, la validation de la saisie peut se faire par une action de l'utilisateur. Une telle application de sécurisation sera préférentiellement exécutée dans l'élément de sécurité. Dans un mode particulier de réalisation de l'invention, l'application à sécuriser s'exécute au moins partiellement dans l'élément de sécurité. C'est notamment le cas pour une application de paiement, dans laquelle un module d'interface homme-machine s'exécute sur le terminal, le module en charge du paiement a proprement parler s'exécutant dans l'élément de sécurité. Dans un mode particulier de réalisation, les différentes étapes du procédé de sécurisation sont déterminées par des instructions de programmes d'ordinateurs. En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en oeuvre par un ordinateur, ce programme comportant des instructions adaptées à la mise en oeuvre des étapes du procédé de sécurisation tel que mentionné ci-dessus. Dans un mode particulier de l'invention, ce programme comporte en outre des instructions pour exécuter au moins une partie de l'application informatique à sécuriser. Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. L'invention vise aussi un support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy disc) ou un disque dur. Différentes solutions peuvent être envisagées. Par exemple, le support d'enregistrement comporte : - un programme d'ordinateur apte à mettre en oeuvre le procédé de sécurisation selon l'invention, mais pas l'application à sécuriser ; ou - un programme d'ordinateur apte à mettre en oeuvre l'application à sécuriser et le procédé selon l'invention ; ou - deux programmes d'ordinateurs indépendants ; l'un pour mettre en oeuvre l'application informatique à sécuriser, l'autre pour mettre en oeuvre le procédé selon l'invention. D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. L'invention vise également un élément de sécurité comportant un dispositif tel que mentionné précédemment. Dans un mode particulier de réalisation, l'élément de sécurité selon l'invention comporte un domaine de sécurité accessible uniquement par l'application informatique à sécuriser, le fichier binaire étant mémorisé dans ce domaine de sécurité. La notion de domaine de sécurité est par exemple celle proposée par la norme Global Platform et usuellement implémentée dans les éléments de sécurité tels que des cartes SIM/USIM de nouvelle génération. Cela permet de renforcer la sécurité de la solution, notamment lorsque l'élément de sécurité comporte plusieurs applications informatiques, chacune ayant ainsi accès à sa propre image secrète de façon étanche. L'invention vise également un terminal comportant un dispositif tel que mentionné ci- dessus ou un élément de sécurité tel que mentionné ci-dessus. Dans un mode particulier de réalisation, le terminal selon l'invention comporte en outre des moyens, par exemple le système d'exploitation du terminal, aptes à empêcher des copies d'écran du terminal. Ce mode de réalisation est particulièrement avantageux, car il permet également de sécuriser des applications contre des attaques d'application frauduleuses qui seraient en mesure de détecter l'affichage de l'image complexe selon l'invention et de créer à la volée une copie conforme de cette image pour obtenir frauduleusement les données saisies par l'utilisateur. Brève description des dessins D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous en référence aux dessins qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures : - la figure 1 représente un écran applicatif d'une application pouvant être sécurisée par l'invention ; - les figures 2A et 2B représentent une image secrète et une image complexe au sens de l'invention ; - les figures 3A et 3B représentent des écrans applicatifs sécurisés par l'invention ; - la figure 4 représente un terminal conforme à un mode particulier de réalisation de l'invention ; et - la figure 5, représente, sous forme d'organigramme, les principales étapes d'un procédé de sécurisation conforme à un mode particulier de réalisation de l'invention. Description détaillée de l'invention La figure 1 représente un écran applicatif EA d'une application pouvant être sécurisée par l'invention. Cet écran applicatif comporte une zone de saisie ZS dans laquelle l'utilisateur peut par exemple saisir un code secret et deux boutons B1 et B2 pour valider ou annuler la saisie des données dans la zone ZS. La figure 2A représente une image secrète IMS au sens de l'invention. Il s'agit d'une image choisie par l'utilisateur du terminal, cette image étant destinée à être mémorisée dans un élément de sécurité du terminal. La figure 2B représente une image complexe au sens de l'invention. Cette image complexe est obtenue par combinaison de l'image secrète de la figure 2 et d'une donnée dynamique inaccessible au terminal. Dans cet exemple, l'application informatique à sécuriser est une application de paiement, et la donnée dynamique est un montant (10 E) d'une transaction que l'utilisateur s'apprête à valider par la saisie d'un code secret. La figure 3A représente l'écran applicatif de la figure 1 combiné avec l'image complexe IMC de la figure 2B. Cet écran est destiné à être présenté à l'utilisateur pour la saisie des données. L'utilisateur reconnait alors son image secrète IMS et est donc rassuré sur la conformité de l'application qui affiche cet écran. Conformément à l'invention, cette image secrète IMS est combinée avec la donnée dynamique constituée ici par le montant de transaction, si bien qu'il est très difficile par une application frauduleuse de reconstituer cette image complexe. Dans l'exemple de la figure 3A, une "check box" CB est présentée à l'utilisateur pour lui demander de confirmer qu'il a bien reconnu l'image complexe IMS avant de lui présenter les boutons de validation de la saisie. L'écran applicatif comportant ses boutons de validation est présenté à la figure 3B. La figure 4 représente un terminal TRM conforme à l'invention. Ce terminal comporte - un écran DSP ; - un processeur 21 apte à mettre en oeuvre les fonctions classiques d'un terminal de communications ; - une mémoire vive de type RAM 22 ; - une mémoire morte de type ROM 23 comportant, dans cet exemple, un système d'exploitation OS, un programme P2 exécuté par le processeur 21 pour mettre en oeuvre les fonctions classiques du terminal et un module IHM de l'application à sécuriser APP, ce module IHM réalisant l'interface entre l'utilisateur et le module sécurisé MS de cette application ; - un élément sécurisé SEC constitué ici par une carte SIM ; et - un module de communication NFC (Near Field Communication"), ce module de communication permettant notamment au terminal d'effectuer des transactions de paiement avec un lecteur non représenté. L'élément sécurisé SEC comporte ici un processeur 11, une mémoire RAM de type 12 et une mémoire morte de type ROM 13. Cette mémoire morte de type ROM 13 constitue un support au sens de l'invention. Elle comporte le module sécurisé MS de l'application APP à sécuriser et un programme d'ordinateur P1 conforme à l'invention. Ce programme d'ordinateur comporte des instructions pour permettre l'exécution des étapes du procédé de sécurisation selon l'invention qui sera décrit ultérieurement en référence à la figure 5. Conformément à l'invention, l'élément de sécurisation comporte également un fichier binaire comportant l'image secrète IMS de la figure 2A. Dans le mode de réalisation décrit ici, ce fichier binaire est mémorisé dans un domaine de sécurité DS propre à l'application APP. L'élément de sécurité SEC comporte également un bus pour recevoir des données de transaction et notamment des montants de transaction. Ces montants de transaction constituent des données dynamiques aptes à être combinées avec l'image sécurité IMS pour présentation à l'utilisateur du terminal. En référence à la figure 5, nous allons maintenant décrire un mode particulier de réalisation de l'invention. Au cours d'une étape E10, le processeur 11 de l'élément de sécurité SC obtient une information selon laquelle l'application APP s'apprête à inviter l'utilisateur du terminal TRM à saisir des données. Cette étape peut consister à recevoir un message particulier du module sécurisé MS de l'application de paiement APP. Au cours d'une étape E20, le processeur 11 accède au fichier binaire mémorisé dans l'élément de sécurité DS pour obtenir l'image secrète IMS connue de l'utilisateur du terminal. Au cours d'une étape E30, le processeur 11 combine cette image secrète IMS avec des données dynamiques DD correspondant au montant d'une transaction. On notera que les données dynamiques DD ne sortent jamais de l'élément sécurisé SEC. Ils sont simplement combinés, sous forme d'image à l'image secrète IMS pour constituer une image complexe IMC. L'image complexe IMC est présentée à l'utilisateur au cours d'une étape E40. Cette image complexe est, dans cet exemple, combinée avec l'écran applicatif EA de l'application APP comme représenté à la figure 3A. Si l'utilisateur coche la "check box" CB, cette opération étant interprétée comme le fait que l'utilisateur a reconnu l'image secrète IMS, on lui présente les boutons B1 et B2 de validation ou d'annulation de la saisie comme représenté à la figure 3B. On suppose que l'utilisateur valide la saisie des données secrètes au cours d'une étape E50. Dans le mode de réalisation décrit ici, au cours d'une étape E60, on vérifie si l'image sécurisée IMS a été lue, un nombre MAX prédéterminé de fois. Si tel est le cas, on invite l'utilisateur, au cours d'une étape E70, à changer l'image secrète mémorisée dans le domaine de sécurité DS. Le processeur 11, les mémoires 12 et 13, et le programme d'ordinateur P1 constituent un exemple de dispositif de sécurisation au sens de d'invention, pour sécuriser l'application informatique APP, en ce qu'ils offrent : - des moyens pour obtenir d'une information selon laquelle l'application APP s'apprête à inviter un utilisateur du terminal TRM à saisir des données ; - des moyens d'accès à un fichier binaire représentatif d'une image secrète connue de l'utilisateur du terminal, ce fichier binaire étant mémorisé dans un élément de sécurité du terminal ; - des moyens pour constituer, dans l'élément de sécurité, une image complexe obtenue à partir de l'image secrète et d'une donnée dynamique inaccessible audit terminal ; et - des moyens pour afficher cette image complexe sur un écran du terminal. REVENDICATIONS1. Procédé de sécurisation d'une application informatique (APP) s'exécutant sur un terminal (TRM), ce procédé comportant : - une étape (E10) d'obtention d'une information selon laquelle ladite application s'apprête à inviter un utilisateur du terminal à saisir des données ; - une étape (E20) d'accès à un fichier binaire représentatif d'une image secrète connue de l'utilisateur du terminal, ce fichier binaire étant mémorisé dans un élément de sécurité (SEC) du terminal ; - une étape (E30) pour constituer, dans ledit élément de sécurité, une image complexe obtenue à partir de ladite image secrète et d'une donnée dynamique inaccessible audit terminal ; et - une étape (E40) pour afficher ladite image complexe sur un écran du terminal. 2. Procédé de sécurisation selon la revendication 1 caractérisé en ce que ledit affichage (E40) est effectué avant validation (E50) de ladite saisie. 3. Procédé de sécurisation selon la revendication 1, dans lequel ladite invitation consiste à afficher un écran applicatif comportant une zone de saisie (ZS) desdites données, caractérisé en ce que ladite étape d'affichage (E40) consiste à afficher une image obtenue par combinaison, au sein dudit élément de sécurité, dudit écran applicatif (EA) avec ladite image complexe (IMC). 4. Procédé de sécurisation selon la revendication 1, caractérisé en ce qu'il comporte une étape (E70) pour inciter l'utilisateur à changer ladite image secrète. 5. Procédé de sécurisation selon la revendication 1, caractérisé en ce que ladite application (APP) s'exécute au moins partiellement dans ledit élément de sécurité (SEC). 6. Procédé de sécurisation selon la revendication 1, caractérisé en ce que ladite donnée dynamique (DD) est un paramètre de ladite application. 7. Procédé de sécurisation selon la revendication 6, caractérisé en ce que, ladite application est une application de paiement sans contact, ladite donnée dynamique est le montant d'une transaction. 8. Programme d'ordinateur (P1) comportant des instructions pour l'exécution de chacune des étapes du procédé de sécurisation selon l'une quelconque des revendications 1 à 7, lorsque ledit programme est exécuté par un processeur (11). 9. Programme d'ordinateur selon la revendication 8, caractérisé en ce qu'il comporte en outre des instructions pour exécuter au moins une partie (MS) de ladite application informatique lorsque ledit programme est exécuté par ledit processeur. 10. Support d'enregistrement (13) lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur selon la revendication 8 ou 9. 11. Support d'enregistrement selon la revendication 10, caractérisé en ce qu'il comporte un premier programme (PM) selon la revendication 9 et un deuxième programme, indépendant dudit premier programme, ce deuxième programme comportant des instructions pour exécuter au moins une partie (MS) de ladite application informatique (APP) lorsque ledit programme est exécuté par un processeur (L11). 12. Dispositif de sécurisation d'une application informatique (APP) s'exécutant sur un terminal (TRM), ce dispositif comportant : - des moyens d'obtention d'une information selon laquelle ladite application s'apprête à inviter un utilisateur du terminal à saisir des données ; - des moyens d'accès à un fichier binaire représentatif d'une image secrète connue de l'utilisateur du terminal, ce fichier binaire étant mémorisé dans un élément de sécurité (SEL) du terminal ; - des moyens pour constituer, dans ledit élément de sécurité, une image complexe obtenue à partir de ladite image secrète et d'une donnée dynamique inaccessible audit terminal ; et - des moyens pour afficher ladite image complexe sur un écran du terminal. 13. Elément de sécurité (SEC) comportant un dispositif selon la revendication 12. 14. Elément de sécurité (SEC) selon la revendication 13, caractérisé en ce qu'il comporte un domaine de sécurité (DS) propre à ladite application informatique (APP), ledit fichier binaire étant mémorisé dans ce domaine de sécurité. 15 Terminal comportant un dispositif selon la revendication 12. 16. Terminal selon la revendication 15, caractérisé en ce qu'il comporte des moyens aptes à empêcher les copies d'écran dudit terminal.