Brevet FR2903544A1 — publié le 20080111

L'invention se situe dans le domaine de la cryptographie. Elle concerne plus précisément la sécurisation d'une authentification de type défi/réponse d'une entité appelée habituellement prouveur auprès d'une entité appelée habituellement vérifieur. L'invention trouve une application particulièrement intéressante dans la sécurisation de l'authentification d'un utilisateur auprès d'un support cryptographique sécurisé. L'accès à de nombreux services du réseau et supports matériels comme 1 o des supports cryptographiques est conditionné par le résultat d'une authentification qui constitue la sécurisation de l'accès à de tels services et supports. Il s'agit de vérifier qu'un utilisateur qui souhaite accéder à un tel service ou support cryptographique, appelé ensuite dispositif sécurisé, est bien celui qu'il prétend être et est autorisé à accéder audit service ou support. 15 Dans une authentification de type défi/réponse, comme illustré dans le brevet n HK1052785, une première entité appelée prouveur cherche à prouver à une seconde entité appelée vérifieur, qu'il est bien celui qu'il prétend être en prouvant qu'il détient un secret détenu également par le vérifieur. Pour cela, le vérifieur soumet un défi au prouveur qui doit le surmonter. 20 De façon classique, un protocole d'authentification de type défi/réponse comprend un échange de données entre le vérifieur, qui est par exemple un serveur d'authentification et un prouveur, qui est par exemple un utilisateur auquel est associé un terminal. Le prouveur prouve au vérifieur qu'il connaît le secret que le vérifieur partage avec l'utilisateur sans envoyer ce secret en clair 25 sur le réseau. Pour cela, le vérifieur envoie un défi au prouveur. Le prouveur utilise ce défi et le secret fourni par l'utilisateur pour calculer une réponse qu'il retourne au vérifieur. De son côté le vérifieur a effectué la même opération avec le défi qu'il a expédié au prouveur et le secret qu'il partage avec l'utilisateur. Il compare alors les résultats et considère que le secret fourni par l'utilisateur est 30 correct lorsque les résultats sont identiques. Le principe du défi/réponse impose que le défi soit unique à chaque authentification de sorte que quelqu'un qui 2903544 2 écouterait le canal de communication qui relie le vérifieur au prouveur ne puisse pas rejouer les données d'authentification capturées. Un autre type d'authentification connu fait appel à un secret partagé par l'utilisateur et le dispositif sécurisé. Ainsi l'utilisateur qui souhaite accéder au 5 dispositif sécurisé, doit s'authentifier auprès de ce dispositif en prouvant qu'il détient bien le secret que détient également le dispositif. Pour ce faire, l'utilisateur saisit sur un terminal une donnée d'authentification appelée "code PIN" (de l'anglais "Personal Identification Number"), et qui est transmise au dispositif sécurisé via ledit terminal. 1 o Parmi les authentifications faisant appel à un secret partagé, on connaît également celle qui repose sur l'utilisation d'un mot de passe à usage unique (le terme couramment utilisé est le terme anglais "One Time Password", ou "OTP"). Avec ce type d'authentification, le dispositif sécurisé, qui est le vérifieur, et qui en pratique est un serveur d'authentification distant, demande à 15 l'utilisateur auquel est associé un terminal de s'authentifier. Lors d'une demande d'authentification d'un utilisateur par un dispositif sécurisé, l'utilisateur a généralement recours à un petit appareil qu'il détient appelé "générateur d'OTP". Ce générateur d'OTP est synchronisé avec le dispositif sécurisé (vérifieur), c'est-à-dire qu'il a la faculté de générer une donnée (OTP) identique 20 à celle générée au même moment par le dispositif sécurisé. La synchronisation se fait généralement par le temps et/ou par un compteur. En appuyant sur un bouton, le générateur d'OTP affiche un OTP, que l'utilisateur doit ensuite saisir sur son terminal à destination du dispositif sécurisé. Le dispositif sécurisé vérifie alors l'égalité entre l'OTP saisi par l'utilisateur et celui qu'il a lui-même généré. 25 L'OTP est généré à partir d'un secret connu uniquement du générateur d'OTP et du dispositif sécurisé (vérifieur), et d'un défi implicite synchronisé entre le dispositif sécurisé et le générateur d'OTP. Le prouveur comprend ici le générateur d'OTP, l'utilisateur et le terminal associé à l'utilisateur. Le défi et la réponse sont générés par le générateur d'OTP à la demande du dispositif 30 sécurisé, suite à une intervention de l'utilisateur. L'utilisateur saisit ensuite la réponse. Lors de toute authentification ultérieure, le générateur d'OTP et le dispositif sécurisé seront synchronisés sur un OTP différent. 2903544 3 Un inconvénient de la technique d'authentification distante par mot de passe à usage unique telle qu'on vient de la décrire, est que si le générateur d'OTP est subtilisé par une personne malveillante, alors celle-ci pourra s'authentifier à la place de l'utilisateur sans que l'usurpation ne soit détectée par 5 le dispositif sécurisé. Une réponse à cet inconvénient, proposée par la société RSA Security, consiste à demander à l'utilisateur de concaténer au mot de passe à usage unique généré par le générateur d'OTP un code PIN, et d'entrer le résultat sur le terminal qui transmet la réponse au dispositif sécurisé. Ce code PIN est connu du dispositif sécurisé, qui peut donc vérifier l'authentification. En revanche, il n'est pas connu du générateur d'OTP. Ainsi, le vol du générateur d'OTP n'est pas suffisant pour usurper l'identité de l'utilisateur. Dans ce cas, on considère que le mot de passe à usage unique constitue un défi, la réponse étant constituée par la concaténation au défi du code PIN, qui est un secret partagé entre l'utilisateur et le dispositif sécurisé. Ces techniques d'OTP font appel à la génération à distance par un dispositif annexe synchronisé avec le dispositif sécurisé, d'une donnée identique à celle générée par le dispositif sécurisé. Une variante courante ne nécessite pas cette synchronisation : un défi est envoyé au terminal de l'utilisateur sur un canal de communication par le dispositif sécurisé. L'utilisateur saisit alors le défi sur une calculatrice programmée. La calculatrice programmée fournit une réponse que l'utilisateur saisit sur le terminal par le biais duquel il a reçu le défi. La calculatrice programmée peut être remplacée par une application sur le terminal possédant des capacités de calcul, comme un téléphone mobile 25 avancé. Les systèmes d'authentification de l'art antérieur faisant appel à un secret partagé présentent plusieurs inconvénients. En premier lieu, ces systèmes sont sujets à plusieurs types d'attaque. Dans le cas où le dispositif sécurisé est un objet cryptographique, comme une 30 carte à puce, une attaque simple consiste pour une personne malveillante à jeter un coup oeil par-dessus l'épaule de l'utilisateur lorsque celui-ci saisit sur un terminal à l'intention du dispositif sécurisé son code PIN qui est le secret 2903544 4 partagé par l'utilisateur et la puce. La personne malveillante n'a plus qu'à subtiliser la carte à puce pour pouvoir l'utiliser à la place de l'utilisateur. C'est une attaque fréquente dans le milieu bancaire. Dans le cas du générateur d'OTP classique ou de la calculette 5 programmée, le vol de ces appareils permet à une personne malveillante d'usurper l'identité de l'utilisateur. Dans le cas de la variante qui consiste à concaténer à la donnée affichée par le générateur d'OTP un code PIN partagé entre l'utilisateur et le dispositif sécurisé, l'attaque consistant pour une personne malveillante à jeter un coup 1 o d'oeil par-dessus l'épaule de l'utilisateur lorsque celui-ci saisit une réponse sur le terminal est efficace. En effet, la réponse comprend le code PIN en clair qui est donc lu par la personne malveillante. Celle-ci n'a plus alors qu'à subtiliser le générateur d'OTP à l'utilisateur pour pouvoir usurper son identité. Un deuxième type d'attaque est possible lorsque la saisie de la réponse 15 par l'utilisateur à la demande du dispositif sécurisé se fait sur un terminal tiers. Cette attaque consiste à installer sur ledit terminal tiers un logiciel espion appelé renifleur (le terme couramment utilisé est le terme anglais "sniffer"), qui mémorise les touches du clavier qui sont pressées et leur ordre, et enregistre ou retransmet à un tiers les actions faites sur le terminal, notamment celles 20 correspondant à la saisie d'un mot de passe. En second lieu, les systèmes d'authentification de l'art antérieur faisant appel à un secret partagé qui sont les plus sûrs font appel à des dispositifs de calcul pour appliquer des fonctions mathématiques complexes au secret partagé. Ainsi, dans le cas de la calculatrice programmée, le même canal de communication voit transiter à la fois les défis et les réponses auxdits défis. Afin de ne pas fournir d'information sur le secret partagé contenu dans la calculatrice programmée, la génération de la réponse fait nécessairement appel à des fonctions qui sont cryptographiquement sûres, ce qui est très contraignant. En particulier, la taille minimale du secret partagé pour assurer une sécurité suffisante, et la complexité de la fonction de calcul des réponses aux défis impliquent l'utilisation d'un dispositif qui conserve le secret et qui 2903544 5 effectue les calculs. C'est la raison pour laquelle le calcul de la réponse est effectué par une calculatrice programmée qui contient le secret partagé. Le but de l'invention est de remédier aux inconvénients présentés ci-dessus. A cette fin, l'invention concerne un procédé d'authentification d'un 5 prouveur auprès d'un vérifieur, comprenant les étapes : - de réception par le prouveur d'un défi dont ledit vérifieur connaît la valeur, - de calcul d'une réponse dépendant à la fois dudit défi et d'un secret partagé, et 10 - de transmission de la réponse par le prouveur au vérifieur. Ledit procédé est caractérisé en ce que : - le canal de transmission du défi au prouveur et le canal de transmission de la réponse au vérifieur sont distincts, et - le calcul de la réponse nécessite un nombre compris entre 1 et 20 15 d'opérations sur des chiffres. Dans le cadre de l'invention, on entend par opérations des calculs élémentaires tels que l'addition, la soustraction, la multiplication et la division. Grâce à l'invention, en dissociant les canaux de transmission du défi et de la réponse audit défi, un utilisateur malveillant qui jetterait un coup oeil par- 20 dessus l'épaule de l'utilisateur qui s'authentifie, ou qui installerait sur le terminal de l'utilisateur un logiciel espion qui enregistrerait les touches tapées sur le terminal, aura au mieux connaissance du défi ou de la réponse, mais pas des deux. Si le logiciel espion qui enregistre les actions de l'utilisateur est installé sur le terminal, le logiciel espion n'enregistrera que la réponse au défi. Si 25 l'utilisateur malveillant regarde par-dessus l'épaule de l'utilisateur, il verra soit le défi affiché, qui est différent à chaque fois qu'une authentification est requise, soit la réponse saisie par l'utilisateur, qui est un mot de passe devenu obsolète à partir du moment où il a été saisi. La connaissance d'une seule information rend en outre les attaques par 30 force brute impossible. De telles attaques consistent pour un utilisateur malveillant, à partir d'un échantillon de couples défi/réponse, à retrouver la fonction de calcul de la réponse à partir du défi et permettent ainsi 2903544 6 l'authentification de cet utilisateur malveillant qui serait à même de calculer la réponse à un défi. En effet, l'utilisateur malveillant ne disposera jamais d'un couple défi/réponse. La fonction de calcul de la réponse en fonction du défi et du secret est, 5 contrairement aux fonctions à sens unique utilisées dans les authentifications à base de défi/réponse, une fonction qui ne met pas en oeuvre des mécanismes cryptographiques éprouvés en termes de sécurité. La fonction utilisée dans le procédé d'authentification selon l'invention est une fonction qui, à partir de la simple connaissance d'au moins un couple de valeurs défi et la réponse, 1 o permet de retrouver aisément le secret partagé entre le prouveur et le vérifieur. Ainsi, la fonction peut être qualifiée de simple et permet avantageusement au prouveur, dans le cas où celui-ci est un utilisateur, de calculer une réponse au défi en peu d'opérations, voire "de tête", c'est-à-dire sans l'aide d'une calculatrice, voire sans poser l'opération sur papier. Ce n'est pas le cas des 15 systèmes OTP connus qui utilisent des fonctions complexes, dites à sens unique. La réponse au défi peut être calculée de différentes façons. Par exemple, un utilisateur prouveur peut faire le calcul de la réponse au défi mentalement. La faculté d'effectuer ce calcul mentalement suppose que la simplicité de la 20 fonction ainsi que la longueur du défi le permettent. L'utilisateur peut utiliser un papier pour poser l'opération de calcul de la réponse. L'utilisateur peut également utiliser une calculatrice non programmée afin d'effectuer le calcul. L'utilisation d'une calculatrice peut s'avérer intéressante pour un degré de complexité de la fonction un peu plus élevé ou/et une taille de défi plus 25 importante. Il est évident qu'en augmentant la taille du défi, on améliore le niveau de sécurité du procédé d'authentification. Avantageusement, ledit nombre d'opérations nécessaires au calcul de la réponse est compris entre 4 et 10. Certains types de mot de passe ou secret ont des tailles usuelles. Ainsi, 30 la taille habituelle d'une code PIN associé à un utilisateur est 4 ; selon le niveau de sécurité requis, les tailles courantes des mots de passe attribués à un 2903544 7 utilisateur pour accéder à des applications sécurisées est habituellement 6 ou 8, voire 10 pour un accès fortement sécurisé. Avantageusement, la réponse est obtenue par addition chiffre à chiffre d'au moins un chiffre du défi et d'au moins un chiffre du secret, modulo une 5 valeur prédéfinie. Alternativement, la réponse est obtenue par addition du défi et du secret modulo une valeur prédéfinie. Avantageusement, lesdits deux canaux distincts sont associés respectivement à un premier et à un second terminal distincts au niveau du 1 o prouveur. Dans une réalisation particulière de l'invention, ledit premier terminal est connecté à une carte SIM apte à générer ledit défi de façon synchronisée avec le vérifieur. Avantageusement, ledit terminal associé au canal de transmission du 15 défi comprend une interface visuelle. Dans une réalisation alternative de l'invention, ledit terminal associé au canal de transmission du défi comprend une interface audio. L'interface visuelle, respectivement audio, utilisée pour transmettre le défi à l'utilisateur, ne nécessite pas d'implantation technique spécifique. Cela montre 20 la facilité de mise en oeuvre du procédé selon l'invention. En outre, le passage par cette interface visuelle, respectivement audio, marque la séparation des deux canaux techniques d'acheminement du défi et de la réponse audit défi. Avantageusement, le canal de transmission du défi (respectivement de la réponse) comprend un réseau radio et le canal de transmission de la réponse 25 (respectivement du défi) comprend un réseau IP. Avantageusement, le canal de transmission du défi (respectivement de la réponse) comprend un réseau téléphonique commuté et le canal de transmission de la réponse (respectivement du défi) comprend un réseau IP. L'invention concerne aussi un système d'authentification comprenant : 30 - un prouveur et un vérifieur, ledit prouveur étant agencé pour recevoir un défi dont ledit vérifieur connaît la valeur, et pour transmettre au vérifieur une 2903544 8 réponse audit défi, ladite réponse dépendant à la fois du défi et d'un secret partagé, et ledit vérifieur étant agencé pour vérifier la réponse, - des moyens de calcul de ladite réponse par le prouveur, ledit calcul nécessitant un nombre compris entre 1 et 20 d'opérations sur des chiffres, 5 - un premier canal de transmission destiné à la transmission du défi au prouveur, et -un second canal de transmission destiné à la transmission de la réponse au vérifieur, lesdits premier et second canaux de transmission étant distincts. 10 L'invention concerne aussi un programme d'ordinateur destiné à être stocké dans une mémoire d'un système d'authentification et/ou stocké sur un support mémoire destiné à coopérer avec un lecteur dudit système et/ou téléchargé via un réseau de télécommunication, le programme comprenant des instructions pour l'exécution des étapes du procédé selon l'invention lorsque 15 ledit programme est exécuté sur un ordinateur. De nombreux détails et avantages de l'invention seront mieux compris à la lecture de la description d'un mode particulier de réalisation en référence aux schémas annexés donnés à titre non limitatif et dans lesquels : La figure 1 présente les étapes du procédé d'authentification selon 20 l'invention. La figure 2 illustre un premier mode de réalisation du procédé selon l'invention. La figure 3 illustre un deuxième mode de réalisation du procédé selon l'invention. 25 La figure 4 illustre un troisième mode de réalisation du procédé selon l'invention. La figure 5 illustre un quatrième mode de réalisation du procédé selon l'invention. La figure 6 est une première représentation fonctionnelle d'un dispositif 30 d'authentification selon l'invention. La figure 7 est une seconde représentation fonctionnelle d'un dispositif d'authentification selon l'invention. 2903544 9 La figure 1 illustre les étapes du procédé d'authentification selon l'invention. Un vérifieur 1 est utilisé pour vérifier qu'un prouveur non représenté qui s'authentifie est bien celui qu'il prétend être. Le prouveur est par exemple un 5 utilisateur. Le prouveur a accès à un premier terminal 2. Le premier terminal 2 est muni d'une interface non représentée. Une telle interface est par exemple un afficheur. La liaison non représentée qui relie le vérifieur à l'interface du premier terminal 2 constitue un premier canal de transmission de données entre le vérifieur 1 et le prouveur. Le prouveur a également accès à un second 10 terminal 3. Le second terminal 3 est muni d'une interface non représentée. Une telle interface est par exemple un clavier. La liaison non représentée qui relie l'interface du second terminal 3 au vérifieur 1 constitue un second canal de transmission de données entre le prouveur et le vérifieur 1. Le vérifieur 1 et le prouveur partagent la connaissance d'un secret s et d'une fonction f de calcul 15 d'une réponse à un défi. Le secret partagé s et la fonction f sont inscrits dans une mémoire du vérifieur 1 non représentée. Dans une étape initiale 10, le vérifieur 1 choisit des données a de façon aléatoire. Lesdites données sont constituées uniquement d'un entier décimal a de taille I. Elles sont générées par exemple à l'aide d'un générateur de nombres 20 pseudo-aléatoires non représenté. Dans un premier mode de réalisation, les données a constituent un défi d. A la fin de l'étape initiale 10, le vérifieur envoie le défi d au terminal 2 via le premier canal de transmission qui est le canal de transmission du défi. Dans une étape 11, consécutive à l'étape initiale 10, le prouveur prend 25 connaissance du défi d via l'interface du premier terminal 2. Dans une étape 12, consécutive à l'étape 11 et à la prise de connaissance du défi d par le prouveur, le prouveur calcule une réponse r au défi d. La réponse r est le résultat de l'application de la fonction f au défi d et au secret partagé s. Dans le cas où le prouveur est un utilisateur, la réponse r est 30 calculée mentalement par l'utilisateur. Dans une autre réalisation de l'invention, l'utilisateur calcule la réponse r à l'aide d'une calculatrice non programmée. 2903544 10 La fonction f de calcul de la réponse à partir du défi et du secret nécessite un nombre borné d'opérations sur des chiffres. Typiquement ce nombre est compris entre 1 et 20. On estime que ce nombre 20 correspond à un nombre maximal d'opérations qui peuvent être faites par un utilisateur de 5 façon aisée, soit mentalement, soit en posant l'opération sur le papier, soit en s'aidant d'une table de calcul ou d'une calculatrice non programmée. De façon avantageuse, le nombre d'opérations variera de 4 à 10. Ce nombre est relatif aux tailles habituelles des mots de passe d'utilisateur pour accéder à des dispositifs sécurisés. En effet, la taille habituelle d'une code PIN associé à un 10 utilisateur est 4 ; selon le niveau de sécurité requis, les tailles courantes des mots de passe attribués à un utilisateur pour accéder à des applications sécurisées est habituellement 6 ou 8, voire 10 pour un accès fortement sécurisé. Avantageusement, la fonction est une addition chiffre à chiffre d'au moins 15 un chiffre du défi et d'au moins un chiffre du secret modulo une valeur prédéfinie. Par exemple, la fonction f se définit comme suit : pour deux nombres entiers x et y de même taille i en écriture décimale, dont les écritures décimales sont x1x2...x, et y,y2...y,, f(x, y) = z, dont l'écriture décimale est z1z2...z,, avec z; = x; + y, mod 10 ; z; est le résultat de l'addition modulo 10 de x; et y,. La valeur 20 prédéfinie étant dans cet exemple 10. Dans un autre exemple où l'entier x est de taille i et l'entier y de taille m, avec i REVENDICATIONS 1. Procédé d'authentification d'un prouveur (30) auprès d'un vérifieur (1), comprenant les étapes : - de réception par le prouveur (30) d'un défi (d) dont ledit vérifieur (1) connaît la valeur, - de calcul (12) d'une réponse (r) dépendant à la fois dudit défi (d) et d'un secret partagé (s), et - de transmission de la réponse (r) par le prouveur (30) au vérifieur (1), ledit procédé étant caractérisé en ce que : - le canal de transmission du défi (9a) au prouveur et le canal de transmission de la réponse (9b) au vérifieur sont distincts, et - le calcul de la réponse nécessite un nombre compris entre 1 et 20 d'opérations sur des chiffres. 2. Procédé selon la revendication 1, dans lequel ledit nombre d'opérations nécessaires au calcul de la réponse est compris entre 4 et 10. 3. Procédé selon la revendication 1 ou la revendication 2, dans lequel la réponse est obtenue par addition chiffre à chiffre d'au moins un chiffre du défi et d'au moins un chiffre du secret, modulo une valeur prédéfinie. 4. Procédé selon la revendication 1 ou la revendication 2, dans lequel la réponse est obtenue par addition du défi et du secret modulo une valeur prédéfinie. 5. Procédé selon l'une des revendications précédentes, caractérisé en ce que lesdits deux canaux (9a, 9b) distincts sont associés respectivement à un premier (2) et à un second terminal (3) distincts au niveau du prouveur. 2903544 18 6. Procédé selon la revendication 5, caractérisé en ce que ledit premier terminal (2) est connecté à une carte SIM (15) apte à générer ledit défi de façon synchronisée avec le vérifieur (1). 5 7. Procédé d'authentification selon la revendication 5 ou la revendication 6, caractérisé en ce que ledit terminal (2) associé au canal de transmission du défi (9a) comprend une interface visuelle. 8. Procédé d'authentification selon la revendication 5 ou la revendication 10 6, caractérisé en ce que ledit terminal (2) associé au canal de transmission du défi (9a) comprend une interface audio. 9. Procédé d'authentification selon l'une des revendications précédentes, caractérisé en ce que le canal de transmission du défi (9a) (respectivement de 15 la réponse (9b)) comprend un réseau radio et le canal de transmission de la réponse (9b) (respectivement du défi (9a)) comprend un réseau IP. 10. Procédé d'authentification selon l'une des revendications précédentes, caractérisé en ce que le canal de transmission du défi (9a) 20 (respectivement de la réponse (9b)) comprend un réseau téléphonique commuté et le canal de transmission de la réponse (9b) (respectivement du défi (9a)) comprend un réseau IP. 11. Système d'authentification comprenant : 25 - un prouveur (30) et un vérifieur (1), ledit prouveur (30) étant agencé pour recevoir un défi (d) dont ledit vérifieur (1) connaît la valeur, et pour transmettre au vérifieur (1) une réponse (r) audit défi, ladite réponse (r) dépendant à la fois du défi (d) et d'un secret partagé (s), et ledit vérifieur (1) étant agencé pour vérifier la réponse (r), 30 - des moyens (33) de calcul de ladite réponse (r) par le prouveur (30), ledit calcul nécessitant un nombre compris entre 1 et 20 d'opérations sur des chiffres, 2903544 19 un premier canal de transmission (9a) destiné à la transmission du défi au prouveur (30), et - un second canal de transmission (9b) destiné à la transmission de la réponse au vérifieur, 5 lesdits premier (9a) et second (9b) canaux de transmission étant distincts. 12. Programme d'ordinateur destiné à être stocké dans une mémoire d'un système d'authentification et/ou stocké sur un support mémoire destiné à coopérer avec un lecteur dudit système et/ou téléchargé via un réseau de 10 télécommunication, le programme comprenant des instructions pour l'exécution des étapes du procédé selon l'une des revendications 1 à 10 lorsque ledit programme est exécuté sur un ordinateur. 13. Moyen de stockage de données partiellement ou totalement 15 amovible, comportant des instructions de code de programme informatique pour l'exécution des étapes d'un procédé selon l'une quelconque des revendications 1 à 10.