CA3121595A1 - Procede de connexion d'une application informatique a une ressource informatique securisee - Google Patents
Procede de connexion d'une application informatique a une ressource informatique securisee Download PDFInfo
- Publication number
- CA3121595A1 CA3121595A1 CA3121595A CA3121595A CA3121595A1 CA 3121595 A1 CA3121595 A1 CA 3121595A1 CA 3121595 A CA3121595 A CA 3121595A CA 3121595 A CA3121595 A CA 3121595A CA 3121595 A1 CA3121595 A1 CA 3121595A1
- Authority
- CA
- Canada
- Prior art keywords
- resource
- application
- safe
- access
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000004883 computer application Methods 0.000 title claims description 24
- 238000004891 communication Methods 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims description 51
- 230000001052 transient effect Effects 0.000 claims description 21
- 238000004364 calculation method Methods 0.000 claims description 12
- 230000003993 interaction Effects 0.000 claims description 7
- 238000011282 treatment Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 238000011084 recovery Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims 1
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0853—Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/08—Protocols specially adapted for terminal emulation, e.g. Telnet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0872—Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Storage Device Security (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
Procédé de connexion d'une application (A) à une ressource (D) par une commande (B), l'application étant prévue pour configurer la ressource par une connexion à la ressource au moyen d'un programme (F) et de paramètres de configurations, le programme implémentant une partie client d'un protocole de communication, le procédé comportant une exécution de la commande lors d'un appel du programme par ladite application, la commande étant interposée entre l'application et le programme; une réception de données d'authentifications pour l'accès à la ressource, par interrogation d'un coffre-fort (C), à partir de paramètres de configurations; un établissement d'une connexion entre la commande et la ressource par exécution du programme, dans lequel sont injectés en entrée les données d'authentification pour l'accès à la ressource, et les paramètres de configuration récupérés; un établissement d'une connexion directe entre l'application et la ressource.
Description
Procédé de connexion d'une application informatique à une ressource informatique sécurisée Domaine technique La présente invention se rapporte au domaine du DevOps, qui est la concaténation des trois premières lettres du mot anglais development qui vise le développement logiciel, et de l'abréviation usuelle ops du mot anglais operations, qui vise l'administration des infrastructures informatiques, et notamment l'administration système.
État de la technique antérieure Selon le modèle d'architecture réseau SDN, pour l'anglais software-defined networking, les administrateurs de réseaux peuvent gérer les services de réseaux par abstraction de fonctionnalités. Ce modèle d'architecture réseau comporte un ensemble de technologies ayant pour point commun un contrôle centralisé des ressources réseau, une orchestration centralisée et une virtualisation des ressources physiques.
Avec le développement du modèle d'architecture réseau SDN, les nouvelles structures informatiques sont de plus en plus gérées à l'aide de concepts provenant du domaine du DevOps. Le devops est un mouvement en ingénierie informatique et une pratique technique visant à l'unification du développement logiciel (dey) et de l'administration des infrastructures informatiques (ops), notamment l'administration système.
Au début, cela concernait principalement les nuages publics, pour l'anglais public cloud, comme AWS, pour Amazon Web Services, qui vise des services d'informatique en nuage, pour l'anglais cloud computing, à la demande pour les entreprises et particuliers, ou encore Azure, qui est la plate-forme applicative développée par Microsoft. Cependant, ces concepts se répandent rapidement sur tous les types d'infrastructures.
L'un des principaux atouts de ces technologies est l'automatisation des tâches de gestion. Pour ce faire, des outils spécifiques ont été développés, tels que Ansible (plate-forme logicielle libre pour la configuration et la gestion des ordinateurs), Puppet
État de la technique antérieure Selon le modèle d'architecture réseau SDN, pour l'anglais software-defined networking, les administrateurs de réseaux peuvent gérer les services de réseaux par abstraction de fonctionnalités. Ce modèle d'architecture réseau comporte un ensemble de technologies ayant pour point commun un contrôle centralisé des ressources réseau, une orchestration centralisée et une virtualisation des ressources physiques.
Avec le développement du modèle d'architecture réseau SDN, les nouvelles structures informatiques sont de plus en plus gérées à l'aide de concepts provenant du domaine du DevOps. Le devops est un mouvement en ingénierie informatique et une pratique technique visant à l'unification du développement logiciel (dey) et de l'administration des infrastructures informatiques (ops), notamment l'administration système.
Au début, cela concernait principalement les nuages publics, pour l'anglais public cloud, comme AWS, pour Amazon Web Services, qui vise des services d'informatique en nuage, pour l'anglais cloud computing, à la demande pour les entreprises et particuliers, ou encore Azure, qui est la plate-forme applicative développée par Microsoft. Cependant, ces concepts se répandent rapidement sur tous les types d'infrastructures.
L'un des principaux atouts de ces technologies est l'automatisation des tâches de gestion. Pour ce faire, des outils spécifiques ont été développés, tels que Ansible (plate-forme logicielle libre pour la configuration et la gestion des ordinateurs), Puppet
2 PCT/FR2019/053299 (logiciel libre permettant la gestion de la configuration de serveurs esclaves) ou Chief (logiciel libre de gestion de configuration).
Ces outils permettent d'automatiser l'exécution de tâches sur un ensemble de ressources. Pour ce faire, ils s'appuient fortement sur des protocoles tels que SSH
pour se connecter, déployer et exécuter des scripts sur les ressources.
L'exécution de ces scripts nécessite un accès aux informations d'identification sans interaction humaine.
Ce besoin est déjà résolu en utilisant les concepts de plug-in (module d'extension informatique) configure pour extraire d'un coffre-fort des informations d'identification.
A cet effet, on pourra utilement se reporter à la demande internationale de la demanderesse, publiée sous le numéro W02018/162810, qui propose un procédé
d'accès à une ressource informatique sécurisée par une application informatique.
La ressource informatique sécurisée est dépourvue d'interaction homme-machine pour la saisie d'une information d'authentification. Le procédé proposé
comporte a) une première étape d'initialisation comprenant une création d'une clé
cryptographique transitoire consistant à appliquer un traitement cryptographique à une pluralité
d'informations invariantes dans le temps et à chiffrer avec la clé
cryptographique transitoire ainsi calculée des données d'authentification d'un compte autorisé
à
accéder à un coffre-fort à mots de passe et b) des étapes d'accès automatique par l'application à la ressource informatique sécurisée consistant à créer une clé
cryptographique transitoire consistant à appliquer un traitement cryptographique à la pluralité d'informations invariantes dans le temps, à lire le fichier crédentiel, pour l'anglais credential, créé lors de l'étape d'initialisation et à déchiffrer le fichier crédentiel avec la clé cryptographique transitoire calculée à l'étape précédente puis à
transférer à l'application appelante les données provenant de la ressource informatique.
Il serait possible de mettre en oeuvre le procédé d'accès selon l'art antérieur pour fournir le mot de passe aux outils spécifiques ont été développés, tels que Ansible.
Cependant, la surface d'attaque entre l'extraction des informations d'identification et leur utilisation par l'outil d'accès sous-jacent (principalement le client SSH) offre toujours une grande opportunité pour un attaquant de voler les informations d'identification.
Ces outils permettent d'automatiser l'exécution de tâches sur un ensemble de ressources. Pour ce faire, ils s'appuient fortement sur des protocoles tels que SSH
pour se connecter, déployer et exécuter des scripts sur les ressources.
L'exécution de ces scripts nécessite un accès aux informations d'identification sans interaction humaine.
Ce besoin est déjà résolu en utilisant les concepts de plug-in (module d'extension informatique) configure pour extraire d'un coffre-fort des informations d'identification.
A cet effet, on pourra utilement se reporter à la demande internationale de la demanderesse, publiée sous le numéro W02018/162810, qui propose un procédé
d'accès à une ressource informatique sécurisée par une application informatique.
La ressource informatique sécurisée est dépourvue d'interaction homme-machine pour la saisie d'une information d'authentification. Le procédé proposé
comporte a) une première étape d'initialisation comprenant une création d'une clé
cryptographique transitoire consistant à appliquer un traitement cryptographique à une pluralité
d'informations invariantes dans le temps et à chiffrer avec la clé
cryptographique transitoire ainsi calculée des données d'authentification d'un compte autorisé
à
accéder à un coffre-fort à mots de passe et b) des étapes d'accès automatique par l'application à la ressource informatique sécurisée consistant à créer une clé
cryptographique transitoire consistant à appliquer un traitement cryptographique à la pluralité d'informations invariantes dans le temps, à lire le fichier crédentiel, pour l'anglais credential, créé lors de l'étape d'initialisation et à déchiffrer le fichier crédentiel avec la clé cryptographique transitoire calculée à l'étape précédente puis à
transférer à l'application appelante les données provenant de la ressource informatique.
Il serait possible de mettre en oeuvre le procédé d'accès selon l'art antérieur pour fournir le mot de passe aux outils spécifiques ont été développés, tels que Ansible.
Cependant, la surface d'attaque entre l'extraction des informations d'identification et leur utilisation par l'outil d'accès sous-jacent (principalement le client SSH) offre toujours une grande opportunité pour un attaquant de voler les informations d'identification.
3 PCT/FR2019/053299 Exposé de l'invention Un but de l'invention est notamment de remédier à tout ou partie des inconvénients précités.
Selon un premier aspect de l'invention, il est proposé un procédé de connexion d'une application informatique à une ressource informatique sécurisée par une commande de façade.
L'application informatique est initialement configurée pour établir une connexion à la ressource sécurisée au moyen d'un programme client et de paramètres de configuration.
Le programme client implémente une partie client d'un protocole de communication et est configuré pour recevoir en entrée des données d'authentification.
Selon une particularité, l'application informatique est de type devops, c'est-à-dire une application informatique configurée pour la gestion à distance de ressources.
L'application informatique peut être configurée pour pouvoir configurer la ressource distance sans interaction homme-machine pour la saisie d'une information d'authentification. Selon une possibilité, l'application informatique est dépourvue d'interaction homme-machine pour la saisie d'une information d'authentification.
Par protocole de communication, la présente description vise par exemple le protocole SSH, pour Secure SHell.
Par programme client implémentant une partie client d'un protocole de communication, la présente description vise par exemple le programme client aussi connu sous le terme SSH.
Le procédé de connexion selon le premier aspect de l'invention peut comporter une étape initiale d'interposition d'une commande de façade entre l'application informatique et le programme client, telle que la commande SSHPASS
(https ://sourceforge.net/p/sshpass), qui est utilisé uniquement pour permettre de passer le mot de passe sur la ligne de commande, ce que ne permet pas le client SSH
nativement pour des raisons de sécurité.
Le procédé de connexion selon le premier aspect de l'invention comporte :
- une étape d'exécution de la commande de façade lors d'un appel du programme client par l'application informatique, la commande de façade étant interposée entre l'application informatique et le programme client,
Selon un premier aspect de l'invention, il est proposé un procédé de connexion d'une application informatique à une ressource informatique sécurisée par une commande de façade.
L'application informatique est initialement configurée pour établir une connexion à la ressource sécurisée au moyen d'un programme client et de paramètres de configuration.
Le programme client implémente une partie client d'un protocole de communication et est configuré pour recevoir en entrée des données d'authentification.
Selon une particularité, l'application informatique est de type devops, c'est-à-dire une application informatique configurée pour la gestion à distance de ressources.
L'application informatique peut être configurée pour pouvoir configurer la ressource distance sans interaction homme-machine pour la saisie d'une information d'authentification. Selon une possibilité, l'application informatique est dépourvue d'interaction homme-machine pour la saisie d'une information d'authentification.
Par protocole de communication, la présente description vise par exemple le protocole SSH, pour Secure SHell.
Par programme client implémentant une partie client d'un protocole de communication, la présente description vise par exemple le programme client aussi connu sous le terme SSH.
Le procédé de connexion selon le premier aspect de l'invention peut comporter une étape initiale d'interposition d'une commande de façade entre l'application informatique et le programme client, telle que la commande SSHPASS
(https ://sourceforge.net/p/sshpass), qui est utilisé uniquement pour permettre de passer le mot de passe sur la ligne de commande, ce que ne permet pas le client SSH
nativement pour des raisons de sécurité.
Le procédé de connexion selon le premier aspect de l'invention comporte :
- une étape d'exécution de la commande de façade lors d'un appel du programme client par l'application informatique, la commande de façade étant interposée entre l'application informatique et le programme client,
4 PCT/FR2019/053299 - une étape de récupération, par la commande de façade, desdits paramètres de configuration, - une étape de réception de données d'authentifications pour l'accès à la ressource informatique, par la commande façade, par interrogation d'un coffre-fort, à
partir des paramètres récupérés, - une étape d'établissement d'une connexion entre la commande de façade et la ressource sécurisée par exécution du programme client, dans lequel sont injectés en entrée, d'une part les données d'authentification pour l'accès à la ressource informatique, et d'autre part des paramètres récupérés, - une étape d'établissement d'une connexion directe entre l'application et la ressource informatique sécurisée.
Dans la présente description, un coffre-fort de mot de passe, aussi désigné
par le terme vault en anglais, vise un module logiciel qui conserve un certain nombre de mots de passe dans un emplacement numérique sécurisé. En cryptant le stockage de mot de passe, le coffre-fort de mot de passe offre aux utilisateurs la possibilité
d'utiliser un seul mot de passe principal pour accéder à un certain nombre de mots de passe différents utilisés pour différents sites Web ou services.
L'étape d'établissement d'une connexion entre la commande de façade et la ressource informatique sécurisée peut comporter une modification des paramètres de configuration reçus et une injection des paramètres de configuration modifiés dans le programme client. Les paramètres de configuration récupérés peuvent être modifiés, par exemple dans le but de s'adapter au type de données de connexions extraites du coffre-fort. Par exemple, lorsque l'application informatique est Ansible, cette dernière suppose l'utilisation de clés SSH et les paramètres reçus comportent ainsi des paramètres de la commande SSH en vue d'une utilisation de clé SSH. Pourtant, il peut arriver que les données d'authentification soient de type mot de passe auquel cas il est nécessaire de modifier les paramètres avant leur injection dans la commande SSH.
L'étape d'exécution de la commande de façade peut comporter, ultérieurement à
la fin de la connexion directe entre l'application et la ressource informatique sécurisée, un envoi d'une notification de fin d'utilisation des données d'authentification par la commande de façade à destination du coffre-fort. Aussi, si les données d'authentification ont été extraites du coffre en en demandant l'exclusivité, la
partir des paramètres récupérés, - une étape d'établissement d'une connexion entre la commande de façade et la ressource sécurisée par exécution du programme client, dans lequel sont injectés en entrée, d'une part les données d'authentification pour l'accès à la ressource informatique, et d'autre part des paramètres récupérés, - une étape d'établissement d'une connexion directe entre l'application et la ressource informatique sécurisée.
Dans la présente description, un coffre-fort de mot de passe, aussi désigné
par le terme vault en anglais, vise un module logiciel qui conserve un certain nombre de mots de passe dans un emplacement numérique sécurisé. En cryptant le stockage de mot de passe, le coffre-fort de mot de passe offre aux utilisateurs la possibilité
d'utiliser un seul mot de passe principal pour accéder à un certain nombre de mots de passe différents utilisés pour différents sites Web ou services.
L'étape d'établissement d'une connexion entre la commande de façade et la ressource informatique sécurisée peut comporter une modification des paramètres de configuration reçus et une injection des paramètres de configuration modifiés dans le programme client. Les paramètres de configuration récupérés peuvent être modifiés, par exemple dans le but de s'adapter au type de données de connexions extraites du coffre-fort. Par exemple, lorsque l'application informatique est Ansible, cette dernière suppose l'utilisation de clés SSH et les paramètres reçus comportent ainsi des paramètres de la commande SSH en vue d'une utilisation de clé SSH. Pourtant, il peut arriver que les données d'authentification soient de type mot de passe auquel cas il est nécessaire de modifier les paramètres avant leur injection dans la commande SSH.
L'étape d'exécution de la commande de façade peut comporter, ultérieurement à
la fin de la connexion directe entre l'application et la ressource informatique sécurisée, un envoi d'une notification de fin d'utilisation des données d'authentification par la commande de façade à destination du coffre-fort. Aussi, si les données d'authentification ont été extraites du coffre en en demandant l'exclusivité, la
5 PCT/FR2019/053299 notification de la fin de l'utilisation desdites données d'authentification met fin à
l'exclusivité de leurs utilisations, permettant, si nécessaire la rotation de celles-ci.
A cet effet, la commande de façade peut comporter une étape de modification par le coffre-fort des données d'authentification ultérieurement à la réception de la notification de fin d'utilisation.
En outre, le processus de façade peut comporter une étape de réception par le coffre-fort d'une requête d'exclusivité des données d'authentification antérieurement à l'étape de réception des données d'authentifications ou implicite lors de celle-ci.
L'étape d'interrogation du coffre-fort à partir des paramètres de configurations récupérés peut comporter l'envoi au coffre-fort de données d'authentifications pour l'accès au coffre-fort, les données d'authentifications pour l'accès au coffre-fort étant obtenues par déchiffrement par une clé cryptographique transitoire de données d'authentifications chiffrées pour l'accès au coffre-fort, les données d'authentifications chiffrées pour l'accès au coffre-fort étant enregistrées dans une mémoire permanente associée à la commande de façade.
Le procédé peut comporter une étape préalable d'enregistrement de données d'authentifications chiffrées pour l'accès au coffre-fort dans la mémoire permanente, les données d'authentifications chiffrées résultant du chiffrement de données d'authentification d'un compte autorisé à accéder au coffre-fort avec une clé
cryptographique transitoire, la clé cryptographique transitoire étant déterminée par calcul à partir de l'application d'un traitement cryptographique à une pluralité
d'informations invariantes dans le temps, et représentatives de l'environnement informatique d'exécution de ladite application.
Le procédé peut comporter, ultérieurement à l'étape de réception de données d'authentifications pour l'accès à la ressource informatique sécurisée, et antérieurement à l'étape étape d'établissement d'une connexion entre la commande de façade et la ressource informatique sécurisée, les étapes suivantes :
- calcul d'une empreinte du contexte d'appel du programme client en fonction de données invariantes représentatives de ce contexte, - comparaison de l'empreinte calculée avec une empreinte enregistrée dans une mémoire permanente associée à la commande de façade, et
l'exclusivité de leurs utilisations, permettant, si nécessaire la rotation de celles-ci.
A cet effet, la commande de façade peut comporter une étape de modification par le coffre-fort des données d'authentification ultérieurement à la réception de la notification de fin d'utilisation.
En outre, le processus de façade peut comporter une étape de réception par le coffre-fort d'une requête d'exclusivité des données d'authentification antérieurement à l'étape de réception des données d'authentifications ou implicite lors de celle-ci.
L'étape d'interrogation du coffre-fort à partir des paramètres de configurations récupérés peut comporter l'envoi au coffre-fort de données d'authentifications pour l'accès au coffre-fort, les données d'authentifications pour l'accès au coffre-fort étant obtenues par déchiffrement par une clé cryptographique transitoire de données d'authentifications chiffrées pour l'accès au coffre-fort, les données d'authentifications chiffrées pour l'accès au coffre-fort étant enregistrées dans une mémoire permanente associée à la commande de façade.
Le procédé peut comporter une étape préalable d'enregistrement de données d'authentifications chiffrées pour l'accès au coffre-fort dans la mémoire permanente, les données d'authentifications chiffrées résultant du chiffrement de données d'authentification d'un compte autorisé à accéder au coffre-fort avec une clé
cryptographique transitoire, la clé cryptographique transitoire étant déterminée par calcul à partir de l'application d'un traitement cryptographique à une pluralité
d'informations invariantes dans le temps, et représentatives de l'environnement informatique d'exécution de ladite application.
Le procédé peut comporter, ultérieurement à l'étape de réception de données d'authentifications pour l'accès à la ressource informatique sécurisée, et antérieurement à l'étape étape d'établissement d'une connexion entre la commande de façade et la ressource informatique sécurisée, les étapes suivantes :
- calcul d'une empreinte du contexte d'appel du programme client en fonction de données invariantes représentatives de ce contexte, - comparaison de l'empreinte calculée avec une empreinte enregistrée dans une mémoire permanente associée à la commande de façade, et
6 PCT/FR2019/053299 a) en cas de différence, ne pas mettre en oeuvre étape d'établissement de la connexion entre la commande de façade et la ressource informatique sécurisée, b) en cas de conformité, mettre en oeuvre étape d'établissement de la connexion entre la commande de façade et la ressource informatique sécurisée.
Le procédé peut comporter une étape préalable d'enregistrement d'une empreinte chiffrée dans la mémoire permanente, l'emprunte chiffrée résultant du chiffrement du chiffrement d'une empreinte du contexte d'appel du programme client en fonction de données invariantes représentatives de ce contexte, la clé cryptographique transitoire étant déterminée par calcul à partir de l'application d'un traitement cryptographique à
une pluralité d'informations invariantes dans le temps, et représentatives de l'environnement informatique d'exécution de ladite application.
Bien entendu, les données d'authentification chiffrées ainsi que l'empreinte chiffrée peuvent être enregistrées dans un même fichier, aussi appelé fichier crédentiel.
Selon un mode de réalisationune empreinte de l'arbre d'appel du programme client est déterminée.
Selon une possibilité, la commande de façade est exécutée au sein d'un processus de façade et le programme client peut être exécuté au sein d'un processus de programme client, le processus de programme client étant un processus fils du processus de façade. Le processus client peut par exemple être créé par appel de la primitive fork() par le processus de façade (pB).
Lorsque les données invariantes comportent une empreinte de l'arbre d'appel du processus de programme client, la commande de façade peut comporter, préalablement à la détermination de l'empreinte de l'arbre d'appel, une étape d'attente qui s'achève lorsque le code du processus de programme client présente un code identique au code du programme client.
Selon une variante, l'empreinte et les données extraites du coffre-fort sont enregistrées dans une mémoire permanente locale sous forme cryptée dans un cache local.
Selon un mode de mise en oeuvre particulier, l'empreinte et les données extraites du coffre-fort numérique sont protégées par une technique d'obfuscation.
Le procédé peut comporter une étape préalable d'enregistrement d'une empreinte chiffrée dans la mémoire permanente, l'emprunte chiffrée résultant du chiffrement du chiffrement d'une empreinte du contexte d'appel du programme client en fonction de données invariantes représentatives de ce contexte, la clé cryptographique transitoire étant déterminée par calcul à partir de l'application d'un traitement cryptographique à
une pluralité d'informations invariantes dans le temps, et représentatives de l'environnement informatique d'exécution de ladite application.
Bien entendu, les données d'authentification chiffrées ainsi que l'empreinte chiffrée peuvent être enregistrées dans un même fichier, aussi appelé fichier crédentiel.
Selon un mode de réalisationune empreinte de l'arbre d'appel du programme client est déterminée.
Selon une possibilité, la commande de façade est exécutée au sein d'un processus de façade et le programme client peut être exécuté au sein d'un processus de programme client, le processus de programme client étant un processus fils du processus de façade. Le processus client peut par exemple être créé par appel de la primitive fork() par le processus de façade (pB).
Lorsque les données invariantes comportent une empreinte de l'arbre d'appel du processus de programme client, la commande de façade peut comporter, préalablement à la détermination de l'empreinte de l'arbre d'appel, une étape d'attente qui s'achève lorsque le code du processus de programme client présente un code identique au code du programme client.
Selon une variante, l'empreinte et les données extraites du coffre-fort sont enregistrées dans une mémoire permanente locale sous forme cryptée dans un cache local.
Selon un mode de mise en oeuvre particulier, l'empreinte et les données extraites du coffre-fort numérique sont protégées par une technique d'obfuscation.
7 PCT/FR2019/053299 Selon une première possibilité, la technique d'obfuscation est statique consiste à
supprimer le registre frame pointer ou à remplacer des constantes du programme par des calculs récursifs.
Selon une autre possibilité, la technique d'obfuscation est dynamique consiste à
bloquer l'accès en cas de détection d'une opération de débogage.
Selon un autre aspect de l'invention, il est proposé un produit programme d'ordinateur, téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, et chargeable dans une mémoire interne d'une unité de calcul, comportant des instructions de code de programme qui, lorsqu'elles sont exécutées par l'unité de calcul, mettent en oeuvre les étapes d'un procédé de connexion selon le premier aspect de l'invention, ou l'un ou plusieurs de ses perfectionnements.
Description des figures D'autres avantages et particularités de l'invention apparaîtront à la lecture de la description détaillée de mises en oeuvre et de modes de réalisation nullement limitatifs, au regard de dessins annexés sur lesquels :
= La figure 1 représente une vue schématique fonctionnelle d'un procédé
d'accès à une ressource informatique sécurisée par une application informatique, = La figure 2 représente une vue schématique fonctionnelle d'un processus d'initialisation du procédé décrit à la figure 1, = La figure 3 représente une vue schématique fonctionnelle d'une partie du procédé d'accès à la ressource informatique décrit à la figure 1, = La figure 4 représente une vue schématique d'un enchaînement de traitements dans un procédé d'accès selon l'invention, = La figure 5 représente une vue schématique d'un diagramme d'un arbre d'appel du procédé d'accès selon l'invention, = La figure 6 représente est un pseudo-code d'une boucle d'attente mise en oeuvre par le précédé d'accès selon l'invention.
supprimer le registre frame pointer ou à remplacer des constantes du programme par des calculs récursifs.
Selon une autre possibilité, la technique d'obfuscation est dynamique consiste à
bloquer l'accès en cas de détection d'une opération de débogage.
Selon un autre aspect de l'invention, il est proposé un produit programme d'ordinateur, téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, et chargeable dans une mémoire interne d'une unité de calcul, comportant des instructions de code de programme qui, lorsqu'elles sont exécutées par l'unité de calcul, mettent en oeuvre les étapes d'un procédé de connexion selon le premier aspect de l'invention, ou l'un ou plusieurs de ses perfectionnements.
Description des figures D'autres avantages et particularités de l'invention apparaîtront à la lecture de la description détaillée de mises en oeuvre et de modes de réalisation nullement limitatifs, au regard de dessins annexés sur lesquels :
= La figure 1 représente une vue schématique fonctionnelle d'un procédé
d'accès à une ressource informatique sécurisée par une application informatique, = La figure 2 représente une vue schématique fonctionnelle d'un processus d'initialisation du procédé décrit à la figure 1, = La figure 3 représente une vue schématique fonctionnelle d'une partie du procédé d'accès à la ressource informatique décrit à la figure 1, = La figure 4 représente une vue schématique d'un enchaînement de traitements dans un procédé d'accès selon l'invention, = La figure 5 représente une vue schématique d'un diagramme d'un arbre d'appel du procédé d'accès selon l'invention, = La figure 6 représente est un pseudo-code d'une boucle d'attente mise en oeuvre par le précédé d'accès selon l'invention.
8 PCT/FR2019/053299 Description de mode de réalisation Les modes de réalisation décrits ci-après n'étant nullement limitatifs, on pourra notamment considérer des variantes de l'invention ne comprenant qu'une sélection de caractéristiques décrites, par la suite isolées des autres caractéristiques décrites, si cette sélection de caractéristiques est suffisante pour conférer un avantage technique ou pour différencier l'invention par rapport à l'état de la technique antérieure. Cette sélection comprend au moins une caractéristique, de préférence fonctionnelle sans détails structurels, ou avec seulement une partie des détails structurels si cette partie uniquement est suffisante pour conférer un avantage technique ou pour différencier l'invention par rapport à l'état de la technique antérieure.
Sur les figures, un élément apparaissant sur plusieurs figures conserve la même référence.
Contexte de l'art antérieur Comme illustré par la figure 1, l'objet du procédé selon l'art antérieur est de permettre à une application 12, dépourvue d'interaction homme-machine, d'accéder à une ressource sécurisée 15, telle qu'une base de données.
A cet effet, il est proposé que l'application puisse recevoir d'un coffre-fort 10, enregistré
sur un équipement distant, par exemple un boîtier physique ou virtuel, les données d'authentification à la ressource sécurisée 15.
Schéma de fonctionnement Le procédé d'accès à la ressource informatique sécurisée 15, selon l'art antérieur, se décompose en trois parties :
- un processus d'initialisation, - un processus d'accès lors d'une première exécution, - un processus d'accès pour les exécutions suivantes.
Processus d'initialisation Ce processus, illustré par la figure 3, comporte le calcul d'une clé
cryptographique transitoire par l'exécution d'un code informatique par l'application 12, qui est hébergée sur un serveur 18, par exemple par un serveur d'application WebSphere (nom commercial).
Sur les figures, un élément apparaissant sur plusieurs figures conserve la même référence.
Contexte de l'art antérieur Comme illustré par la figure 1, l'objet du procédé selon l'art antérieur est de permettre à une application 12, dépourvue d'interaction homme-machine, d'accéder à une ressource sécurisée 15, telle qu'une base de données.
A cet effet, il est proposé que l'application puisse recevoir d'un coffre-fort 10, enregistré
sur un équipement distant, par exemple un boîtier physique ou virtuel, les données d'authentification à la ressource sécurisée 15.
Schéma de fonctionnement Le procédé d'accès à la ressource informatique sécurisée 15, selon l'art antérieur, se décompose en trois parties :
- un processus d'initialisation, - un processus d'accès lors d'une première exécution, - un processus d'accès pour les exécutions suivantes.
Processus d'initialisation Ce processus, illustré par la figure 3, comporte le calcul d'une clé
cryptographique transitoire par l'exécution d'un code informatique par l'application 12, qui est hébergée sur un serveur 18, par exemple par un serveur d'application WebSphere (nom commercial).
9 PCT/FR2019/053299 Un administrateur 4 de l'application 12 lance sur le serveur 18 une commande 6 correspondant à l'exécution du procédé objet de l'invention.
Cette exécution commande l'étape d'initialisation.
Cette étape consiste à demander à l'utilisateur de saisir les données d'authentification nécessaire pour l'accès au coffre-fort numérique 10 dans lequel sont enregistrées les données d'authentification à la ressource sécurisée 15 à laquelle l'application 12 doit accéder.
Plus généralement, le coffre-fort numérique 10 comporte plusieurs données d'authentifications, pour l'accès à plusieurs ressources sécurisées.
La commande 6 récupère la ou les données d'authentification et les chiffres en appliquant un algorithme cryptographique.
A cet effet, la commande déclenche le calcul d'une clé cryptographique transitoire utilisant des paramètres correspondant à des données invariantes caractérisant l'environnement d'exécution de la commande. La clé cryptographique transitoire n'est jamais enregistrée sur une mémoire morte. Les données invariantes peuvent comprendre :
- le nom et/ou l'identifiant de l'ordinateur sur lequel est exécutée la commande, - le nom de la commande, - un condensat du code exécutable de cette commande, - l'identifiant du propriétaire de l'exécutable.
Les données d'authentification sont chiffrées avec la clé cryptographique transitoire ainsi calculée puis enregistrées, sous forme chiffrée, sur le serveur 18 dans un fichier crédentiel 5.
Premier accès à la ressource hébergée La figure 3 illustre le processus d'accès par l'application 12 à la ressource hébergée 15.
Le lancement 7 de la commande 6 par l'application 12 en mode de premier accès provoque l'exécution d'une étape de récupération 8 dans le fichier crédentiel 5 des données d'authentification chiffrées (enregistrées lors du processus d'initialisation) permettant d'accéder au coffre-fort 10.
La commande 6 lance ensuite une étape de déchiffrement des données d'authentification mettant en oeuvre l'algorithme cryptographique précité, lequel utilise
Cette exécution commande l'étape d'initialisation.
Cette étape consiste à demander à l'utilisateur de saisir les données d'authentification nécessaire pour l'accès au coffre-fort numérique 10 dans lequel sont enregistrées les données d'authentification à la ressource sécurisée 15 à laquelle l'application 12 doit accéder.
Plus généralement, le coffre-fort numérique 10 comporte plusieurs données d'authentifications, pour l'accès à plusieurs ressources sécurisées.
La commande 6 récupère la ou les données d'authentification et les chiffres en appliquant un algorithme cryptographique.
A cet effet, la commande déclenche le calcul d'une clé cryptographique transitoire utilisant des paramètres correspondant à des données invariantes caractérisant l'environnement d'exécution de la commande. La clé cryptographique transitoire n'est jamais enregistrée sur une mémoire morte. Les données invariantes peuvent comprendre :
- le nom et/ou l'identifiant de l'ordinateur sur lequel est exécutée la commande, - le nom de la commande, - un condensat du code exécutable de cette commande, - l'identifiant du propriétaire de l'exécutable.
Les données d'authentification sont chiffrées avec la clé cryptographique transitoire ainsi calculée puis enregistrées, sous forme chiffrée, sur le serveur 18 dans un fichier crédentiel 5.
Premier accès à la ressource hébergée La figure 3 illustre le processus d'accès par l'application 12 à la ressource hébergée 15.
Le lancement 7 de la commande 6 par l'application 12 en mode de premier accès provoque l'exécution d'une étape de récupération 8 dans le fichier crédentiel 5 des données d'authentification chiffrées (enregistrées lors du processus d'initialisation) permettant d'accéder au coffre-fort 10.
La commande 6 lance ensuite une étape de déchiffrement des données d'authentification mettant en oeuvre l'algorithme cryptographique précité, lequel utilise
10 PCT/FR2019/053299 une clé cryptographique transitoire qui est à nouveau calculée à partir des données invariantes précitées.
La commande lance ensuite une étape 9 d'accès au coffre numérique 10 contenant les données d'authentification 11 à la ressource sécurisée 15 pour recevoir les données d'authentification 11.
L'étape 9 d'accès peut mettre en oeuvre une interface de programmation d'authentification API, pour l'anglais application programming interface, pour s'identifier auprès du coffre-fort 10 et recevoir lesdites données d'authentification 11.
Par ailleurs, la commande 6 effectue le calcul de l'empreinte de l'application 12 ayant lancé la commande 6. L'empreinte calculée est enregistrée dans une mémoire locale sur le serveur 18 sur laquelle est exécutée l'application 12. Le calcul de l'empreinte peut être réalisé antérieurement ou ultérieurement à l'étape 9, mais toujours antérieurement à l'étape 13 qui est maintenant décrite.
La commande 6 chiffre ensuite les données d'authentification 11 et l'empreinte calculée avec la clé cryptographique transitoire utilisée pour le déchiffrement du fichier crédentiel, et enregistre, au cours d'une étape 13, les données d'authentification chiffrées ainsi que l'empreinte chiffrée dans la mémoire locale.
La dernière étape 14 pour la commande 6 consiste à fournir à l'application 12 appelante les données d'authentification 11, pour permettre l'accès 16 à la ressource distante 15. Les données d'authentifications sont fournies en clair à
l'application 12.
Accès ultérieur à la ressource sécurisée Les accès ultérieurs mettent en oeuvre les mêmes étapes, à l'exception de l'étape de détermination de calcul de l'empreinte de l'application 12 (et de l'étape d'enregistrement de l'empreinte calculée).
L'empreinte de l'application 12 étant déjà enregistrée sous forme chiffrée dans la mémoire locale 13 lors du premier accès à la ressource sécurisée, on compare l'empreinte enregistrée avec un nouveau calcul de l'empreinte de l'application appelante.
Aussi, il est nécessaire de déchiffrer l'empreinte chiffrée enregistrée dans la mémoire locale. A cet effet, une clé cryptographique transitoire est à nouveau calculée à partir
La commande lance ensuite une étape 9 d'accès au coffre numérique 10 contenant les données d'authentification 11 à la ressource sécurisée 15 pour recevoir les données d'authentification 11.
L'étape 9 d'accès peut mettre en oeuvre une interface de programmation d'authentification API, pour l'anglais application programming interface, pour s'identifier auprès du coffre-fort 10 et recevoir lesdites données d'authentification 11.
Par ailleurs, la commande 6 effectue le calcul de l'empreinte de l'application 12 ayant lancé la commande 6. L'empreinte calculée est enregistrée dans une mémoire locale sur le serveur 18 sur laquelle est exécutée l'application 12. Le calcul de l'empreinte peut être réalisé antérieurement ou ultérieurement à l'étape 9, mais toujours antérieurement à l'étape 13 qui est maintenant décrite.
La commande 6 chiffre ensuite les données d'authentification 11 et l'empreinte calculée avec la clé cryptographique transitoire utilisée pour le déchiffrement du fichier crédentiel, et enregistre, au cours d'une étape 13, les données d'authentification chiffrées ainsi que l'empreinte chiffrée dans la mémoire locale.
La dernière étape 14 pour la commande 6 consiste à fournir à l'application 12 appelante les données d'authentification 11, pour permettre l'accès 16 à la ressource distante 15. Les données d'authentifications sont fournies en clair à
l'application 12.
Accès ultérieur à la ressource sécurisée Les accès ultérieurs mettent en oeuvre les mêmes étapes, à l'exception de l'étape de détermination de calcul de l'empreinte de l'application 12 (et de l'étape d'enregistrement de l'empreinte calculée).
L'empreinte de l'application 12 étant déjà enregistrée sous forme chiffrée dans la mémoire locale 13 lors du premier accès à la ressource sécurisée, on compare l'empreinte enregistrée avec un nouveau calcul de l'empreinte de l'application appelante.
Aussi, il est nécessaire de déchiffrer l'empreinte chiffrée enregistrée dans la mémoire locale. A cet effet, une clé cryptographique transitoire est à nouveau calculée à partir
11 PCT/FR2019/053299 des données invariantes précitées. L'empreinte chiffrée est déchiffrée par mise en oeuvre de l'algorithme cryptographique précité avec la clé cryptographique transitoire.
Si les deux empreintes diffèrent, le traitement est interrompu et envoie un message d'erreur.
Puis, optionnellement, il est prévu une nouvelle mise en oeuvre de l'étape 9 pour recevoir, du coffre-fort 10, de nouvelles données d'authentification 11, et d'autre part un nouvel enregistrement du chiffrement, avec la clé cryptographique transitoire utilisée mettant en oeuvre l'algorithme cryptographique précité, des nouvelles données d'authentification 11.
Alternativement à ladite option, les données d'authentification 11 sont déterminées par déchiffrement mettant en oeuvre l'algorithme cryptographique précité, lequel utilise la clé cryptographique transitoire calculée.
Enfin, le processus se poursuit par l'étape 14 consistant à fournir les données d'authentification 11, à l'application 12, pour permettre l'accès 16 à la ressource sécurisée 15.
Indisponibilité du coffre-fort Dans le cas où l'accès au coffre-fort 10 n'est pas possible, les données d'authentification chiffrées enregistrées lors du premier accès, ou d'un accès subséquent, à la ressource sécurisée, sont utilisées, après déchiffrement par une étape de déchiffrement mettant en oeuvre l'algorithme cryptographique précité, lequel utilise une clé cryptographique transitoire qui est à nouveau calculée à
partir des données invariantes précitées.
Proposition de procédé d'accès à une ressource informatique Ainsi qu'il a été vu, le procédé selon l'art antérieur permet à une application de mettre en oeuvre un procédé, implémenté sous forme de commande, de récupération des données d'authentification dans un coffre-fort en vue d'un accès à une ressource sécurisée.
En référence à la figure 4, la présente invention a pour objectif de sécuriser encore l'accès d'une application informatique A, par exemple Ansible, à une ressource sécurisée D, en ne fournissant pas les données d'authentification à
l'application.
Si les deux empreintes diffèrent, le traitement est interrompu et envoie un message d'erreur.
Puis, optionnellement, il est prévu une nouvelle mise en oeuvre de l'étape 9 pour recevoir, du coffre-fort 10, de nouvelles données d'authentification 11, et d'autre part un nouvel enregistrement du chiffrement, avec la clé cryptographique transitoire utilisée mettant en oeuvre l'algorithme cryptographique précité, des nouvelles données d'authentification 11.
Alternativement à ladite option, les données d'authentification 11 sont déterminées par déchiffrement mettant en oeuvre l'algorithme cryptographique précité, lequel utilise la clé cryptographique transitoire calculée.
Enfin, le processus se poursuit par l'étape 14 consistant à fournir les données d'authentification 11, à l'application 12, pour permettre l'accès 16 à la ressource sécurisée 15.
Indisponibilité du coffre-fort Dans le cas où l'accès au coffre-fort 10 n'est pas possible, les données d'authentification chiffrées enregistrées lors du premier accès, ou d'un accès subséquent, à la ressource sécurisée, sont utilisées, après déchiffrement par une étape de déchiffrement mettant en oeuvre l'algorithme cryptographique précité, lequel utilise une clé cryptographique transitoire qui est à nouveau calculée à
partir des données invariantes précitées.
Proposition de procédé d'accès à une ressource informatique Ainsi qu'il a été vu, le procédé selon l'art antérieur permet à une application de mettre en oeuvre un procédé, implémenté sous forme de commande, de récupération des données d'authentification dans un coffre-fort en vue d'un accès à une ressource sécurisée.
En référence à la figure 4, la présente invention a pour objectif de sécuriser encore l'accès d'une application informatique A, par exemple Ansible, à une ressource sécurisée D, en ne fournissant pas les données d'authentification à
l'application.
12 PCT/FR2019/053299 A cet effet, il est proposé que l'application mette en oeuvre un procédé, implémenté
sous forme de commande B, créant une connexion à la ressource partagée.
Dans le cas d'une automatisation complète de l'application informatique A, cette-dernière est dépourvue d'interaction homme-machine pour la saisie d'une information d'authentification.
En référence à la figure 1, l'application A est initialement configurée pour établir une connexion à ladite ressource sécurisée D au moyen d'un programme client F (non représenté sur les figures) implémentant une partie client, par un exemple un client SSH, d'un protocole de communication, tel que le protocole SSH, ledit programme client utilisant des données d'authentification.
Bien entendu, les données d'authentifications peuvent être des mots de passe ou des clés privées.
Etape initiale d'interposition d'un processus de façade Selon l'invention, le procédé comporte une étape initiale El d'interposition d'une commande de façade B selon l'invention entre l'application informatique A et le programme client F.
Par commande de façade, la présente description vise une commande exposant une interface similaire à celle du programme client F (ici SSH) utilisée normalement par l'application informatique A afin de s'interposer naturellement entre l'application informatique A et le programme client F.
Plusieurs solutions techniques peuvent être envisagées à cet effet.
Il est par exemple possible, le cas échéant, d'éditer un fichier de configuration de l'application informatique A, pour indiquer un chemin d'appel de la commande de façade B en lieu et place d'un chemin d'appel du programme client F.
Une autre solution peut comporter de modifier la variable d'environnement informatique appelée PATH.
Étapes suivantes d'accès à la ressource informatiques Les étapes suivantes d'accès à la ressource informatiques comportent :
- une étape El d'appel d'exécution de la commande de façade B par l'application A, l'application A exécutant la commande de façade en croyant appeler le programme client F dont la façade est émulée par la commande de façade,
sous forme de commande B, créant une connexion à la ressource partagée.
Dans le cas d'une automatisation complète de l'application informatique A, cette-dernière est dépourvue d'interaction homme-machine pour la saisie d'une information d'authentification.
En référence à la figure 1, l'application A est initialement configurée pour établir une connexion à ladite ressource sécurisée D au moyen d'un programme client F (non représenté sur les figures) implémentant une partie client, par un exemple un client SSH, d'un protocole de communication, tel que le protocole SSH, ledit programme client utilisant des données d'authentification.
Bien entendu, les données d'authentifications peuvent être des mots de passe ou des clés privées.
Etape initiale d'interposition d'un processus de façade Selon l'invention, le procédé comporte une étape initiale El d'interposition d'une commande de façade B selon l'invention entre l'application informatique A et le programme client F.
Par commande de façade, la présente description vise une commande exposant une interface similaire à celle du programme client F (ici SSH) utilisée normalement par l'application informatique A afin de s'interposer naturellement entre l'application informatique A et le programme client F.
Plusieurs solutions techniques peuvent être envisagées à cet effet.
Il est par exemple possible, le cas échéant, d'éditer un fichier de configuration de l'application informatique A, pour indiquer un chemin d'appel de la commande de façade B en lieu et place d'un chemin d'appel du programme client F.
Une autre solution peut comporter de modifier la variable d'environnement informatique appelée PATH.
Étapes suivantes d'accès à la ressource informatiques Les étapes suivantes d'accès à la ressource informatiques comportent :
- une étape El d'appel d'exécution de la commande de façade B par l'application A, l'application A exécutant la commande de façade en croyant appeler le programme client F dont la façade est émulée par la commande de façade,
13 PCT/FR2019/053299 - une étape E2 comportant :
- une étape de réception de paramètres passés par l'application A au programme client F, - une étape de réception de données d'authentifications chiffrées, par la commande de façade, auprès d'un coffre-fort C, - une étape E3 comportant :
= une étape d'établissement d'une connexion directe entre l'application A
et la ressource sécurisée D au moyen du programme client F par injection dans le programme client F des données d'authentification reçues ainsi que des paramètres récupérés et modifiés si nécessaire, par exemple pour s'adapter au type de données de connexions extraites du coffre-fort C, = à la fin de la connexion, si les données de connexion ont été extraites du coffre en en demandant l'exclusivité, la commande de façade B peut notifier le coffre-fort C, au moyen de son API, que les données de connexion ne sont plus utilisées, mettant fin à l'exclusivité de leurs utilisations, permettant, si nécessaire la rotation de celle-ci.
En référence à la figure 5, il est décrit un arbre d'appel d'un processus de façade pB, associé à la commande de façade B selon l'invention.
Un processus pA associé à l'application informatique A peut comporter un ou plusieurs processus enfant, par exemple un processus enfant pN. Ces processus forment un premier niveau Ni.
Le processus enfant pN comporte l'appel d'un processus de façade pB associé à
la commande de façade B. Ce processus forme un deuxième niveau N2.
Le processus de façade pB comporte la création d'un processus de programme client pF associé au programme client F, tel que précédemment décrit. Ce processus forme un troisième niveau N3.
Parmi les données invariantes caractérisant l'environnement d'exécution de la commande, il est proposé d'intégrer une empreinte de l'arbre d'appel du programme client.
- une étape de réception de paramètres passés par l'application A au programme client F, - une étape de réception de données d'authentifications chiffrées, par la commande de façade, auprès d'un coffre-fort C, - une étape E3 comportant :
= une étape d'établissement d'une connexion directe entre l'application A
et la ressource sécurisée D au moyen du programme client F par injection dans le programme client F des données d'authentification reçues ainsi que des paramètres récupérés et modifiés si nécessaire, par exemple pour s'adapter au type de données de connexions extraites du coffre-fort C, = à la fin de la connexion, si les données de connexion ont été extraites du coffre en en demandant l'exclusivité, la commande de façade B peut notifier le coffre-fort C, au moyen de son API, que les données de connexion ne sont plus utilisées, mettant fin à l'exclusivité de leurs utilisations, permettant, si nécessaire la rotation de celle-ci.
En référence à la figure 5, il est décrit un arbre d'appel d'un processus de façade pB, associé à la commande de façade B selon l'invention.
Un processus pA associé à l'application informatique A peut comporter un ou plusieurs processus enfant, par exemple un processus enfant pN. Ces processus forment un premier niveau Ni.
Le processus enfant pN comporte l'appel d'un processus de façade pB associé à
la commande de façade B. Ce processus forme un deuxième niveau N2.
Le processus de façade pB comporte la création d'un processus de programme client pF associé au programme client F, tel que précédemment décrit. Ce processus forme un troisième niveau N3.
Parmi les données invariantes caractérisant l'environnement d'exécution de la commande, il est proposé d'intégrer une empreinte de l'arbre d'appel du programme client.
14 PCT/FR2019/053299 Attente de la terminaison du démarrage du processus de programme client Les systèmes de type Unix, comme Linux, utilisent une séquence particulière pour démarrer un sous-processus.
Le processus parent commence par se dupliquer par une opération initiée à
l'aide d'une primitive appelée fork.
Lors de la création d'un processus-fils par la primitive fork, le processus-fils hérite du code du processus père.
Aussi, le sous-processus, dit processus fils, doit effectuer un appel à une primitive pour remplacer le code qu'il a hérité du processus père par celui de la commande désirée.
Plusieurs primitives peuvent être appelées, telles que les primitives execl, execv, execle, execve, execlp, et execvp.
Tant que la fonction de remplacement de code n'est pas terminée, le sous-processus enfant est vu comme exécutant le code du processus parent.
Aussi, l'utilisation d'une emprunte de l'application appelante qui comporterait des données invariantes comportant l'arbre d'appel, préalablement à un déchiffrement des données d'authentification chiffrées mettant en oeuvre l'arbre d'appel, ne pourrait pas se faire car ce n'est pas le bon code qui serait pris en compte.
Aussi, il est proposé, comme représenté par le pseudo-code de la figure 6, de ne déterminer l'empreinte de l'application appelante, qui contient des données invariantes telles que l'arbre d'appel, qu'après avoir attendu la terminaison du processus de démarrage de la commande appelée à l'étape E4 d'établissement d'une connexion entre le processus de façade et la ressource sécurisée au moyen du programme client F.
Plus précisément, l'attente de la terminaison du processus de démarrage de la commande il est attendu que le code du processus de commande client pF
corresponde au code de la commande client F.
Bien sûr, l'invention n'est pas limitée aux exemples qui viennent d'être décrits et de nombreux aménagements peuvent être apportés à ces exemples sans sortir du cadre de l'invention. De plus, les différentes caractéristiques, formes, variantes et modes de réalisation de l'invention peuvent être associés les uns avec les autres selon diverses combinaisons dans la mesure où ils ne sont pas incompatibles ou exclusifs les uns des autres.
Le processus parent commence par se dupliquer par une opération initiée à
l'aide d'une primitive appelée fork.
Lors de la création d'un processus-fils par la primitive fork, le processus-fils hérite du code du processus père.
Aussi, le sous-processus, dit processus fils, doit effectuer un appel à une primitive pour remplacer le code qu'il a hérité du processus père par celui de la commande désirée.
Plusieurs primitives peuvent être appelées, telles que les primitives execl, execv, execle, execve, execlp, et execvp.
Tant que la fonction de remplacement de code n'est pas terminée, le sous-processus enfant est vu comme exécutant le code du processus parent.
Aussi, l'utilisation d'une emprunte de l'application appelante qui comporterait des données invariantes comportant l'arbre d'appel, préalablement à un déchiffrement des données d'authentification chiffrées mettant en oeuvre l'arbre d'appel, ne pourrait pas se faire car ce n'est pas le bon code qui serait pris en compte.
Aussi, il est proposé, comme représenté par le pseudo-code de la figure 6, de ne déterminer l'empreinte de l'application appelante, qui contient des données invariantes telles que l'arbre d'appel, qu'après avoir attendu la terminaison du processus de démarrage de la commande appelée à l'étape E4 d'établissement d'une connexion entre le processus de façade et la ressource sécurisée au moyen du programme client F.
Plus précisément, l'attente de la terminaison du processus de démarrage de la commande il est attendu que le code du processus de commande client pF
corresponde au code de la commande client F.
Bien sûr, l'invention n'est pas limitée aux exemples qui viennent d'être décrits et de nombreux aménagements peuvent être apportés à ces exemples sans sortir du cadre de l'invention. De plus, les différentes caractéristiques, formes, variantes et modes de réalisation de l'invention peuvent être associés les uns avec les autres selon diverses combinaisons dans la mesure où ils ne sont pas incompatibles ou exclusifs les uns des autres.
Claims (13)
1) Procédé de connexion d'une application informatique (A) à une ressource informatique sécurisée (D) par une commande de façade (B), ladite application informatique étant configurée pour configurer la ressource informatique sécurisée sans interaction homme-machine, ladite application informatique étant initialement configurée pour établir une connexion à ladite ressource sécurisée au moyen d'un programme client (F) et de paramètres de configurations, ledit programme client implémentant une partie client d'un protocole de communication et étant configure pour recevoir en entrée des données d'authentification, ledit procédé
comportant les étapes suivantes :
- une étape (El ) d'exécution de la commande de façade lors d'un appel dudit programme client par ladite application informatique, ladite commande de façade étant interposée entre l'application informatique et le programme client, - une étape de récupération, par ladite commande de façade, desdits paramètres de configuration, - une étape (E3) de réception, par la commande de façade, de données d'authentifications pour l'accès à la ressource informatique, par interrogation (E2) d'un coffre-fort (C), à partir des paramètres de configurations récupérés, - une étape (E4) d'établissement d'une connexion entre la commande de façade et la ressource sécurisée par exécution dudit programme client, dans lequel sont injectés en entrée d'une part les données d'authentification pour l'accès à
la ressource informatique, et d'autre part les paramètres de configuration récupérés, - une étape (E5, E6) d'établissement d'une connexion directe entre ladite application informatique et ladite ressource informatique sécurisée.
comportant les étapes suivantes :
- une étape (El ) d'exécution de la commande de façade lors d'un appel dudit programme client par ladite application informatique, ladite commande de façade étant interposée entre l'application informatique et le programme client, - une étape de récupération, par ladite commande de façade, desdits paramètres de configuration, - une étape (E3) de réception, par la commande de façade, de données d'authentifications pour l'accès à la ressource informatique, par interrogation (E2) d'un coffre-fort (C), à partir des paramètres de configurations récupérés, - une étape (E4) d'établissement d'une connexion entre la commande de façade et la ressource sécurisée par exécution dudit programme client, dans lequel sont injectés en entrée d'une part les données d'authentification pour l'accès à
la ressource informatique, et d'autre part les paramètres de configuration récupérés, - une étape (E5, E6) d'établissement d'une connexion directe entre ladite application informatique et ladite ressource informatique sécurisée.
2) Procédé d'accès selon la revendication précédente, comportant une étape initiale d'interposition d'une commande de façade (B) entre l'application informatique (A) et le programme client (F).
3) Procédé de connexion selon l'une quelconque des revendications précédentes, dans lequel les paramètres de configuration reçus sont modifiées puis injectées dans ledit programme client (F).
4) Procédé de connexion selon l'une quelconque des revendications précédentes, comportant en outre une étape ultérieure à la terminaison de la connexion directe entre l'application informatique (A) et la ressource informatique sécurisée (D) dans laquelle une notification d'utilisation des données d'authentification est envoyée par la commande de façade (B) à destination du coffre-fort (C).
5) Procédé de connexion selon la revendication précédente, comportant en outre une étape de modification par le coffre-fort (C) des données d'authentification ultérieurement à la réception de la notification d'utilisation.
6) Procédé de connexion selon la revendication précédente, comportant en outre une étape (E2) de réception par le coffre-fort (C) d'une requête d'exclusivité des données d'authentification antérieurement à l'étape (E3) de récupération des données d'authentifications chiffrées.
7) Procédé de connexion selon l'une quelconque des revendications précédentes, dans lequel l'étape d'interrogation (E2) du coffre-fort (C) à partir des paramètres de configurations récupérés comporte l'envoi au coffre-fort de données d'authentifications pour l'accès au coffre-fort, les données d'authentifications pour l'accès au coffre-fort étant obtenues par déchiffrement par une clé
cryptographique transitoire de données d'authentifications chiffrées pour l'accès au coffre-fort, les données d'authentifications chiffrées pour l'accès au coffre-fort étant enregistrées dans une mémoire permanente associée à la commande de façade (B).
cryptographique transitoire de données d'authentifications chiffrées pour l'accès au coffre-fort, les données d'authentifications chiffrées pour l'accès au coffre-fort étant enregistrées dans une mémoire permanente associée à la commande de façade (B).
8) Procédé de connexion selon la revendication précédente, comprenant une étape préalable d'enregistrement de données d'authentifications chiffrées pour l'accès au coffre-fort (C) dans la mémoire permanente, lesdites données d'authentifications chiffrées résultant du chiffrement de données d'authentification d'un compte autorisé à accéder au coffre-fort avec une clé cryptographique transitoire, la clé
cryptographique transitoire étant déterminée par calcul à partir de l'application d'un traitement cryptographique à une pluralité d'informations invariantes dans le temps, et représentatives de l'environnement informatique d'exécution de ladite application.
cryptographique transitoire étant déterminée par calcul à partir de l'application d'un traitement cryptographique à une pluralité d'informations invariantes dans le temps, et représentatives de l'environnement informatique d'exécution de ladite application.
9) Procédé de connexion selon l'une quelconque des revendications précédentes comportant en outre, ultérieurement à l'étape (E3) de réception de données d'authentifications pour l'accès à la ressource informatique sécurisée (D), et antérieurement à l'étape étape (E4) d'établissement d'une connexion entre la commande de façade (B) et la ressource informatique sécurisée, les étapes suivantes :
- calcul d'une empreinte du contexte d'appel du programme client (F) en fonction de données invariantes représentatives de ce contexte, - comparaison de l'empreinte calculée avec une empreinte enregistrée dans une mémoire permanente associée à la commande de façade, et i) en cas de différence, ne pas mettre en uvre étape (E4) d'établissement de la connexion entre la commande de façade et la ressource informatique sécurisée, ii) en cas de conformité, mettre en uvre étape (E4) d'établissement de la connexion entre la commande de façade et la ressource informatique sécurisée.
- calcul d'une empreinte du contexte d'appel du programme client (F) en fonction de données invariantes représentatives de ce contexte, - comparaison de l'empreinte calculée avec une empreinte enregistrée dans une mémoire permanente associée à la commande de façade, et i) en cas de différence, ne pas mettre en uvre étape (E4) d'établissement de la connexion entre la commande de façade et la ressource informatique sécurisée, ii) en cas de conformité, mettre en uvre étape (E4) d'établissement de la connexion entre la commande de façade et la ressource informatique sécurisée.
10) Procédé de connexion selon la revendication précédente, comportant une étape préalable d'enregistrement d'une empreinte chiffrée dans la mémoire permanente, ladite empreinte chiffrée résultant du chiffrement du chiffrement d'une empreinte du contexte d'appel du programme client (F) en fonction de données invariantes représentatives de ce contexte, la clé cryptographique transitoire étant déterminée par calcul à partir de l'application d'un traitement cryptographique à une pluralité
d'informations invariantes dans le temps, et représentatives de l'environnement informatique d'exécution de ladite application.
d'informations invariantes dans le temps, et représentatives de l'environnement informatique d'exécution de ladite application.
11)Procédé de connexion selon l'une quelconque des revendications 7 à 10, dans lequel une empreinte de l'arbre d'appel du programme client est déterminée.
12)Procédé de connexion selon la revendication précédente, dans lequel la commande de façade (B) est exécutée au sein d'un processus de façade (pB) et le programme client est exécuté au sein d'un processus de programme client (pF), le processus de programme client étant un processus fils du processus de façade (pB), la commande de façade comportant en outre, préalablement à l'étape de détermination de l'empreinte de l'arbre d'appel, une étape d'attente qui s'achève lorsque le code du processus de programme client présente un code identique au code du programme client.
13)Produit programme d'ordinateur, téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, et chargeable dans une mémoire interne d'une unité de calcul, caractérisé en ce qu'il comporte des instructions de code de programme qui, lorsqu'elles sont exécutées par l'unité de calcul, mettent en uvre les étapes d'un procédé de connexion selon l'une quelconque des revendications précédentes.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1900092A FR3091601B1 (fr) | 2019-01-04 | 2019-01-04 | Procédé de connexion d’une application informatique à une ressource informatique sécurisée |
FR1900092 | 2019-01-04 | ||
PCT/FR2019/053299 WO2020141277A1 (fr) | 2019-01-04 | 2019-12-26 | Procédé de connexion d'une application informatique à une ressource informatique sécurisée |
Publications (1)
Publication Number | Publication Date |
---|---|
CA3121595A1 true CA3121595A1 (fr) | 2020-07-09 |
Family
ID=67107629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA3121595A Pending CA3121595A1 (fr) | 2019-01-04 | 2019-12-26 | Procede de connexion d'une application informatique a une ressource informatique securisee |
Country Status (5)
Country | Link |
---|---|
US (1) | US12047364B2 (fr) |
EP (1) | EP3906635A1 (fr) |
CA (1) | CA3121595A1 (fr) |
FR (1) | FR3091601B1 (fr) |
WO (1) | WO2020141277A1 (fr) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11729163B2 (en) * | 2021-03-19 | 2023-08-15 | The Toronto-Dominion Bank | System and method for establishing secure communication between applications |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10636084B2 (en) * | 1996-10-31 | 2020-04-28 | Citicorp Credit Services, Inc. (Usa) | Methods and systems for implementing on-line financial institution services via a single platform |
US6499036B1 (en) * | 1998-08-12 | 2002-12-24 | Bank Of America Corporation | Method and apparatus for data item movement between disparate sources and hierarchical, object-oriented representation |
US7000235B2 (en) * | 2001-10-30 | 2006-02-14 | Sun Microsystems, Inc. | Method and apparatus for managing data services in a distributed computer system |
US7043738B2 (en) * | 2002-03-05 | 2006-05-09 | Sun Microsystems, Inc. | Method and apparatus for managing a data imaging system using CIM providers in a distributed computer system |
US7167862B2 (en) * | 2003-03-10 | 2007-01-23 | Ward Mullins | Session bean implementation of a system, method and software for creating or maintaining distributed transparent persistence of complex data objects and their data relationships |
US10049335B1 (en) * | 2009-10-06 | 2018-08-14 | EMC IP Holding Company LLC | Infrastructure correlation engine and related methods |
US8806481B2 (en) * | 2010-08-31 | 2014-08-12 | Hewlett-Packard Development Company, L.P. | Providing temporary exclusive hardware access to virtual machine while performing user authentication |
US9390255B2 (en) * | 2011-09-29 | 2016-07-12 | Oracle International Corporation | Privileged account manager, dynamic policy engine |
US20140129457A1 (en) * | 2012-11-02 | 2014-05-08 | Stroz Friedberg, LLC | An interactive organizational decision-making and compliance facilitation portal |
FR3063822B1 (fr) | 2017-03-10 | 2019-03-15 | Wallix | Procede d’acces a une ressource informatique securisee par une application informatique. |
US11551195B2 (en) * | 2017-07-18 | 2023-01-10 | Tata Consultancy Services Limited | Systems and methods for providing services to smart devices connected in an IoT platform |
US10812581B2 (en) * | 2018-10-12 | 2020-10-20 | Bank Of America Corporation | Heterogeneous distributed ledger data curator |
-
2019
- 2019-01-04 FR FR1900092A patent/FR3091601B1/fr active Active
- 2019-12-26 EP EP19848991.6A patent/EP3906635A1/fr active Pending
- 2019-12-26 CA CA3121595A patent/CA3121595A1/fr active Pending
- 2019-12-26 US US17/418,717 patent/US12047364B2/en active Active
- 2019-12-26 WO PCT/FR2019/053299 patent/WO2020141277A1/fr unknown
Also Published As
Publication number | Publication date |
---|---|
US12047364B2 (en) | 2024-07-23 |
FR3091601B1 (fr) | 2023-12-15 |
FR3091601A1 (fr) | 2020-07-10 |
EP3906635A1 (fr) | 2021-11-10 |
WO2020141277A1 (fr) | 2020-07-09 |
US20220078176A1 (en) | 2022-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070254631A1 (en) | Secure Multi-Entity Access to Resources on Mobile Telephones | |
EP3732818B1 (fr) | Procédé et système d'activation cryptographique d'une pluralité d'équipements | |
JP7554380B2 (ja) | 異なるネットワークにわたって資産を転送するためのセキュアかつ信頼できるブリッジ | |
US11818122B2 (en) | Secure authentication of a user | |
FR3048530B1 (fr) | Systeme ouvert et securise de signature electronique et procede associe | |
EP2614458A2 (fr) | Procede d'authentification pour l'acces a un site web | |
CN113609514B (zh) | 一种云硬盘加解密方法、装置、系统及可读存储介质 | |
FR3013541A1 (fr) | Procede et dispositif pour la connexion a un service distant | |
CA3121595A1 (fr) | Procede de connexion d'une application informatique a une ressource informatique securisee | |
FR2974207A1 (fr) | Procede et systeme de securisation d'un logiciel | |
CH716295A2 (fr) | Procédé de signature multiple d'une transaction destinée à une blockchain, au moyen de clés cryptographiques distribuées parmi les noeuds d'un réseau pair-à-pair. | |
EP4078922B1 (fr) | Procédé d'obtention d'une commande relative à un profil d'accès réseau d'un module de sécurité de type euicc | |
CA3184096A1 (fr) | Coffre-fort d'informations personnelles | |
EP3593270B1 (fr) | Procédé d'accès a une ressource informatique sécurisée par une application informatique | |
EP2529330B1 (fr) | Procédé de fourniture d'un code dynamique par l'intermédiaire d'un téléphone | |
EP2912598A1 (fr) | Procédé de téléchargement d'au moins un composant logiciel dans un appareil informatique, produit programme d'ordinateur, appareil informatique et système informatique associés | |
EP3899765B1 (fr) | Réinitialisation d'un secret applicatif au moyen du terminal | |
FR3020888A1 (fr) | Chiffrement d'une cle de protection de secrets protegeant au moins un element sensible d'une application | |
EP3979109A1 (fr) | Procédé et système d'authentification d'un utilisateur sur un appareil utilisateur | |
EP3825882A1 (fr) | Procede et systeme pour le provisionnement ou remplacement securise d'un secret dans au moins un dispositif de communication portable | |
CH716296A2 (fr) | Procédé de signature multiple d'une transaction destinée à une blockchain, sous condition de géolocalisation, au moyen de clés cryptographiques distribuées parmi les noeuds d'un réseau pair-à-pair. | |
CH716292A2 (fr) | Procédé de signature décentralisée, sous contrôle biométrique et sous condition de géolocalisation, d'une transaction destinée à une blockchain. | |
FR3090154A1 (fr) | Sécurisation des données au repos en utilisant la transportabilité des données chiffrées agnostiques de service de fournisseur de réseau de serveurs informatique | |
CH716299A2 (fr) | Procédé de signature d'une transaction destinée à une blockchain, au moyen d'une clé cryptographique distribuée parmi les noeuds d'un réseau pair-à-pair. | |
CH716301A2 (fr) | Procédé de signature d'une transaction destinée à une blockchain déployée sur un réseau pair-à-pair, au moyen d'une clé cryptographique distribuée parmi les noeuds d'un autre réseau pair-à-pair. |