Brevet FR2816782A1 — publié le 20020517

PROCEDE ET DISPOSITIF DE GESTION D'UNE AUTHENTIFICATION DANS UNE COMMUNICATION UTILISANT HTTP La présente invention concerne un procédé et un dispositif de gestion d'une authentification dans une communication entre une machine client et une machine serveur d'un système informatique utilisant le protocole HTTP (protocole de transfert hypertexte). L'art antérieur Le protocole HTTP est un protocole de communication de niveau applicatif. Le protocole HTTP est utilisé entre un client et un serveur pour transmettre et recevoir des données dans des requêtes sans gestion d'état : chaque requête est exécutée indépendamment l'une de l'autre sans connaissance des requêtes précédentes. En l'absence de gestion d'état et plus particulièrement de gestion d'authentification, le serveur ne peut pas réagir de manière adaptée aux requêtes du client. L'authentification est une procédure permettant d'obtenir et de vérifier l'identité d'une entité appelante émettant des requêtes vers un serveur. Sans gestion d'authentification, le serveur ne reconnaît pas celui qui émet des requêtes. Actuellement, pour répondre au problème d'absence de gestion d'authentification dans le protocole HTTP, un mécanisme de fichier témoin appelé dans le langage courant informatique cookie est de plus en plus utilisé. Le fichier témoin est une information envoyée par un serveur, stockée du côté client dans une communication client/serveur et retrouvée par ledit serveur lors d'une utilisation ultérieure. Lorsqu'une entité appelante et plus précisément un utilisateur se connecte à un site du réseau de la toile, des informations sur l'utilisateur sont collectées dans un fichier témoin par le serveur et envoyées au navigateur du client qui les stocke pour une utilisation ultérieure. Lorsque l'utilisateur se connecte à nouveau sur le site en question, le navigateur envoie le fichier témoin correspondant au serveur. Le serveur utilise les informations du fichier témoin pour se configurer en fonction de l'utilisateur qui l'appelle. Les informations en question sont par exemple un identifiant unique dudit utilisateur, un extrait des pages du site visitées par ledit utilisateur, la date à laquelle certaines pages ont été lues... Généralement, un fichier témoin enregistre les préférences de l'utilisateur lorsqu'il utilise un site donné afin de préparer des pages personnalisées lorsqu'il se connecte à nouveau audit site. Le mécanisme de fichier témoin permet également de changer les encarts publicitaires notamment lors d'une succession de pages requises, voire de les adapter à l'utilisateur concerné. Cependant, les fichiers témoins posent notamment les problèmes suivants. Les fichiers témoins s'installent dans la mémoire de la machine client et encombrent celle-ci. Par ailleurs, certains utilisateurs jugent les fichiers témoins comme des fichiers espions portant atteinte au principe de protection des informations personnelles. Ainsi, les utilisateurs préfèrent souvent désactiver le mécanisme de fichiers témoin. Un but de la présente invention consiste à pallier au problème d'absence de gestion d'authentification du protocole HTTP, notamment lors de dialogue sécurisé entre un utilisateur et une application, en évitant les problèmes posés par le mécanisme de fichier témoin. Résumé de l'invention Dans ce contexte, la présente invention propose un procédé de détection d'une précédente authentification d'une entité appelante émettant des requêtes à partir d'une machine client vers une machine serveur d'un système, le protocole de communication entre la machine client et la machine serveur étant le protocole HTTP ou tout protocole équivalent, caractérisé en ce que à réception de la requête provenant de la machine, . Si la requête ne comprend pas une donnée d'identification de l'entité, la machine serveur renvoie selon le protocole HTTP ou équivalent une demande d'authentification à la machine client ; . Si la requête comprend ladite donnée, la machine serveur recherche dans des moyens de mémorisation l'existence d'une précédente authentification de ladite entité à partir de ladite donnée d'identification. La présente invention concerne également le dispositif de mise en oeuvre dudit procédé, des applications dudit procédé et le programme mettant en oeuvre ledit procédé. Présentation des figures D'autres caractéristiques et avantages de l'invention apparaîtront à la lumière de la description qui suit, donnée à titre d'exemple illustratif et non limitatif de la présente invention, en référence au dessin annexé dans lequel la figure 1 est une vue schématique d'une forme de réalisation du dispositif selon l'invention. Description d'une forme de réalisation de l'invention Comme le montre la figure 1, le système 1 est distribué et composé de machines 2a, 2b, 2c, 2d, 2e, 2f organisées en un ou plusieurs réseaux 3. Une machine 2 est une unité conceptuelle très large, de nature matérielle et logicielle. Les machines peuvent être très diverses, telles que par exemple des stations de travail, serveurs, routeurs, machines spécialisées, téléphones ou passerelles entre machines. Seuls les composants des machines 2 du système 1 caractéristiques de la présente invention seront décrits, les autres composants étant connus de l'homme du métier. Comme le montre la figure 1, dans la présente invention, le système est un système informatique 1 comprenant une machine 2a dite machine client associée à une entité appelante 4, dans le présent exemple, un utilisateur 4, une machine 2b dite machine serveur apte à assurer l'authentification dudit utilisateur, une machine 2c dite machine de sécurité apte à stocker des informations de sécurité et une machine 2d dite machine ressource accessible par la machine 2b serveur. L'utilisateur 4 est susceptible d'être une personne physique, une machine, un module logiciel ou autre. L'utilisateur est compris dans la machine 2a client ou est extérieur à celle-ci (cas de la figure 1). Dans la forme de réalisation illustrée, la machine 2a client comporte un navigateur 5 et la machine 2b serveur se présente sous la forme d'un serveur. Selon une forme particulière de l'invention illustrée sur la figure 1, la machine 2b serveur est une passerelle vers une autre machine 2e serveur. La machine 2e serveur gère une machine 2f ressource. Le protocole de communication entre la machine 2a client et la machine 2b serveur est le protocole HTTP ou tout protocole équivalent. Les requêtes HTTP comprennent un en-tête d'authentification lorsque l'utilisateur émettant lesdites requêtes a été authentifié. Tant que l'utilisateur ne s'est pas correctement authentifié, l'en-tête d'authentification est absent de la requête émise. L'en-tête d'authentification des requêtes transmises selon le protocole HTTP contient un identifiant de l'utilisateur 4 et un mot de passe associé. La donnée d'identification est l'identifiant de l'utilisateur 4. Dans le protocole HTTP, les en-têtes d'authentification sont automatiquement retransmis par le navigateur 5 de manière transparente à l'utilisateur 4 lorsque la requête associée porte sur une machine 2d, 2f ressource appartenant à un même espace de machines ressource. Un espace de machines ressource est défini par un ensemble de machines ressource pour lesquelles une authentification effectuée pour l'accès à l'une desdites machines ressource est valable pour l'ensemble desdites machines ressource. Un protocole équivalent au protocole HTTP est un protocole dans lequel les requêtes transmises par la machine 2a client selon ledit protocole contiennent au moins une donnée d'identification de l'utilisateur 4 concerné lorsque l'utilisateur a été correctement authentifié et dans lequel lorsque l'utilisateur s'est correctement authentifié, la donnée d'identification est automatiquement retransmise par la machine 2a effectuant l'authentification lorsque la requête contenant ladite donnée est transmise à une machine 2d, 2f ressource appartenant à un même espace de ressources que la machine ressource pour laquelle ladite précédente authentification a été correctement effectuée. La machine 2b comprend un module 6 d'analyse. Le système 1 comporte des moyens 7 de mémorisation de précédente authentification d'utilisateurs 4. Les moyens 7 de mémorisation se présentent par exemple sous la forme d'une mémoire de la machine 2b serveur (forme de réalisation illustrée) ou d'un disque auquel la machine 2b a accès. Dans la forme de réalisation de la figure 1, les moyens 7 de mémorisation ordonnent les données mémorisées dans une table 8 de gestion de précédente authentification d'utilisateurs 4. La table 8 comprend plusieurs colonnes : une première colonne 9, appelée Identifiant indique une donnée d'identification de l'utilisateur 4, correspondant par exemple dans le cas d'un protocole HTTP à l'identifiant de l'utilisateur ( Dupont , Durant sur la figure 1) ; une deuxième colonne 10, appelée Auth. mentionne la présence ou l'absence (présence ou non d'une croix dans la colonne sur la figure 1) d'une précédente authentification réussie ; une troisième colonne 11, appelée Log mémorise le nom de connexion de l'utilisateur ( dup, dur) et une quatrième colonne 12, appelée Passe le mot de passe ( xyz , V3k ) ; une cinquième colonne 13, appelée Délai précise un délai d'expiration de la précédente authentification (l'authentification de l'utilisateur Dupont est valable durant une heure) ; une sixième colonne 14, appelée Date mentionne la date à laquelle l'utilisateur s'est authentifié avec succès pour la dernière fois (l'utilisateur Dupont"s'est authentifié pour la dernière fois le 6 juin 2000). La table peut contenir d'autres données enregistrées dans d'autres colonnes suivant les besoins du système 1. La machine 2c de sécurité comprend des moyens 15 de stockage. Les moyens 15 de stockage se présentent par exemple sous la forme d'une base de données enregistrée sur disque dur. Les moyens 15 de stockage stocke sous forme classée les données d'authentification des utilisateurs 4. Le procédé selon la présente invention comprend les différentes étapes suivantes. Lors d'une première étape (étape (1) sur la figure 1), la machine 2a client envoie une requête à la machine 2b serveur. La machine 2b serveur intercepte la requête HTTP ou équivalent provenant de la machine 2a. La machine 2b serveur analyse l'en-tête de la requête HTTP : si l'en-tête est absente, à savoir que l'utilisateur n'a jamais été authentifié pour l'accès à l'espace de ressources concerné, la machine 2b serveur répond à la requête client en renvoyant le code état standard 401 du protocole HTTP (étape (2) sur la figure 1) ou tout code équivalent d'un autre protocole. Le code état standard 401 du protocole HTTP comprend un en-tête de demande de données d'authentification et un paramètre d'identification d'un espace de machines ressource pour lesquelles une authentification réussie est valable. Ledit paramètre est appelé realm dans la terminologie standard du protocole HTTP. Un code équivalent au code état 401 est un code comprenant au moins une demande de données d'authentification. A réception du code état 401, la machine 2a client comprend qu'elle doit authentifier l'utilisateur 4 en lui présentant une fenêtre d'authentification (étape (3) sur la figure 1). Ladite fenêtre d'authentification demande à l'utilisateur 4 ses données d'authentification et en particulier une donnée d'identification (son identifiant dans le cas du protocole HTTP) et un mot de passe. L'utilisateur saisit des données d'authentification dans la machine 2a client. La machine 2a client transmet lesdites données d'authentification et en particulier la donnée d'identification sous forme d'en-tête HTTP à la machine 2b serveur (étape (4) sur la figure 1). Le module 6 d'analyse extrait de la requête client les données d'authentification de l'utilisateur. Le module 6 d'analyse recherche les données d'authentification de l'utilisateur 4 dans la machine 2c de sécurité. Le module 6 d'analyse (étape (5) sur la figure 1) compare l'identifiant et le mot de passe saisi par l'utilisateur 4 à l'identifiant et au mot de passe stockés dans les moyens 15 de stockage de la machine 2c de sécurité. Si les données d'authentification de l'utilisateur 4 dans la machine 2c de sécurité ne correspondent pas à celles saisies par l'utilisateur 4, l'utilisateur n'est pas authentifié. La machine 2b serveur indique à la machine 2a client que l'authentification a échoué. Si les données d'authentification de l'utilisateur 4 dans la machine 2c de sécurité correspondent à celles saisies par l'utilisateur 4, l'utilisateur 4 est authentifié. Le délai d'expiration de ladite authentification est extrait de la machine 2c de sécurité. Dans le cas d'une authentification réussie, le module 6 d'analyse parcourt la table 8 dans les moyens 7 de mémorisation pour retrouver la donnée d'identification de l'utilisateur 4 extraite de l'en-tête HTTP (étape (6) de la figure 1). Si l'utilisateur s'authentifie pour la première fois, la donnée d'identification est absente de la table 8. Le module 6 d'analyse enregistre la donnée d'identification dans la première colonne 9 de la table 8 ( Dupont dans l'exemple illustré sur la figure 1) et indique dans la deuxième colonne 10 de ladite table (par une croix dans l'exemple illustré sur la figure 1) qu'une authentification a été effectuée (étape (7) sur la figure 1). Le module 6 d'analyse précise dans la cinquième colonne 13 le délai d'expiration de l'authentification précédemment effectuée, délai extrait de la machine 2c de sécurité et dans la sixième colonne 14 la date à laquelle l'utilisateur s'est correctement authentifié dans l'étape (5) précédente qui correspond en fait à la date à laquelle la machine (2b) entre ladite information. Selon une autre forme de réalisation, le délai d'expiration n'est pas enregistré dans la machine 2c sécurité mais fait partie des informations enregistrées de manière permanente dans la machine (2b) serveur (appelées informations système). Dans ce cas, le délai d'expiration est identique pour tous les utilisateurs. Si la machine 2a souhaite accéder à nouveau à une même machine 2d, 2f ressource appartenant à un même espace de machines ressource, comme vu plus haut, l'en-tête contenant les données d'authentification est renvoyé automatiquement. Les étapes (2), (3), (5) et (7) disparaissent. La machine 2b ne renvoie pas l'erreur 401. Le module 6 recherche la donnée d'identification extraite de l'entête dans la première colonne 9 de la table 8. Lorsque le module 6 retrouve ladite donnée, le module 6 analyse les données de la ligne concernée de la table, à savoir celle de l'utilisateur 4. Le module 6 déduit de la présence d'une croix dans la deuxième colonne, l'existence d'une précédente authentification réussie. La machine 2b serveur a connaissance de la précédente authentification. Le module 6 effectue ensuite l'opération suivante. Le module 6 compare la durée écoulée entre la date à laquelle s'effectue ladite opération et la date de la dernière authentification. Si ladite durée est plus longue que le délai d'expiration, la précédente authentification n'est plus valable : l'utilisateur doit se réauthentifier. Un code état 401 est envoyé à la machine 2a. Si ladite durée est plus courte que le délai d'expiration, la précédente authentification est encore valable. L'utilisateur est reconnu sans faire appel au mécanisme de fichier témoin. A chaque nouvel accès à une ressource de la machine 2b n'appartenant pas à l'espace de ressource d'une ressource pour laquelle l'utilisateur s'est authentifié, les étapes (1) à (7) sont reproduites. Ainsi, aucun fichier n'est enregistré dans la mémoire des machines 2a client. De plus, aucune information sur l'utilisateur n'est enregistré exception faite de la connaissance de l'existence ou non d'une authentification de celui-ci dans un certain délai précédant la requête en cours. Selon un développement de l'invention, lors de la première authentification, le nom de connexion et le mot de passe extrait des moyens 15 de stockage de la machine 2c de sécurité sont enregistrés dans les moyens 7 de mémorisation et plus précisément dans les troisième et quatrième colonnes 11 et 12. Les moyens 7 jouent alors un rôle d'antémémoire : la machine 2b serveur n'a plus besoin de rechercher les données d'authentification dans la machine 2c. Il en résulte un gain de temps. Dans cette forme de réalisation, l'existence de l'authentification, le nom de connexion, le mot de passe de l'utilisateur en question, le délai d'expiration et la date de la dernière authentification sont enregistrés dans la table 8. Une application du procédé selon la présente invention est donnée ciaprès à titre illustratif. Les étapes (1) à (7) du procédé selon la présente invention se déroulent, comme présentées ci-dessus. La machine 2b est, selon la forme particulière de réalisation du système décrite ci-dessus, une passerelle au travers de laquelle les requêtes sont transférées vers une machine 2e serveur pour traitement. L'utilisateur 4 cherche à accéder à une nouvelle application gérée par une machine 2f ressource appartenant à un même espace de machines ressource que celui pour lequel l'utilisateur s'est déjà authentifié. La machine 2b intercepte la requête et constate la précédente authentification (étape (6)). La passerelle 2b transfère la requête à une machine 2e serveur gérant la machine ressource concernée. La machine 2e serveur requiert l'authentification de l'utilisateur 4 et renvoie le code état 401 à la machine 2b. La machine 2b renvoie alors à la machine 2e avec le protocole HTTP le nom de connexion et le mot de passe de l'utilisateur 4 extraits des moyens 7 de mémorisation sans faire appel à l'utilisateur 4. La procédure d'authentification de l'utilisateur 4 est unique pour un ensemble d'applications et appelée en anglais Single Sign-On. Le procédé selon l'invention est donc applicable au Single Sign-On. Le procédé selon la présente invention est également applicable à l'audit. Le procédé selon la présente invention permet d'extraire la donnée d'identification d'un utilisateur à chacune de ses requêtes : la machine 2b serveur remplit un fichier historique en y rajoutant une description des actions de l'utilisateur y compris les refus d'accès. La présente invention concerne donc un procédé de détection d'une précédente authentification d'une entité appelante 4 émettant des requêtes à partir d'une machine 2a client vers une machine 2b serveur d'un système 1, le protocole de communication entre la machine 2a client et la machine 2b serveur étant le protocole HTTP ou tout protocole équivalent, caractérisé en ce que, à réception de la requête provenant de la machine 2a, * Si la requête ne comprend pas une donnée d'identification de l'entité 4, la machine 2b serveur renvoie selon le protocole HTTP ou équivalent une demande d'authentification à la machine 2a client ; . Si la requête comprend ladite donnée, la machine 2b serveur recherche dans des moyens 7 de mémorisation l'existence d'une précédente authentification de ladite entité 4 à partir de ladite donnée d'identification. Le terme précédente qualifiant l'authentification signifie que l'authentification éventuelle a été effectuée avant l'émission de la requête en cours. Si la requête comprend la donnée d'identification de l'entité et que la donnée d'identification de l'entité 4 en question est absente des moyens 7 de mémorisation, la machine 2b enregistre dans les moyens 7 l'existence d'une précédente authentification pour ladite entité. Selon une forme de réalisation particulière de l'invention, la machine 2b serveur enregistre également dans les moyens 7 de mémorisation la date à laquelle elle effectue l'enregistrement, un délai d'expiration de l'authentification et/ou toute autre information. Si la requête comprend ladite donnée d'identification, et que la machine 2b retrouve dans les moyens 7 de mémorisation l'existence d'une précédente authentification de ladite entité 4, la machine 2b a connaissance d'une précédente authentification de l'entité en question. Selon la forme de réalisation particulière de l'invention, si la requête comprend ladite donnée d'identification, et que la machine 2b recherche en plus de l'existence d'une précédente authentification, la date d'enregistrement et le délai d'expiration, la machine 2b requiert une nouvelle authentification de la machine 2a si le délai écoulé entre la date d'enregistrement et la date à laquelle elle effectue ladite comparaison est plus long que le délai d'expiration. La présente invention concerne également un dispositif de détection d'une précédente authentification d'une entité appelante 4 émettant des requêtes à partir d'une machine 2a client vers une machine 2b serveur d'un système 1, le protocole de communication entre le machine 2a client et la machine 2b serveur étant le protocole HTTP ou tout protocole équivalent, caractérisé en ce que la machine 2b serveur comprend le module 6 d'analyse permettant de vérifier ou d'enregistrer l'existence d'une précédente authentification pour l'utilisateur 4 en question dans des moyens 7 de mémorisation. Le module 6 d'analyse intercepte les requêtes client et en extrait la donnée d'identification de ladite entité 4. Les moyens 7 de mémorisation comprennent la table 8 comportant une colonne dans laquelle est enregistrée la donnée d'identification de l'entité 4 et une colonne dans laquelle est enregistrée l'existence d'une précédente authentification pour ladite entité et/ou une ou plusieurs autres colonnes pour enregistrer tout autre type de données. La présente invention s'applique à une procédure de connexion unique de l'entité 4. Elle s'applique également à l'audit de l'entité 4. La présente invention porte également sur le programme de détection d'une précédente authentification d'une entité appelante 4 intégré à la machine 2b serveur et permettant l'exécution du procédé selon la présente invention. REVENDICATIONS 1. Procédé de détection d'une précédente authentification d'une entité appelante (4) émettant des requêtes à partir d'une machine (2a) client vers une machine (2b) serveur d'un système (1), le protocole de communication entre la machine (2a) client et la machine (2b) serveur étant le protocole HTTP ou tout protocole équivalent, caractérisé en ce que, à réception de la requête provenant de la machine (2a), . Si la requête ne comprend pas une donnée d'identification de l'entité (4), la machine (2b) serveur renvoie selon le protocole HTTP ou équivalent une demande d'authentification à la machine (2a) client ; * Si la requête comprend ladite donnée, la machine (2b) serveur recherche dans des moyens (7) de mémorisation l'existence d'une précédente authentification de ladite entité (4) à partir de ladite donnée d'identification. 2. Procédé selon la revendication 1, caractérisé en ce que si la requête comprend la donnée d'identification de l'entité et que la donnée d'identification de l'entité (4) en question est absente des moyens (7) de mémorisation, la machine (2b) enregistre dans les moyens (7) l'existence d'une précédente authentification pour ladite entité. 3. Procédé selon la revendication 2, caractérisé en ce que la machine (2b) serveur enregistre également dans les moyens (7) de mémorisation la date à laquelle elle effectue l'enregistrement, un délai d'expiration de l'authentification et/ou toute autre information. 4. Procédé selon l'une des revendications précédentes, caractérisé en ce que si la requête comprend ladite donnée d'identification, et que la machine (2b) retrouve dans les moyens (7) de mémorisation l'existence d'une précédente authentification de ladite entité (4), la machine (2b) a connaissance d'une précédente authentification de l'entité en question. 5. Procédé selon la revendication 3, caractérisé en ce que si la requête comprend ladite donnée d'identification, et que la machine (2b) recherche en plus de l'existence d'une précédente authentification, la date d'enregistrement et le délai d'expiration, la machine (2b) requiert une nouvelle authentification de la machine (2a) si le délai écoulé entre la date d'enregistrement et la date à laquelle elle effectue ladite comparaison est plus long que le délai d'expiration. 6. Dispositif de détection d'une précédente authentification d'une entité appelante (4) émettant des requêtes à partir d'une machine (2a) client vers une machine (2b) serveur d'un système (1), le protocole de communication entre le machine (2a) client et la machine (2b) serveur étant le protocole HTTP ou tout protocole équivalent, caractérisé en ce que la machine (2b) serveur comprend un module (6) d'analyse permettant de vérifier ou d'enregistrer l'existence d'une précédente authentification pour l'utilisateur (4) en question dans des moyens (7) de mémorisation. 7. Dispositif selon la revendication 6, caractérisé en ce que le module (6) d'analyse intercepte les requêtes client et en extrait une donnée d'identification de ladite entité (4). 8. Dispositif selon la revendication 7, caractérisé en ce que les moyens (7) de mémorisation comprennent une table (8) comportant une colonne dans laquelle est enregistrée la donnée d'identification de l'entité (4) et une colonne dans laquelle est enregistrée l'existence d'une précédente authentification pour ladite entité et/ou une ou plusieurs autres colonnes pour enregistrer tout autre type de données. 9. Application du procédé selon l'une des revendications 1 à 5 à une procédure de connexion unique de l'entité (4). 10. Application du procédé selon l'une des revendications 1 à 5 à l'audit de l'entité (4). 11. Programme de machine pour l'exécution des étapes du procédé selon l'une des revendications 1 à 5 lorsque ledit programme est exécuté sur une machine.