Brevet FR3041492A1 — publié le 20170324

Procédé de connexion sécurisé, depuis un équipement informatique client, à une ressource informatique. Domaine de l'invention La présente invention concerne le domaine des 5 serveurs d'application, et plus particulièrement des procédés et des systèmes d'accès à des ressources applicatives hébergés sur un ou plusieurs serveurs, par un utilisateur. Etat de la technique 10 On connaît en particulier dans l'état de la technique la demande de brevet européen EP2894814 un procédé de surveillance d'une session sur un système cible. Un agent transitoire spécifique pour la surveillance de la session est installé sur le système cible 15 lors de la réception de la demande d'ouverture provenant du client de l'utilisateur. La session est établie entre l'utilisateur et le système cible à travers un réseau de communication. L'agent transitoire surveille la session, recueille 20 des données d'événements qui se produisent sur le système cible au cours de la session. L'agent transitoire est désinstallé lorsque la session se termine. 25 Inconvénients de l'art antérieur La solution proposée par la demande EP2894814 prévoit une étape d'installation, par exemple par une commande PsExec, nécessitant des connexions réseaux additionnels et des privilèges particuliers sur le serveur cible. 30 Par ailleurs, il est nécessaire de procéder à une étape spécifique de désinstallation de l'agent, pour éviter 3041492 que son exécution hors session ne consomme inutilement des capacités de calcul du serveur. Solution apportée par l'invention Le but de la présente invention est de remédier à ces inconvénients en proposant une solution plus simple et plus sure, évitant notamment une étape expresse de désinstallation. La solution objet de la présente invention évite également des failles de sécurité. L'invention concerne selon son acception la plus générale un procédé de connexion sécurisé, depuis un équipement informatique client, à une ressource informatique cible comprenant un serveur, et le cas échéant une application exécutée sur ledit serveur, mettant en oeuvre une passerelle mandataire comprenant une mémoire pour l'enregistrement des informations relative à ladite connexion ainsi qu'au moins un agent exécutable sur ledit serveur pendant une session, le procédé comprenant les étapes suivantes : - l'émission d'une requête d'ouverture de session par une application installée sur le poste client, entraînant la création d'une session primaire entre le poste client et la passerelle mandataire. Ladite requête peut contenir l'identifiant du serveur cible ou de l'application cible. - l'ouverture d'une session entre ladite passerelle mandataire et ledit serveur Ledit procédé est caractérisé en ce que - ladite étape d'installation d'au moins un agent est exécutée comprenant successivement : o ladite l'étape d'ouverture d'une session secondaire entre ladite passerelle mandataire et ledit serveur, ladite étape comprenant la mise en place de la redirection d'un disque émulé par la passerelle mandataire sur lequel est enregistré ledit agent, - 2 - 3041492 o l'exécution d'un script de temporisation qui attend que ledit disque émulé soit disponible, o la copie de l'agent vers un répertoire. Ce répertoire peut être avantageusement un répertoire 5 temporaire situé sur le serveur. La destruction automatique dudit répertoire par ledit server à la fin de la session rend inutile une étape spécifique de désinstallation de l'agent. o l'exécution de l'agent sur ledit serveur 10 o l'établissement d'un canal virtuel entre le serveur et la passerelle pour la communication entre l'agent et la passerelle o ensuite, l'ouverture d'un canal montant entre le poste client et le serveur. 15 Le procédé comprend également le lancement par l'agent d'une application préalablement sélectionnée par l'utilisateur, le cas échéant celle-ci pouvant être le gestionnaire de bureau si aucune application n'a été 20 sélectionnée par l'utilisateur. Selon une variante, le procédé selon l'invention comporte une étape préalable de sélection d'une ressource cible, par la transmission par le terminal client d'un message 25 numérique comportant un identifiant d'un utilisateur, et de vérification par ladite passerelle si les informations relatives aux droits d'utilisation associés audit identifiant dans une base de données (302) concernent ladite ressource cible. 30 Avantageusement, il comporte une étape préalable de sélection d'une ressource cible, consistant à la transmission par la passerelle de données numériques comprenant la liste des cibles correspondant aux données enregistrées dans une base de données (302) en relation avec l'identifiant transmis, - 3 3041492 et la sélection par l'utilisateur de l'une des cibles proposées. Avantageusement, ladite base de données (302) 5 comprend une liste des applications et des serveurs hébergeant chacune desdites applications, ainsi que les comptes permettant de se connecter à ces serveurs. De préférence, ladite passerelle comporte des 10 moyens pour le calcul d'une balance des charges en fonction du nombre de connexions déjà ouvertes vers chacun des serveurs, et de sélection pour la nouvelle requête le serveur le moins sollicité. 15 Selon un mode de réalisation avantageux, le procédé comporte une étape d'exécution d'un code informatique pour : - interroger la passerelle en vue d'obtenir les informations d'authentification correspondant au compte de l'application, 20 - injecter ces données dans l'application afin d'ouvrir une session applicative et permettre à l'utilisateur d'utiliser ladite application. Selon une première variante, ledit code est 25 installé sur le serveur (500) de manière permanente et en ce que le chemin d'accès à ce code est défini dans la base de données (302). Selon une deuxième variante, ledit code est 30 transmis transitoirement, par un canal dédié prévu dans le protocole multicanal (400), pour être exécuté transitoirement sur le serveur (500). - 4 3041492 Description détaillée d'un exemple non limitatif de réalisation 5 La présente invention sera mieux comprise à la lecture de la description qui suit, se référant à des exemples non limitatifs de réalisation, illustrés par les dessins annexés où : - la figure 1 représente un schéma de l'architecture 10 fonctionnelle de l'invention - la figure 2 représente un schéma de l'architecture fonctionnelle d'une variante de réalisation de l'invention - la figure 3 représente une vue schématique des étapes du 15 processus et des données échangées entre les différentes ressources informatiques. Architecture fonctionnelle 20 L'utilisateur est un administrateur réseau ou système disposant de droits limités d'administration, pour un ensemble de ressources dont il a la charge. Il dispose d'un terminal (100) communiquant avec la passerelle mandataire (300) (ou « passerelle 25 d'administration ») par l'intermédiaire d'une connexion (200) selon un protocole par exemple SSH (« secure shell ») ou RDP (« remote desktop protocol»). La connexion entraîne la création d'une session primaire (301) sur la passerelle (300). 30 L'utilisateur est identifié par des identifiants numériques qui lui sont propres, et définissant ses droits, ainsi que l'imputation des actions qu'il effectue. La passerelle (300) comporte une base de données (302) dans laquelle sont enregistrés les identifiants des - 5 - 3041492 utilisateurs autorisés ainsi que les droits associés, définissant les cibles (comptes et équipements) sur lesquelles l'utilisateur est en droit d'agir. Lors de la connexion, deux modes de sélection de la 5 ressource sont possibles : - selon le premier mode, l'utilisateur précise, lors de la connexion, la cible à laquelle il veut accéder. Dans ce cas la passerelle vérifie si l'utilisateur identifié par son identifiant dispose des autorisations nécessaires 10 pour accéder à cette cible, en fonction des informations enregistrées dans la base de données (302). - Selon le deuxième mode, la passerelle transmet à l'utilisateur la liste des cibles correspondant aux données enregistrées dans la base de données (302) en 15 relation avec l'identifiant transmis, pour permettre à l'utilisateur de sélection l'une des cibles proposées. L'étape suivante consiste à ouvrir une connexion, généralement avec le même protocole SSH ou RDP, ou encore avec un deuxième protocole,- avec le compte associé à la cible 20 sélectionnée. Cette étape comprend successivement : o ladite l'étape d'ouverture d'une session secondaire entre ladite passerelle mandataire et ledit serveur, ladite étape comprenant-la mise en place de la redirection d'un disque émulé par la passerelle 25 mandataire sur lequel est enregistré ledit agent, o l'exécution d'un script de temporisation qui attend que ledit disque émulé soit disponible o la copie de l'agent vers un répertoire temporaire situé sur le serveur. La destruction automatique 30 dudit répertoire par ledit server à la fin de la session rend inutile une étape spécifique de désinstallation de l'agent. o l'exécution de l'agent sur ledit serveur - 6 - 3041492 o l'établissement d'un canal virtuel entre le serveur et la passerelle pour la communication entre l'agent et la passerelle o ensuite, l'ouverture d'un canal montant entre le 5 poste client et le serveur. Lorsque la cible est une application, la passerelle (300) choisi le serveur (500) adéquat à l'exécution de ladite application. A cet effet, la base de données (302) comprend 10 une liste des applications et des serveurs hébergeant chacune desdites applications, ainsi que les comptes permettant de se connecter à ces serveurs. Lorsque plusieurs serveurs hébergent une même 15 application, la passerelle réalise une balance des charges en fonction du nombre de connexions déjà ouvertes vers chacun des serveurs, et sélectionne pour la nouvelle requête le serveur le moins sollicité. 20 De même, en absence de réponse par un serveur hébergeant une application, la passerelle recherche successivement les autres serveurs hébergeant la même application, pour sélectionner une cible disponible. 25 Le procédé comprend également le lancement par l'agent d'une application préalablement sélectionnée par l'utilisateur, le cas échéant celle-ci pouvant être le gestionnaire de bureau si aucune application n'a été sélectionnée par l'utilisateur. Le lancement d'une application 30 peut être délégué si nécessaire à un code informatique spécialisé pour : - interroger la passerelle en vue d'obtenir les informations d'authentification correspondant au compte de l'application, par exemple un mot de passe ou un certificat 35 cryptographique, ou un ticket Kerberos - 7 - 3041492 - injecter ces données dans l'application afin d'ouvrir une session applicative et permettre à l'utilisateur d'utiliser ladite application. Ce code peut être : 5 - installé sur le serveur (500) de manière permanente. Dans ce cas, le chemin d'accès à ce code est défini dans la base de données (302) - ou transmis transitoirement, par un canal dédié prévu dans le protocole multicanal (400), pour être exécuté 10 transitoirement sur le serveur (500). Le nom de ce code peut être généré de manière unique, afin de rendre plus difficile l'altération de ce code pendant l'exécution de l'application, par une attaque informatique. 15 Ce code installé transitoirement peut également comporter un jeton unique afin de réduire les risques d'accès non autorisé aux données enregistrées dans la base (302), au moyen de la session ouverte, par un attaquant ayant accès au serveur (500). 20 Accès concurrent à des applications sur un même serveur par plusieurs utilisateurs. 25 La figure 2 représente un schéma fonctionnel d'une solution permettant à plusieurs utilisateurs d'accès à des applications hébergées sur un même serveur. Le but est d'éviter les interférences entre les sessions, et de les rendre étanches en terme de sécurité. 30 A cet effet, lorsqu'un second utilisateur (150) cherche à exécuter une application hébergée sur le même serveur (500) qu'une application exécutée pour un premier utilisateur (100), la passerelle (300) inhibera les données de la base (302) relatives au compte utilisé par le premier utilisateur (100), sur le serveur (500). Elle n'autorisera - 8 3041492 l'exécution d'une application sur ce même serveur (500) que si un compte reste disponible pour un second utilisateur (150). Données échangées entre les ressources informatiques 5 La figure 3 représente une vue schématique des données échangées entre les différentes ressources informatiques. Lors de la connexion par un utilisateur, le 10 terminal (100) transmet à la passerelle mandataire (300) les identifiants numériques primaires. Ces données d'authentification sont vérifiées par la passerelle (300), en fonction des informations enregistrées 15 dans sa base de données (302). En cas de validation, la passerelle (302) transmet la liste des cibles autorisées (Cl à C3). Chaque cible correspond à un couple : - application 20 - compte associé à l'application. Le compte comprend : - une information d'identification - une information d'authentification, telle qu'un mot de passe. 25 La passerelle transmet à l'utilisateur (100), pour chacune des cibles autorisées, seulement la désignation de l'application et la désignation de l'identifiant du compte, mais pas l'information d'authentification, sous la forme de chaines de caractères désignant les couples 30 application/compte. L'utilisateur (100) sélectionne l'une des cibles proposées et en transmet l'identifiant à la passerelle (300). La passerelle (300) choisit un serveur, et un compte pour ouvrir une session sur ledit serveur (500) selon - 9 - 3041492 le processus de sélection du serveur et du compte préalablement décrit. Elle ouvre ainsi une session secondaire, sur le serveur. Cette session présente un disque émulé par la 5 passerelle. Ce disque comporte un agent. Puis la passerelle recopie et démarre l'agent selon le procédé préalablement décrit. Celui-ci démarre le gestionnaire de bureau ou dans le cas où l'utilisateur a sélectionné une application spécifique, il procède à son exécution soit directement soit au moyen d'un 10 code informatique spécialisé. Ce code demande à la passerelle l'identifiant du compte de l'application ainsi que les données d'authentification associées à ce compte. Le code informatique transmet alors ces informations à l'application pour commander l'exécution de 15 l'application. - 10 - REVENDICATIONS1 - Procédé de connexion sécurisé, depuis un équipement informatique client, à une ressource informatique 5 cible comprenant un serveur, et le cas échéant une application exécutée sur ledit serveur, mettant en oeuvre une passerelle mandataire comprenant une mémoire pour l'enregistrement des informations relative à ladite connexion ainsi qu'au moins un agent exécutable sur ledit serveur pendant une session, le 10 procédé comprenant les étapes suivantes : - l'émission d'une requête d'ouverture de session par une application installée sur le poste client, entraînant la création d'une session primaire entre le poste client et la passerelle mandataire. Ladite requête peut contenir 15 l'identifiant du serveur cible ou de l'application cible. - l'ouverture d'une session entre ladite passerelle mandataire et ledit serveur ledit procédé étant caractérisé en ce que - ladite étape d'émission d'une requête est mise en oeuvre 20 par l'ouverture préalable d'une session primaire [RDP] entre le poste client et la passerelle mandataire par l'envoi d'un message comprenant l'identifiant du serveur cible ou de l'application cible - ladite étape d'installation d'au moins un agent est 25 exécutée comprenant successivement : o ladite l'étape d'ouverture d'une session secondaire entre ladite passerelle mandataire et ledit serveur, ladite étape comprenant la mise en place de la redirection d'un disque émulé par la passerelle 30 mandataire sur lequel est enregistré ledit agent, o l'exécution d'un script de temporisation qui attend que ledit disque émulé soit disponible. o la copie de l'agent vers un répertoire situé sur le serveur. 3041492 o l'exécution de l'agent sur ledit serveur o l'établissement d'un canal virtuel entre le serveur et la passerelle pour la communication entre l'agent et la passerelle o ensuite, l'ouverture d'un canal montant entre le poste client et le serveur. o finalement l'agent lance le gestionnaire de bureau ou l'application cible en lui injectant les identifiants applicatifs nécessaires transmis par la passerelle. 2 - Procédé de connexion sécurisé selon la revendication 1 caractérisé en ce qu'il comporte une étape de destruction automatique dudit répertoire par ledit server à la 15 fin de la session. 3 - Procédé de connexion sécurisé selon la revendication 1 caractérisé en ce que l'agent est exécuté au sein de la session avec l'identité utilisée pour l'ouverture 20 de la session. 4 - Procédé de connexion sécurisé selon la revendication 1 caractérisé en ce que qu'il comporte une étape préalable de sélection d'une ressource cible, par la 25 transmission par le terminal client d'un message numérique comportant un identifiant d'un utilisateur, et de vérification par ladite passerelle si les informations relatives aux droits d'utilisation associés audit identifiant dans une base de données (302) concernent ladite ressource cible. 30 5 - Procédé de connexion sécurisé selon la revendication 1 caractérisé en ce que qu'il comporte une étape préalable de sélection d'une ressource cible, consistant à la transmission par la passerelle des données numériques 35 comprenant la liste des cibles correspondant aux données - 12 - 3041492 enregistrées dans une base de données (302) en relation avec l'identifiant transmis, et de sélection par l'utilisateur de l'une des cibles proposées. 5 6 - Procédé de connexion sécurisé selon la revendication 4 ou 5 caractérisé en ce que ladite base de données (302) comprend une liste des applications et des serveurs hébergeant chacune desdites applications, ainsi que les comptes permettant de se connecter à ces serveurs. 10 7 - Procédé de connexion sécurisé selon la revendication 1 caractérisé en ce que qu'il comporte une étape d'ouverture d'une connexion avec le compte associé à la cible 15 sélectionnée. 8 - Procédé de connexion sécurisé selon la revendication 1 caractérisé en ce que ladite passerelle comporte des moyens pour le calcul d'une balance des charges 20 en fonction du nombre de connexions déjà ouvertes vers chacun des serveurs, et de sélection pour la nouvelle requête le serveur le moins sollicité. 9 - Procédé de connexion sécurisé selon la 25 revendication 1 caractérisé en ce qu'il comporte une étape d'exécution d'un code informatique pour : - interroger la passerelle en vue d'obtenir les informations d'authentification correspondant au compte de l'application, 30 - injecter ces données dans l'application afin d'ouvrir une session applicative et permettre à l'utilisateur d'utiliser ladite application. 10 - Procédé de connexion sécurisé selon la 35 revendication précédente caractérisé en ce que ledit code est - 13 - 3041492 installé sur le serveur (500) de manière permanente et en ce que le chemin d'accès à ce code est défini dans la base de données (302). 5 11 - Procédé de connexion sécurisé selon la revendication 9 caractérisé en ce que ledit code est transmis transitoirement, par un canal dédié prévu dans le protocole multicanal (400), pour être exécuté transitoirement sur le serveur (500). 10 - 14 -