FR 3052894 A1 20171222 FR 1655707 A 20160620 1 Procédé d'authentification La présente invention concerne un procédé d'authentification. Elle trouve une application particulièrement intéressante dans l'accès à des services sensibles dont l'utilisation est conditionnée par une authentification réussie d'un utilisateur. Le procédé permet notamment de protéger ces services contre des attaques par force brute. Un des mécanismes d'authentification connu et très largement répandu consiste à utiliser un mot de passe w, qui constitue une valeur secrète connue uniquement de l'utilisateur et parfois de l'entité appelée vérifieur auprès de laquelle l'utilisateur doit s'authentifier. Ce mécanisme a l'avantage de pouvoir être déployé facilement. La sécurité du mot de passe repose alors sur trois éléments : le choix du mot de passe, qui doit être suffisamment complexe pour qu'un attaquant ne le trouve pas facilement, la transmission du mot de passe lors de l'authentification, qui doit être faite à travers un canal sécurisé, et le stockage du mot de passe, nécessaire puisqu'un vérifieur doit pouvoir comparer le mot de passe reçu de l'utilisateur avec une valeur de référence. Cette valeur de référence, si elle est divulguée suite à une compromission de la base de données dans laquelle elle est stockée, ne doit pas permettre à un attaquant de retrouver le mot de passe correspondant. En général les mots de passe sont stockés sous forme chiffrée dans une base de données gérée par le vérifieur. Le vérifieur doit pouvoir constater que le mot de passe transmis par l'utilisateur au cours de l'authentification est correct. Il n'est cependant pas souhaitable de posséder en permanence l'ensemble des mots de passe, même sous forme chiffrée. C'est pourquoi il est habituel d'utiliser une fonction non inversible, telle qu'une fonction cryptographique de hachage H, produisant une empreinte H(w) du mot de passe w, et de stocker cette empreinte H(w). L'intérêt d'utiliser une fonction non inversible telle qu'une fonction de hachage est qu'à partir de l'empreinte H(w), il est difficile de retrouver le mot de passe w. Cependant des attaques par recherche exhaustive, consistant à tester toutes les valeurs possibles w' d'un mot de passe et à comparer les empreintes générées H(w') avec l'empreinte stockée restent possibles. Une telle recherche exhaustive ne peut être empêchée mais des méthodes existent afin de la rendre plus difficile. Ainsi, dans un premier exemple, l'empreinte du mot de passe de référence qui est stockée n'est pas H(w) mais est de la forme H(w I s), où s est une valeur générée pseudoaléatoirement par le vérifieur et appelée habituellement « sel ». La base de données stocke alors des couples (H(wls), s). L'usage d'un sel permet de contrecarrer les efforts d'un attaquant qui rechercherait des mots de passe en mettant en oeuvre des pré-calculs. Dans le cas de pré-calculs, 3052894 2 un attaquant applique une fonction non inversible à un ensemble de mots de passe possibles et mémorise l'ensemble obtenu. Il recherche ensuite une empreinte de mot de passe dans l'ensemble mémorisé et identifie le mot de passe associé. Avec un sel, distinct d'un mot de passe à un autre, l'attaquant doit mémoriser autant d'ensembles de mots de passe que de valeurs 5 de sel possibles pour mettre en oeuvre cette technique. Cela induit des contraintes de temps de calcul et de mémoire dont l'attaquant doit tenir compte lorsqu'il mène une attaque. Une variante destinée à ralentir la découverte du mot de passe w à partir d'une empreinte de référence consiste à alourdir artificiellement les calculs en invoquant plusieurs fois la fonction de hachage. L'empreinte est alors de la forme : F (w) = Hk (w I s). Le nombre 10 d'itérations k est choisi de telle manière que le coût supplémentaire en termes de calcul est négligeable lors de l'authentification d'un utilisateur mais rédhibitoire dans le cas d'une recherche exhaustive par un attaquant ; le coût étant alors multiplié par k. Ces deux techniques permettent de ralentir un attaquant lors d'une recherche exhaustive de mot de passe mais n'empêchent pas pour autant une telle attaque. Un attaquant reste enclin à 15 mettre en oeuvre de telles attaques, même au prix d'un effort important. En effet, la durée de vie d'un mot de passe étant généralement assez longue, un attaquant qui le récupère peut l'exploiter durablement. En outre, un utilisateur est en général réticent à changer fréquemment son mot de passe. 20 Un des buts de l'invention est de remédier à des insuffisances/inconvénients de l'état de la technique et/ou d'y apporter des améliorations. A cette fin, l'invention propose un procédé d'authentification d'un utilisateur auprès d'un vérifieur, ledit procédé comprenant : - réception d'un mot de passe saisi par l'utilisateur et d'une première information de 25 contexte saisie par l'utilisateur, - calcul d'une empreinte courante, en appliquant une fonction à sens unique au mot de passe et à la première information de contexte, - vérification que l'empreinte courante calculée est égale à une empreinte de référence d'un secret, calculée lors d'une authentification précédente de l'utilisateur, l'authentification 30 étant réussie lorsque l'empreinte courante est égale à l'empreinte de référence. Le procédé décrit ici permet d'introduire une variabilité importante dans le secret utilisé pour qu'un utilisateur accède à un service sensible, sans pour autant contraindre l'utilisateur à des efforts importants de mémorisation. Le secret utilisé pour authentifier l'utilisateur est ainsi construit à partir d'un mot de passe choisi par l'utilisateur et d'une première information de 35 contexte requise auprès de l'utilisateur à chaque authentification. Le mot de passe est complexe, 3052894 3 dans le sens où son choix est en général contraint par l'utilisation de différents types de caractères et par une taille minimale ; il possède en général une durée de vie importante. La première information de contexte est très peu complexe, c'est en général la réponse à une question simple qui nécessite peu d'efforts de mémorisation. Par ailleurs, sa durée de vie est 5 courte puisqu'elle peut être renouvelée à chaque authentification de l'utilisateur. Ainsi, lors d'une authentification, l'utilisateur fournit son mot de passe et la première information de contexte, saisie lors de sa précédente authentification. C'est cette première information de contexte qui introduit la variabilité dans le secret. Le procédé permet de complexifier des attaques par recherche exhaustive en termes de 10 puissance de calcul, du fait de la variabilité du secret qui peut obliger un attaquant à mettre en oeuvre de nouveau une attaque dès lors que l'utilisateur s'est authentifié de nouveau. Le procédé s'applique de manière privilégiée à des services très sensibles auxquels l'utilisateur accède souvent. En effet, le procédé augmente la sécurisation du mot de passe. De plus, un accès fréquent facilite la mémorisation de la première information de contexte, qui peut être 15 renouvelée à chaque authentification. Dans un exemple de réalisation, le procédé comprend : - réception d'une deuxième information de contexte, - calcul d'une nouvelle empreinte, en appliquant la fonction à sens unique au mot de passe et à la deuxième information de contexte, et remplacement de l'empreinte de référence du 20 secret par la nouvelle empreinte. Le procédé permet de mettre à jour l'empreinte de référence associée au secret construit à partir du mot de passe et de la première information de contexte. Dans un exemple de réalisation, le procédé comprend l'envoi à l'utilisateur d'une question associée à la première information de contexte. 25 L'affichage d'une question associée à la première information de contexte nécessite un minimum d'effort de l'utilisateur qui est ainsi accompagné pour fournir l'information en réponse. Par ailleurs, cela permet au vérifieur de garantir la variabilité de la première information de contexte. Dans un premier exemple de réalisation, le procédé comprend : 30 - conversion de la première information de contexte en une valeur numérique, - utilisation de la valeur numérique comme un sel de la fonction à sens unique de calcul de l'empreinte courante. Dans cet exemple, la première information de contexte est convertie en valeur numérique puis utilisée comme sel supplémentaire de la fonction à sens unique utilisée pour 35 calculer l'empreinte courante du secret. Cela complexifie d'autant pour un attaquant la 3052894 4 recherche exhaustive du mot de passe et de la première information de contexte qui forment le secret. Dans un deuxième exemple de réalisation, le procédé comprend : - conversion de la première information de contexte en une valeur numérique, 5 - calcul de l'empreinte courante du mot de passe résultant en itérant la fonction à sens unique un nombre de fois égale à la valeur numérique. Dans cet exemple, la première information de contexte est convertie en valeur numérique puis utilisée comme valeur du nombre d'itérations de la fonction à sens unique de calcul de l'empreinte courante. Ainsi, le nombre d'itérations de la fonction à sens unique est 10 variable. Cela complexifie pour l'attaquant la recherche exhaustive du mot de passe et de la première information de contexte qui forment le secret. L'invention concerne aussi un vérifieur agencé pour authentifier un utilisateur, ledit serveur comprenant : - des moyens de réception, agencés pour recevoir un mot de passe et une première 15 information de contexte saisis par l'utilisateur, - des moyens de calcul, agencés pour calculer une empreinte courante, en appliquant une fonction à sens unique au mot de passe et à la première information de contexte, - des moyens de vérification, agencés pour vérifier que l'empreinte courante calculée est égale à une empreinte de référence d'un secret, calculée lors d'une authentification précédente 20 de l'utilisateur, l'authentification étant réussie lorsque l'empreinte courante est égale à l'empreinte de référence. Dans un exemple de réalisation, le vérifieur comprend : - des deuxièmes moyens de réception, agencés pour recevoir une deuxième information de contexte, 25 - des moyens de calcul et de remplacement, agencés pour calculer une nouvelle empreinte en appliquant la fonction à sens unique au mot de passe de passe et à la deuxième information de contexte, et pour remplacer l'empreinte de référence du secret par la nouvelle empreinte. L'invention porte également sur un programme d'ordinateur sur un support de données 30 et chargeable dans la mémoire d'un ordinateur, le programme comprenant des portions de code pour l'exécution des étapes du procédé d'authentification tel que décrit précédemment, lorsque le programme est exécuté sur ledit ordinateur. L'invention concerne aussi un support de données dans lequel est enregistré le programme ci-dessus. 35 3052894 5 D'autres caractéristiques et avantages de la présente invention seront mieux compris de la description et des dessins annexés parmi lesquels : - la figure 1 présente les étapes d'un procédé d'authentification, selon un exemple de réalisation ; 5 - la figure 2 est une représentation schématique d'un vérifieur, apte à mettre en oeuvre le procédé d'authentification, selon un exemple de réalisation. Les étapes d'un procédé d'authentification, selon un exemple de réalisation, vont maintenant être décrites en relation avec la figure 1. 10 Un utilisateur, équipé d'un terminal (non représenté sur la figure 1), souhaite accéder à distance à un service sensible auquel il a souscrit. L'accès au service est conditionné par une authentification réussie de l'utilisateur auprès d'un serveur d'authentification, ou vérifieur (non représenté sur la figure 1). Le vérifieur comprend un module logiciel qui comprend des instructions de code aptes à 15 mettre en oeuvre le procédé d'authentification décrit ici. Dans une étape initiale EO d'accès au service, l'utilisateur accède à un service, par exemple en saisissant une « URL » (de l'anglais « Uniform Resource Locator ») d'accès au service dans un navigateur de son terminal Cet accès déclenche, dans une étape El, l'envoi par le vérifieur et l'affichage sur le terminal de l'utilisateur d'une page d'authentification destinée à 20 demander à l'utilisateur de saisir des informations d'authentification. La page affichée comprend une zone de saisie d'un mot de passe w, et une zone de saisie d'une première information de contexte ctx. Le mot de passe w a été choisi préalablement par l'utilisateur, par exemple, lors d'un premier accès au service après abonnement au service. Le mot de passe w possède une certaine durée de vie, gérée au niveau du vérifieur. La première 25 information de contexte ctx est destinée à introduire dans le mot de passe un segment variable. Plus précisément, le mot de passe w et la première information de contexte ctx sont associés pour former un secret, utilisé pour accéder au service et dont une partie est variable. La première information de contexte ctx peut être qualifiée de secret secondaire par rapport au mot de passe w qui constitue le secret principal de l'utilisateur. Elle a été saisie lors d'une authentification 30 précédente, plus précisément lors de la dernière authentification de l'utilisateur. Dans un exemple de réalisation, une zone d'affichage est associée à la première information de contexte ctx. Cette zone est destinée à afficher une question associée à la première information de contexte, de manière à aider l'utilisateur lors de la saisie de la première information de contexte ctx. En effet, la première information de contexte ctx peut changer 35 fréquemment. Lui associer une question permet d'aider l'utilisateur à la retrouver plus 3052894 6 facilement. Dans un autre exemple de réalisation, aucune zone d'affichage n'est associée à la première information de contexte. Ainsi, l'utilisateur doit saisir cette première information de contexte sans recevoir aucune indication du vérifieur quant à la nature de cette information. Cela permet de réduire l'information qu'un attaquant peut obtenir pour identifier la première 5 information de contexte. Dans un premier exemple de réalisation, la première information de contexte ctx a une variabilité importante dans le sens où elle est susceptible de varier à chaque authentification. Par exemple, la question qui figure dans la zone d'affichage associée à la première information de contexte porte sur la météo du jour, ou une heure, ou une date, un lieu où se trouve l'utilisateur, 10 etc. Dans un deuxième exemple de réalisation, la première information de contexte ctx a une variabilité plus faible, dans le sens où elle ne varie pas pendant une période de temps donné et reste identique lors d'authentifications successives mises en oeuvre durant cette période de temps. Par exemple, la question qui figure dans la zone d'affichage demande à l'utilisateur son âge, son poids, son adresse, etc. On comprend que dans ce cas, l'effort demandé à l'utilisateur 15 pour mémoriser la première information de contexte est moindre. Une forte variabilité de la première information de contexte ctx permet de faire varier le secret très souvent sans pour autant faire varier le mot de passe w. Dans une étape suivante E2 de saisie et d'envoi, l'utilisateur renseigne son mot de passe w ainsi que la première information de contexte ctx. Une fois saisis, le mot de passe w et 20 la première information de contexte ctx sont envoyés au vérifieur. Dans une étape E3 de calcul d'une empreinte courante, le vérifieur calcule une empreinte courante du secret, fonction du mot de passe w et de la première information de contexte ctx. A cette fin une fonction non inversible H est appliquée au mot de passe w et à la première information de contexte ctx. Une fonction non inversible est telle qu'à partir d'une 25 image d'un élément x par la fonction, notée H (x), il est difficile de retrouver x. La fonction non inversible H est par exemple une fonction de hachage cryptographique, telle que SHA-3 (de l'anglais « Secure Hash Algorithm »). Dans un premier exemple de calcul, l'empreinte courante du secret est égale à Hk (w Is I n), où n est une valeur numérique obtenue en convertissant la première information 30 de contexte ctx en une valeur numérique au moyen d'une fonction de conversion G, où s est une valeur générée pseudo-aléatoirement par le vérifieur 11 et appelée communément « sel », et où k est une valeur constante choisie par le vérifieur et destinée à fixer un nombre d'invocations de la fonction à sens unique H. Le rôle d'un sel est de complexifier pour l'attaquant la recherche exhaustive d'un ensemble de mots de passe. En effet, l'utilisation d'un sel peut nécessiter plus 35 de puissance de calcul et/ou plus de mémoire. Dans un exemple de réalisation, la fonction de 3052894 7 conversion G est une fonction non inversible, par exemple une fonction de hachage. L'avantage d'une telle fonction est qu'elle ralentit pour l'attaquant la recherche exhaustive du mot de passe car l'attaquant doit également identifier la première information de contexte ctx à partir de la valeur numérique n, puisque n = G(ctx). Dans cet exemple, la valeur numérique n joue le rôle 5 d'un sel supplémentaire par rapport à s et complexifie encore plus la recherche d'un mot de passe. L'utilisation de la constante k est destinée à ralentir la découverte d'un mot de passe par une attaque par recherche exhaustive en alourdissant artificiellement les calculs en invoquant plusieurs fois la fonction non inversible. En effet, le coût d'une telle attaque est multiplié par k pour l'attaquant. 10 Dans un deuxième exemple de calcul, l'empreinte courante du secret est égale à H' (w I s), où n est la valeur numérique obtenue par conversion de la première information de contexte ctx en une valeur numérique au moyen de la fonction de conversion G. Dans cet exemple, la fonction de hachage H est invoquée n-fois. Cet exemple est avantageux dans le sens où la valeur de n peut varier d'une authentification à une autre. Il est donc impossible de 15 connaître à l'avance le nombre d'itérations de la fonction non inversible H. Ainsi, dans le cas où l'attaquant applique la fonction à sens unique H à un ensemble de mots de passe possibles w' pour un sel s' identifié, et recherche ensuite dans l'ensemble de valeurs obtenu l'empreinte courante d'un secret afin d'identifier le mot de passe w, ne pas connaître n induit une puissance de calcul et un espace mémoire supplémentaires, sans garantie au final d'identifier le mot de 20 passe. En effet, l'attaquant doit itérer l'application de la fonction à sens unique H un nombre indéterminé de fois, puisqu'il ne connaît pas n. Il doit ensuite comparer l'empreinte courante aux valeurs obtenues. Par ailleurs, on note que si n est inférieur au nombre d'itérations, choisi par l'attaquant, de la fonction H, l'attaquant a une chance d'identifier le mot de passe. Si par contre, le nombre d'itérations est supérieur à n, l'attaquant a peu de chances de trouver le mot 25 de passe. Dans une étape E4 de vérification, le serveur 11 vérifie la présence de l'empreinte courante du secret dans une base de données d'empreintes de référence. La base de données d'empreintes de référence comprend pour l'ensemble des utilisateurs qui ont souscrit au service, une empreinte de référence de leur secret. L'empreinte de référence est supposée valide, c'est-à- 30 dire calculée à partir du mot de passe w de l'utilisateur et d'une information de contexte fournie lors de la dernière authentification réussie de l'utilisateur. Dans un premier cas (branche « nok » sur la figure 1) où l'empreinte courante ne figure pas dans la base de données d'empreintes de référence, le procédé s'arrête. En effet, l'authentification de l'utilisateur a échoué. Des procédures pour redemander le mot de passe et 35 la première information de contexte, voire pour bloquer l'accès au service lorsque des 3052894 8 informations erronées ont été saisies un nombre maximal de fois, peuvent être mises en oeuvre. Ces procédures sont classiques et ne sont pas décrites ici. Dans un deuxième cas (branche « ok » sur la figure 1), l'empreinte courante figure dans la base de données d'empreintes de référence. Cela signifie que l'authentification de l'utilisateur 5 a réussi. En effet, le mot de passe w et la première information de contexte ctx sont supposés corrects puisque l'empreinte courante calculée à partir de ces deux valeurs a été trouvée dans la base de données d'empreintes de référence. L'utilisateur peut alors accéder au service. Dans une étape suivante E5 de demande d'une deuxième information de contexte, le serveur d'authentification 11 demande à l'utilisateur de saisir une deuxième information de 10 contexte ctx'. Une deuxième zone de saisie est affichée à cet effet. La deuxième information de contexte ctx' est destinée à être utilisée pour construire une nouvelle empreinte de référence du secret en appliquant la fonction à sens unique H au mot de passe w et la deuxième information de contexte ctx', et à remplacer l'empreinte de référence dans la base de données d'empreintes de référence pour une authentification suivante. Il est important que le choix de la question, qui 15 conditionne donc la nature de la deuxième information de contexte soit choisie par le vérifieur. Cela permet de garantir la variabilité de cette deuxième information de contexte et donc du secret construit et stocké en tant que nouvelle empreinte de référence. Dans une étape E6 de saisie et d'envoi, l'utilisateur saisit l'information demandée. La deuxième information de contexte ctx' saisie est envoyée au vérifieur. 20 Dans une étape E7 de calcul et de mise à jour, le vérifieur calcule la nouvelle empreinte de référence et l'enregistre dans la base de données d'empreintes de référence, en association avec l'utilisateur. Cette nouvelle empreinte de référence remplace l'empreinte de référence associée à l'utilisateur dans la base de données d'empreintes de référence. En d'autres termes, lors d'une authentification courante, une première et une deuxième 25 information de contexte sont demandées à l'utilisateur. La première information de contexte est celle qui a été saisie lors de la dernière authentification de l'utilisateur ; elle est utilisée pour l'authentification courante de l'utilisateur. La deuxième information de contexte, demandée lors de l'authentification courante est destinée à être demandée lors de la prochaine authentification de l'utilisateur. 30 Dans l'exemple de réalisation décrit ici, la deuxième information de contexte ctx' n'est demandée qu'après vérification du mot de passe w et de la première information de contexte ctx. Dans un autre exemple, le mot de passe w et les première et deuxième informations de contexte, ctx, ctx' sont demandées en même temps. La vérification du secret est ensuite mise en oeuvre. 3052894 9 Ainsi, l'utilisateur doit toujours mémoriser un secret principal : le mot de passe w. Le mot de passe est persistant et souvent complexe : il comprend en général un nombre minimal de caractères, est formé de différents types de caractères tels que des chiffres, des lettres et des caractères de ponctuation. L'utilisateur doit également mémoriser une information de contexte 5 très peu complexe qui nécessite peu d'effort de mémoire. Cet élément de contexte introduit une variabilité importante dans le secret et impacte l'empreinte de référence stockée dans la base de données d'empreintes de référence. Un attaquant qui souhaite usurper l'identité d'un utilisateur pour accéder à un service en utilisant ses données d'authentification doit donc récupérer l'empreinte de référence associée à 10 l'utilisateur à chaque fois que celle-ci est renouvelée, c'est-à-dire potentiellement à chaque authentification. Il doit ensuite mettre en oeuvre une certaine puissance de calcul pour obtenir le mot de passe et l'information de contexte utilisés pour calculer le secret permettant une authentification réussie de l'utilisateur. Cependant, ces informations ne sont plus valides dès que l'utilisateur s'authentifie de nouveau. 15 Considérons par exemple une empreinte de référence de la forme Hk (w I s I n). Une attaque sur une telle empreinte, si elle aboutit permet à l'attaquant d'obtenir le mot de passe w, et la valeur numérique n qui correspond à une information de contexte. Si t1 représente le nombre de valeurs possibles pour w, t2 le nombre de valeurs possibles pour n, alors l'attaquant doit invoquer la fonction de hachage H, (t1 x t2 x k)-fois, ce qui accroît le coût d'une attaque 20 d'un facteur t2 par rapport aux techniques classiques. En outre, la seule connaissance de n ne permet pas à l'attaquant de répondre à une authentification puisque n a été obtenu en appliquant une fonction de conversion G à une information de contexte. L'attaquant doit donc également inverser la fonction de conversion G, ce qui représente un coût supplémentaire. Si l'attaquant arrive à obtenir le mot de passe w et l'information de contexte ctx, il peut s'authentifier à la 25 place de l'utilisateur à condition que celui-ci ne procède pas à une nouvelle authentification qui entraînerait un renouvellement de l'information de contexte ctx, et donc de n. Dans ce cas, l'attaquant doit récupérer une nouvelle empreinte de référence Hk (w I s I n'), puis effectuer de nouveaux calculs pour trouver n' puis l'information de contexte associée. Lorsque la valeur numérique n est utilisée comme sel supplémentaire, c'est-à-dire dans 30 le cas où l'empreinte de référence est de la forme : Hk (w I s I n), la quantité de valeurs possibles pour n doit être supérieure à une valeur minimale afin de ralentir la recherche exhaustive. Lorsque la valeur numérique n est utilisée comme nombre d'itérations de la fonction à sens unique H, c'est-à-dire dans le cas où l'empreinte de référence est de la forme : (w I s), n doit être supérieur à une valeur minimale, de manière à ralentir une recherche exhaustive et 3052894 10 inférieur à une valeur maximale afin que la calcul d'une empreinte courante lors d'une authentification reste négligeable. Le procédé trouve une application intéressante pour l'accès à des services sensibles, par exemple des services de banque en ligne, de compte e-mail, d'achat en ligne, etc. Dans ce cas 5 cependant, l'utilisateur doit mémoriser autant d'informations de contexte que de services sensibles qui mettent en oeuvre le procédé. Afin de faciliter la gestion de ces informations de contexte, l'utilisateur peut utiliser un moyen classique de stockage des mots de passe tel qu'un gestionnaire de mots de passe. 10 Un vérifieur agencé pour mettre en oeuvre une authentification telle que décrite précédemment va maintenant être décrit en relation avec la figure 2. Un vérifieur 20 est un équipement informatique, tel qu'un serveur. Il comprend de manière classique : - une unité de traitement ou processeur 201, ou "CPU" (de l'anglais "Central Processing 15 Unit"), destinée à charger des instructions en mémoire, à les exécuter, à effectuer des opérations ; - un ensemble de mémoires, dont une mémoire volatile 202, ou "RAM" (pour "Random Access Memory") utilisée pour exécuter des instructions de code, stocker des variables, etc., et une mémoire de stockage 203 de type « EEPROM » (de l'anglais « Electrically Erasable 20 Programmable Read Only Memory »). En particulier, la mémoire de stockage 203 est agencée pour mémoriser un module logiciel d'authentification qui comprend des instructions de code pour mettre en oeuvre les étapes du procédé d'authentification tel que décrit précédemment ; - une interface d'accès à une base de données d'empreintes 204 agencée pour accéder à une base de données d'empreintes de référence. La base de données d'empreintes de référence 25 comprend pour un ensemble d'utilisateurs abonnés au service, une empreinte de référence du secret associée à un identifiant de l'utilisateur. L'empreinte de référence du secret est calculée par le serveur d'authentification en fonction du mot de passe w et d'une information de contexte saisie par l'utilisateur au cours de la dernière authentification réussie mise en oeuvre lors d'un accès précédent de celui-ci au service. 30 Le vérifieur comprend également : - un module de réception 205, agencé pour recevoir un mot de passe et une première information de contexte saisis par l'utilisateur. Le module de réception 205 est agencé pour mettre en oeuvre l'étape E2 du procédé d'authentification tel que décrit précédemment ; - un module de calcul 206, agencé pour calculer une empreinte courante, en appliquant 35 une fonction à sens unique au mot de passe et à la première information de contexte. Le module 3052894 11 de calcul 206 est agencé pour mettre en oeuvre l'étape E3 du procédé d'authentification décrit précédemment ; - un module de vérification 207, agencé pour vérifier que l'empreinte courante calculée est égale à une empreinte de référence d'un secret, calculée lors d'une authentification 5 précédente de l'utilisateur, l'authentification étant réussie lorsque l'empreinte courante est égale à l'empreinte de référence. Le module de vérification 207 est agencé pour mettre en oeuvre l'étape E4 du procédé d'authentification décrit précédemment. Les modules de réception 205, de calcul 206, de vérification 207 et l'interface d'accès à la base de données d'empreintes 204 sont de préférence des modules logiciels comprenant des 10 instructions logicielles pour mettre en oeuvre les étapes du procédé d'authentification précédemment décrit. L'invention concerne donc aussi : - un programme d'ordinateur comportant des instructions pour la mise en oeuvre du procédé d'authentification tel que décrit précédemment lorsque ce programme est exécuté par 15 un processeur du vérifieur 20, - un support d'enregistrement lisible sur lequel est enregistré le programme d'ordinateur décrit ci-dessus. Dans un exemple de réalisation, le vérifieur comprend également les modules suivants (non représentés sur la figure 2) : 20 - des deuxièmes moyens de réception, agencés pour recevoir une deuxième information de contexte ctx'. La deuxième information de contexte est destinée à être utilisée pour mettre à jour l'empreinte du secret dans la base de données des empreintes de référence ; - des moyens de calcul et de remplacement, agencés pour calculer une nouvelle empreinte du secret, en appliquant la fonction à sens unique H au mot de passe w et à la 25 deuxième information de contexte ctx'. Les moyens de calcul et de remplacement son également agencés pour remplacer l'empreinte de référence du secret dans la base de données des empreintes de référence par la nouvelle empreinte. 30 REVENDICATIONS1. Procédé d'authentification d'un utilisateur auprès d'un vérifieur, ledit procédé comprenant : - réception (E2) d'un mot de passe (w) saisi par l'utilisateur et d'une première information de contexte (ctx) saisie par l'utilisateur, - calcul (E3) d'une empreinte courante, en appliquant une fonction à sens unique au mot de passe et à la première information de contexte, - vérification (E4) que l'empreinte courante calculée est égale à une empreinte de référence d'un secret, calculée lors d'une authentification précédente de l'utilisateur, l'authentification étant réussie lorsque l'empreinte courante est égale à l'empreinte de référence. 2. Procédé selon la revendication 1, comprenant : - réception (E6) d'une deuxième information de contexte, - calcul (E7) d'une nouvelle empreinte, en appliquant la fonction à sens unique au mot de passe et à la deuxième information de contexte, et remplacement de l'empreinte de référence du secret par la nouvelle empreinte. 3. Procédé selon la revendication 1, comprenant l'envoi à l'utilisateur d'une question associée à la première information de contexte. 4. Procédé selon la revendication 1 comprenant : - conversion de la première information de contexte en une valeur numérique, - utilisation de la valeur numérique comme un sel de la fonction à sens unique de calcul de l'empreinte courante. 5. Procédé selon la revendication 1 comprenant : - conversion de la première information de contexte en une valeur numérique, - calcul de l'empreinte courante du mot de passe résultant en itérant la fonction à sens unique un nombre de fois égale à la valeur numérique. 6. Vérifieur (11) agencé pour authentifier un utilisateur, ledit serveur comprenant : - des moyens de réception (205), agencés pour recevoir un mot de passe (w) et une première information de contexte (ctx) saisis par l'utilisateur, 3052894 13 - des moyens de calcul (206), agencés pour calculer une empreinte courante, en appliquant une fonction à sens unique au mot de passe et à la première information de contexte, - des moyens de vérification (207), agencés pour vérifier que l'empreinte courante calculée est égale à une empreinte de référence d'un secret, calculée lors d'une authentification 5 précédente de l'utilisateur, l'authentification étant réussie lorsque l'empreinte courante est égale à l'empreinte de référence. 7. Vérifieur selon la revendication précédente, comprenant : - des deuxièmes moyens de réception, agencés pour recevoir une deuxième information 10 de contexte, - des moyens de calcul et de remplacement, agencés pour calculer une nouvelle empreinte en appliquant la fonction à sens unique au mot de passe de passe et à la deuxième information de contexte, et pour remplacer l'empreinte de référence du secret par la nouvelle empreinte. 15 8. Programme d'ordinateur sur un support de données et chargeable dans la mémoire d'un ordinateur, le programme comprenant des portions de code pour l'exécution des étapes du procédé d'authentification selon l'une quelconque des revendications 1 à 5, lorsque le programme est exécuté sur ledit ordinateur. 20 9. Support de données dans lequel est enregistré le programme selon la revendication 8.