Brevet FR2961328A1 — publié le 20111216

Arrière-plan de l'invention La présente invention se situe dans le domaine technologique des dispositifs permettant la sécurisation de l'accès à une fonction. D'une façon générale, l'invention peut être mise en oeuvre dans un dispositif de sécurisation connu de l'homme du métier sous le nom de « dongle » ou de « verrou matériel », de tels dispositifs pouvant être utilisés pour authentifier l'utilisateur d'une application logicielle s'exécutant sur la station hôte à laquelle ce dispositif est connecté et éventuellement bloquer l'exécution de cette fonction en cas d'échec de l'authentification. Dans ce document, la notion de « fonction » est à comprendre au sens large. L'invention s'applique en effet, et de façon non limitative, pour sécuriser l'accès à une fonction mise en oeuvre par le dispositif selon l'invention lui-même, par une fonction mise en oeuvre par un équipement apte à communiquer avec ce dispositif, ou pour sécuriser l'accès à un service. Le dispositif de sécurisation selon l'invention peut notamment être constitué par une clé USB. Dans ce mode de réalisation, l'invention peut en particulier être utilisée pour protéger une fonction qui s'exécute sur cette clé USB contre une attaque malveillante venant de la station hôte à laquelle cette clé est connectée ; il peut notamment s'agir d'une fonction d'accès en lecture ou en écriture à une mémoire de masse comprise dans la clé USB, ou d'une fonction d'authentification. Le dispositif selon l'invention peut aussi être une carte à puce. Le document WO 2010/049257 décrit un verrou matériel constitué en l'espèce par une carte SIM (Subscriber Identification Module) du type de celles utilisées dans les téléphones mobiles, cette carte comportant des moyens pour mémoriser un code secret permettant d'authentifier un utilisateur , par exemple un code PIN (Personal Identification Number). Cette carte SIM comporte des moyens pour générer un aléa et des moyens pour afficher une image distordue de cet aléa sur l'écran du téléphone mobile incorporant cette carte SIM. Cette carte SIM comporte aussi des moyens d'obtention d'un message constitué par la concaténation du code PIN et de l'aléa saisis par l'utilisateur au clavier du téléphone mobile, l'utilisateur étant authentifié 1 par la carte SIM si et seulement si le code PIN et l'aléa saisis par l'utilisateur au clavier par l'utilisateur sont similaires respectivement au code PIN mémorisé par la carte SIM et à l'aléa généré par cette carte SIM. Ce mécanisme est relativement fragile car il peut être aisément contourné par un logiciel malveillant exécuté par le téléphone portable apte d'une part à intercepter le code PIN saisi par l'utilisateur et d'autre part à reconnaître l'image distordue représentant cet aléa ; ceci est d'autant plus critique que l'on connaît maintenant des robots logiciels performants pour reconnaître de telles images. Objet et résumé de l'invention L'invention vise un dispositif de sécurisation de l'accès à une fonction qui ne présente pas les inconvénients de ceux de l'art antérieur. Plus précisément, l'invention concerne un dispositif de sécurisation de l'accès à une fonction comportant : - des moyens de communication avec un équipement électronique ; - une mémoire non volatile comportant un premier code ; - des moyens de déclenchement de la génération d'un aléa et d'obtention de cet aléa ; - des moyens de mémorisation de cet aléa dans une mémoire volatile; - des moyens de présentation d'un deuxième code obtenu à partir de cet aléa sur un dispositif de présentation de code différent de l'équipement électronique ; - des moyens de réception d'au moins un message en provenance de l'équipement comportant un troisième code et un quatrième code ; - des moyens de comparaison du troisième code avec le premier code et de comparaison du quatrième code avec l'aléa; et - des moyens pour autoriser l'accès à la fonction sécurisée uniquement si les deux comparaisons sont réussies. Le dispositif de sécurisation selon l'invention peut notamment être constitué par une clé USB apte à être connectée à l'équipement électronique ou par une carte à puce lisible par un lecteur de cet équipement. Corrélativement, l'invention vise un procédé de sécurisation de l'accès à une fonction mis en oeuvre par un dispositif de sécurisation apte à communiquer avec un équipement électronique, ce procédé comportant : - une étape de déclenchement de la génération d'un aléa et d'obtention de cet aléa ; - une étape de mémorisation de cet aléa dans une mémoire volatile de ce dispositif de sécurisation ; - une étape de présentation d'un deuxième code obtenu à partir de l'aléa sur un dispositif de présentation de code différent de l'équipement électronique précité ; - une étape de réception d'au moins un message en provenance de l'équipement électronique, ce message comportant un troisième code et un quatrième code ; - une étape de comparaison du troisième code avec un premier code mémorisé dans une mémoire non volatile du dispositif de sécurisation et de comparaison du quatrième code avec l'aléa mémorisé dans sa mémoire volatile ; et - une étape pour autoriser l'accès à la fonction sécurisée uniquement si les deux comparaisons sont réussies. Les caractéristiques et avantages du procédé de sécurisation et du 20 dispositif de sécurisation selon l'invention sont similaires. Dans un mode particulier de réalisation de l'invention, le premier code est un code PIN mémorisé dans la mémoire non volatile du dispositif de sécurisation, et le troisième code, un code PIN saisi par l'utilisateur sur l'interface homme/machine de l'équipement électronique. 25 Ainsi, et d'une façon générale, l'invention propose de présenter le deuxième code représentatif de l'aléa sur un dispositif de restitution différent de celui utilisé par l'utilisateur pour saisir le troisième code. Par conséquent, même si un logiciel malveillant installé sur l'équipement électronique parvenait à pirater le troisième code saisi par 30 l'utilisateur, (par exemple correspondant au code PIN, celui-ci ne pourrait permettre de contourner le dispositif de sécurisation, étant en tout état de cause dans l'incapacité d'intercepter le quatrième code destiné à être comparé à l'aléa, celui-ci étant présenté sur un autre dispositif. Dans un mode particulier de réalisation de l'invention, le deuxième 35 code présenté à l'utilisateur sur le dispositif de restitution de code est l'aléa lui-même ou un code obtenu par déformation graphique de l'aléa. Cette fonction de déformation peut être réalisée en utilisant une solution de type « captcha » connue de l'homme du métier. Ce mode de réalisation renforce la sécurité du système de l'invention ; il est avantageux si le dispositif de restitution comporte des moyens de communication avec l'équipement électronique communiquant les codes au dispositif de sécurisation. Ce mode de réalisation renforce la sécurité du système de l'invention ; il est avantageux si le dispositif de restitution comporte des moyens de communication avec l'équipement électronique communiquent les codes au dispositif de sécurisation. Dans un mode de réalisation de l'invention, le dispositif de présentation du deuxième code obtenu à partir de l'aléa est le dispositif de sécurisation lui-même. Lorsque le dispositif de sécurisation est une clé USB, celle-ci peut comporter un afficheur sur lequel on présente le deuxième code. Lorsque le dispositif de sécurisation est constitué par une carte à puce, celle-ci peut contenir un afficheur ou un ensemble de LEDs aptes à représenter le deuxième code. Bien entendu, des LEDs peuvent aussi être utilisés sur une clef USB. Dans un mode particulier de réalisation, le dispositif de sécurisation selon l'invention comporte des moyens pour générer l'aléa lui-même. Ces moyens de génération de l'aléa peuvent par exemple être constitués par un micro-contrôleur apte à mettre en oeuvre un procédé cryptographique. En variante, le dispositif de sécurisation selon l'invention peut demander à un dispositif tiers de calculer cet aléa, ce dispositif tiers communiquant l'aléa généré au dispositif de sécurisation selon l'invention pour que ce dernier le mémorise dans sa mémoire volatile de façon à pouvoir le comparer ultérieurement avec le quatrième code saisi par l'utilisateur et reçu de l'équipement électronique. Dans un mode particulier de réalisation de l'invention, l'aléa est généré au moment de l'initialisation du dispositif de sécurisation ; il reste présenté sur l'interface homme/machine du dispositif de présentation de code tant que le dispositif de sécurisation selon l'invention est sous tension. En variante, le dispositif de sécurisation selon l'invention peut comporter une interface homme/machine permettant le déclenchement de la génération de l'aléa, par exemple sous la forme d'un bouton poussoir. Dans un mode particulier de réalisation de l'invention, le dispositif de sécurisation selon l'invention mémorise un compteur représentant le nombre de messages erronés reçus par le dispositif de sécurisation d'accès selon l'invention. On peut utiliser un compteur unique pour le message ou un compteur pour chaque partie du message à savoir un compteur pour le 10 troisième code et un compteur pour le quatrième code. Dans ce mode de réalisation de l'invention, le dispositif de sécurisation comporte des moyens pour inhiber le dispositif de sécurisation lorsque le compteur dépasse un seuil déterminé. Cette inhibition peut constituer simplement à renoncer aux deux 15 comparaisons précitées. Elle peut aussi s'accompagner de la présentation d'un message d'erreur soit sur le dispositif de présentation lui-même soit sur un autre terminal. Dans un mode particulier de réalisation de l'invention, le message reçu par le dispositif de sécurisation selon l'invention est une commande 20 APDU, par exemple une commande de type PIN VERIFY conforme à la norme ISO7816. Ce message peut comporter une simple concaténation du troisième et du quatrième code saisis par l'utilisateur et destinés à être comparés respectivement avec le premier code et avec l'aléa mémorisés par le 25 dispositif de sécurisation selon l'invention. Par conséquent, si le troisième code saisi par l'utilisateur diffère du premier code (code PIN par exemple), ou si le quatrième code saisi par l'utilisateur diffère de l'aléa, le dispositif de sécurisation d'accès selon l'invention refuse l'accès à la fonction protégée. 30 Dans un mode particulier de réalisation de l'invention, le dispositif de sécurisation régénère un aléa à chaque fois que la vérification du message est positive (deux comparaisons réussies) ou lorsque cette étape de comparaison a été réussie un nombre déterminé de fois consécutives, par exemple dix. 35 Ce mode de réalisation permet à l'équipement électronique de resoumettre le troisième code (code PIN) ce nombre déterminé de fois 10 15 20 adaptées à la mise en oeuvre des que mentionné ci-dessus. Ce programme peut programmation, et être sous la code intermédiaire entre code forme partiellement compilée, souhaitable. L'invention vise aussi un consécutives sans resolliciter l'utilisateur. Il est particulièrement avantageux lorsque l'équipement électronique met en oeuvre un système d'exploitation qui nécessite de nombreuses signatures lorsque l'utilisateur s'authentifie avec le dispositif de sécurisation. En variante, l'aléa peut aussi être régénéré à chaque fois que l'une des comparaisons a échoué. Ce mode de réalisation permet d'éviter l'utilisation d'un compteur. 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 procédé de sécurisation tel étapes du utiliser n'importe quel langage de forme de code source, code objet, ou de source et code objet, tel que dans une ou dans n'importe quelle autre forme 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 25 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. 30 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. 35 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. 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 annexés qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures : - la Figure 1 représente un dispositif de sécurisation conforme à un mode particulier de réalisation de l'invention ; - la Figure 2 représente une utilisation du dispositif de sécurisation de la Figure 1 ; - la Figure 3 représente un message pouvant être utilisé dans l'invention ; - la Figure 4 représente un deuxième dispositif de sécurisation conforme à l'invention ; - la Figure 5 représente l'utilisation d'un autre dispositif de sécurisation conforme à l'invention ; et - la Figure 6 représente sous forme d'organigramme les principales étapes d'un procédé de sécurisation conforme à l'invention. Description détaillée de l'invention La Figure 1 représente un dispositif de sécurisation 10 conforme à l'invention. Dans cet exemple il s'agit d'une clé USB. Cette clé USB comporte un connecteur 11 permettant de connecter la clé USB 10 à un équipement électronique. Elle comporte également un contrôleur 12 et un afficheur 17. Le contrôleur 12 comporte : - un processeur 15, une mémoire non volatile 13 comportant un premier code Cl constitué dans cet exemple par un code PIN ; - une mémoire vive 14 et une mémoire morte 16 comportant un programme d'ordinateur PG conforme à l'invention exécutable par le processeur 15. Dans le mode de réalisation décrit ici, le processeur 15 est apte à générer un aléa lorsque la clé USB 11 est insérée dans un port USB d'un équipement électronique et à mémoriser cet aléa dans la mémoire volatile 14. Cet aléa est préférentiellement un code court, par exemple de moins de 10 chiffres, préférentiellement de moins de 6 chiffres afin de faciliter se représentation, sa lecture par l'utilisateur ainsi que sa saisie. Le processeur 15 est également apte à présenter un code C2 obtenu par déformation de l'aléa sur l'afficheur 17. En référence à la Figure 2 lorsque l'utilisateur veut accéder à la fonction protégée par ce dispositif 11, il saisit dans une zone de saisie ZS son code PIN (troisième code au sens de l'invention) et l'aléa (quatrième code au sens de l'invention) tel que présenté sur l'afficheur 17 de la clef USB 10. Cette saisie génère l'envoi d'un message M par l'équipement électronique 100 au dispositif de sécurisation 10, un exemple de ce 20 message étant représenté à la Figure 3. Dans l'exemple de réalisation décrit ici, le message M est obtenu par concaténation du troisième code C3 (code PIN) et du quatrième code C4 (aléa ) saisis par l'utilisateur dans la zone ZS. Lorsque le message M est reçu par la clé USB 11, le processeur 15 25 compare d'une part le troisième code avec le premier code mémorisé dans la mémoire non volatile 13 et d'autre part le quatrième code C4 avec l'aléa mémorisé dans la mémoire volatile 14. Si l'une ou l'autre de ces comparaisons échoue, l'accès à la fonction protégée par la clé USB 11 est interdit. 30 Au contraire, si les deux comparaisons sont réussies, l'accès à la fonction est autorisé. La Figure 4 représente un deuxième dispositif de sécurisation 20 conforme à l'invention. Ce deuxième dispositif de sécurisation 20 est constitué dans cet 35 exemple par une carte à microcircuit. Cette carte à microcircuit peut être une carte à puce conforme à la norme ISO7816 ou une carte conforme à la norme SD ou microSD. L'architecture matérielle de cette carte à puce est similaire à celle de la clé USB de la Figure 1 en ce qui concerne les moyens de l'invention. On notera cependant que le connecteur USB 11 est remplacé par un module à contact 21 et que l'afficheur 17 est remplacé par un ensemble de LEDs 27, ces LEDs pouvant être allumées ou éteintes pour représenter l'aléa généré par le processeur 15 de cette carte à microcircuit. Dans l'exemple de réalisation décrit ici, le dispositif de sécurisation 20 comporte, en mémoire vive 14, un compteur CPT du nombre de messages erronés reçus par ce dispositif. A la Figure 5 on a représenté un autre mode de réalisation, dans lequel le dispositif de sécurisation 10 ou 20 selon l'invention ne comporte pas de moyen pour générer l'aléa mais des moyens de communication 19 avec un téléphone mobile 200. Dans l'exemple de réalisation décrit ici, ces moyens de communication 19 peuvent être conformes à la norme NFC, Zigbee ou Bluetooth. Ce téléphone mobile 200 comporte des moyens 220 pour générer un aléa sur demande du dispositif de sécurisation 10, 20 et un afficheur 210 pour présenter un code C2 représentatif de cet aléa. Lorsque cet aléa est généré par le téléphone mobile 200, les moyens de communication 19 du dispositif de sécurisation 10, 20 sont aptes à obtenir cet aléa et à le mémoriser dans la mémoire volatile 14 du dispositif de sécurisation 10, 20, pour vérification ultérieure du message M reçu en provenance de l'équipement électronique 100. Dans un autre mode de réalisation, le téléphone mobile 200 et le dispositif de sécurisation 10, 20 ne communiquent pas mais sont synchronisés pour générer l'aléa chacun de leur côté, par exemple à partir d'une graîne et d'une fonction cryptographique de DES (« Data Encryption Standard ») ou autre. En référence à la Figure 6 nous allons maintenant décrire les principales étapes d'un procédé de sécurisation conforme à l'invention. Dans l'exemple de réalisation décrit ici ce procédé comporte une étape E10 d'initialisation mise en oeuvre lorsque le dispositif de sécurisation 10, 20 est inséré dans l'équipement électronique. Cette étape E10 d'initialisation est suivie par une étape E20 de génération de l'aléa soit par le dispositif de sécurisation lui-même soit par un dispositif autre, de type du téléphone mobile 200 de la Figure 5. Au cours de cette étape E20, l'aléa est mémorisé dans une mémoire volatile du dispositif de sécurisation. Au cours d'une étape E30, un deuxième code obtenu à partir de cet aléa est présenté à l'utilisateur sur le dispositif de sécurisation lui-même ou sur un autre équipement, mais en tout état de cause pas sur l'équipement électronique 100 qui sera utilisé pour la saisie d'un code PIN. Lorsque le troisième code (code PIN) et le quatrième code (aléa) sont saisis au niveau de l'équipement électronique 100, un message M est envoyé par cet équipement électronique au dispositif de sécurisation selon l'invention au cours d'une étape E40, ce message comportant la concaténation des troisième et quatrième codes. Dans l'exemple de réalisation décrit ici, on utilise un compteur CPT qui mémorise le nombre de messages erronés reçus par le dispositif de sécurisation, un message étant erroné dès lors qu'il comporte un troisième code (code PIN) ou un quatrième code (aléa) non correct. Dans l'exemple de réalisation décrit ici, ce compteur CPT est comparé à une valeur seuil au cours d'une étape E45. Si le compteur dépasse cette valeur seuil, le dispositif de sécurisation selon l'invention est inhibé au cours d'une étape E90. Lorsque le résultat du test E45 est négatif, le dispositif de sécurisation compare, au cours d'une étape E50, d'une part si le troisième code correspond à un premier code mémorisé dans une mémoire non volatile du dispositif électronique (code PIN) et si d'autre part l'aléa saisi par l'utilisateur correspond à la valeur de l'aléa mémorisée dans la mémoire volatile 14 de ce dispositif. Si cette double comparaison réussit, le résultat du test E60 est positif et l'accès à la fonction protégée par le dispositif de sécurisation selon l'invention est autorisé au cours d'une étape E100. En revanche, si l'une ou l'autre de ces comparaisons échoue, le test E60 est suivi par une étape E70 d'incrémentation du compteur CPT et par une étape E80 au cours de laquelle le dispositif de sécurisation selon l'invention refuse l'accès à la fonction protégée par ce dispositif. REVENDICATIONS1. Dispositif (10,20) de sécurisation de l'accès à une fonction comportant : - des moyens (11,21) de communication avec un équipement électronique (100) ; - une mémoire non volatile comportant un premier code (Cl) ; - des moyens (15,25) de déclenchement de la génération d'un aléa et d'obtention dudit aléa ; - des moyens de mémorisation dudit aléa dans une mémoire volatile (14,24) ; - des moyens de présentation d'un deuxième code obtenu à partir dudit aléa sur un dispositif (10,200) de présentation de code différent dudit équipement électronique (100) ; - des moyens (11,21) de réception d'au moins un message (M) en provenance dudit équipement comportant un troisième code (C3) et un quatrième code (C4) ; - des moyens de comparaison du troisième code (C3) avec le premier code (Cl) et de comparaison du quatrième code (C4) avec ledit aléa; et - des moyens pour autoriser l'accès à ladite fonction uniquement si les deux comparaisons sont réussies. 2. Dispositif de sécurisation selon la revendication 1 caractérisé en ce que ledit deuxième code (C2) est obtenu par déformation dudit aléa. 3. Dispositif de sécurisation selon la revendication 1 ou 2, caractérisé en ce que ledit dispositif (10) de présentation de code est ledit dispositif de sécurisation lui-même (10). 30 4. Dispositif de sécurisation selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il comporte des moyens (15) de génération dudit aléa. 5. Dispositif de sécurisation selon l'une quelconque des 35 revendications 1 à 4, caractérisé en ce que ledit dispositif de sécurisation25(10) est une clef USB ou une carte à microcircuit (20) apte à être connectée audit équipement électronique (100). 6. Dispositif de sécurisation selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comporte une interface homme-machine permettant le déclenchement de la génération de l'aléa. 7. Dispositif de sécurisation selon l'une quelconque des revendications 1 à 6, caractérisé en ce que ledit au moins un message (M) comporte une concaténation dudit troisième code (C3) et dudit quatrième code (C4). 8. Dispositif de sécurisation selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'il comporte (CPT) un compteur représentatif d'un nombre d'échecs d'au moins une desdites comparaisons et des moyens d'inhibition dudit dispositif de sécurisation lorsque ledit compteur dépasse un seuil déterminé. 9. Dispositif de sécurisation selon l'une quelconque des revendications 1 à 8, caractérisé en ce que lesdits moyens de réception sont aptes à recevoir ledit message (M) dans une commande APDU. 10. Dispositif de sécurisation selon la revendication 9, caractérisé en ce que ladite commande APDU est la commande PIN VERIFY conforme 25 à la norme ISO 7816-4. 11. Procédé de sécurisation de l'accès à une fonction mis en oeuvre par un dispositif de sécurisation, ce procédé comportant : - une étape (E20) de déclenchement de la génération d'un aléa et 30 d'obtention dudit aléa ; - une étape (E20) de mémorisation dudit aléa dans une mémoire volatile ; - une étape (E30) de présentation d'un deuxième code obtenu à partir dudit aléa sur un dispositif de présentation de code différent dudit équipement ; 35 - une étape (E40) de réception d'au moins un message en provenance dudit équipement comportant un troisième code et un quatrième code ;- une étape (E50) de comparaison du troisième code avec un premier code mémorisé dans une mémoire non volatile et de comparaison du quatrième code avec ledit aléa; et - une étape (E100) pour autoriser l'accès à ladite fonction uniquement si les deux comparaisons sont réussies. 12. Procédé de sécurisation de l'accès à une fonction selon la revendication 11 caractérisé en ce que ladite étape (E20) de génération d'aléa est effectuée au moment de l'initialisation (E10) dudit dispositif de sécurisation. 13. Procédé de sécurisation de l'accès à une fonction selon la revendication 11 ou 12 caractérisé en ce que ladite étape de génération d'aléa est effectuée lorsque ladite étape de comparaison a réussi un nombre déterminé de fois consécutives. 14. Procédé de sécurisation de l'accès à une fonction selon l'une quelconque des revendications 11 à 13 caractérisé en ce que ladite étape de génération d'aléa est effectuée lorsque ladite étape de comparaison a échoué. 15. Programme d'ordinateur (PG) comportant des instructions pour l'exécution des étapes du procédé de sécurisation selon l'une quelconque des revendications 11 à 14 lorsque ledit programme est exécuté par un dispositif de sécurisation. 16. Support d'enregistrement lisible par un dispositif de sécurisation sur lequel est enregistré un programme d'ordinateur (PG) comprenant des instructions pour l'exécution des étapes du procédé de sécurisation selon l'une quelconque des revendications 11 à 14.