PROCEDE D'ETABLISSEMENT ET DE DEROULEMENT D'UNE LIAISON INFORMATIQUE METHOD FOR ESTABLISHING AND CONDUCTING A COMPUTER LINK
Il est fréquent d'avoir de multiples installations informatiques (appelées par la suite « sites clients ») physiquement dispersées, pouvant être de types et natures variées et appartenir à des entités aαrninistratives différentes, et qui doivent être accédées à partir d'un ou quelques sites informatiques centraux. Ceci se produit en particulier lors de l'installation ou de la mise à jour de logiciels, de transfert de fichiers, de correction de dysfonctionnements, et plus généralement lors de toutes opérations d'administration, maintenance, exploitation, prise de main à distance, ou autres sur les sites clients. Une opération de ce type est appelée par la suite téléintervention. Habituellement la compétence informatique est faible sur les sites clients, au moins dans le domaine concerné par l'intervention, et intervenir à distance permet en particulier de mutualiser la compétence informatique rare et chère d'opérateurs qualifiés, diminuer les coûts et/ou procurer un meilleur service.It is common to have multiple IT facilities (hereinafter called "client sites") physically dispersed, which may be of various types and natures and belong to different administrative entities, and which must be accessed from one or a few central IT sites. This occurs in particular during the installation or updating of software, file transfer, correction of malfunctions, and more generally during all administration operations, maintenance, operation, remote control, or others on customer sites. An operation of this type is hereinafter called remote intervention. Usually IT competence is weak on client sites, at least in the field concerned by the intervention, and intervening remotely in particular makes it possible to pool the rare and expensive IT competence of qualified operators, reduce costs and / or provide a best service.
On rencontre en particulier cette situation dans le cas de SSII et vendeurs infomiatiques devant fournir support et assistance à un parc installé. Les accès au site client doivent être sécurisés, afin en particulier d'éviter les intrusions, offiir un débit de données adapté aux opérations à effectuer pour notamment fournir un bon confort d'utilisation, être fiables et disponibles (intervention possible à toute heure, caractère d'urgence...), ne pas nécessiter d'intervention du personnel des sites clients, être d'une installation et d'une mise en œuvre facile et souple y compris dans des environnements informatiques hétérogènes, et être économiques, particulièrement lors de la mise en œuvre et l'exploitation, spécialement dans le cas d'interventions longues ou sur des sites géographiquement éloignés.This situation is encountered in particular in the case of IT services companies and IT vendors who have to provide support and assistance to an installed base. Access to the customer site must be secure, in particular to avoid intrusions, provide a data rate adapted to the operations to be carried out, in particular to provide good comfort of use, be reliable and available (intervention possible at any time, character ), do not require the intervention of staff from client sites, be easy to install and implement, including in heterogeneous IT environments, and be economical, particularly when implementation and operation, especially in the case of long interventions or on geographically distant sites.
Il n'existe pas actuellement de procédé d'accès satisfaisant pleinement ces contraintes. A titre d'exemple, un réseau privé d'entreprise n'est pas utilisable pour des entreprises multiples; les réseaux virtuels privés proposés par des compagnies de téléconamtmication. sont chers; laisser sur chaque site client une machine disposant d'un accès entrant ouvert depuis l'Internet est très dangereux sans une excellente compétence informatique locale pour le protéger et éviter les intrusions, etc.There is currently no access method fully satisfying these constraints. For example, a private corporate network cannot be used for multiple businesses; private virtual networks offered by telecommunication companies. are expensive; leaving a machine at each client site with open incoming access from the Internet is very dangerous without excellent local IT skills to protect it and avoid intrusion, etc.
En pratique, la majorité des systèmes de téléintervention utilisent le réseau téléphonique standard, avec des modems, et parfois un encryptage, des mots de passe et/ou un rappel automatique. Cette solution présente de nombreux désavantages, en particulier un débit de données limité et non adaptable, une liaison peu fiable tant lors de l'établissement que dans la durée, un temps d'établissement important, une sécurité aléatoire et un coût important. Le procédé objet de l'invention permet de réaliser de tels accès sans les inconvénients indiqués. Tl permet de raccorder d'une manière raisonnablement sécurisée les sites clients à l'Tnternet tout en permettant aux sites centraux d'y accéder.
Pour cela, le site client comporte au moins une machine (le client) disposant d'un accès au moins sortant (direct ou via pare-feu, etc.) et le site central comporte une machine (le serveur) disposant d'un accès au moins entrant sur l'Internet ou un réseau ou environnement utilisant le protocole TCP/TPOn appelle unité d'exécution un objet exécutant une suite d'instructions sur une machine; cela correspond, selon les environnements, à un processus, une tâche, un thread, un démon, etc. À l'initiative du client (au démarrage par exemple), une unité d'exécution cliente établit une connexion selon les protocoles de l'Internet vers une unité d'exécution située sur le serveur, crée un canal de communication bidirectionnel (appelé par la suite socket) entre les deux, et envoie une flux de données simulant une question. Les deux unités d'exécution peuvent être physiquement sur le même site ou la même machine. Ainsi, vu du réseau et des systèmes de sécurité du site client, on a affaire à une communication sortante habituelle. Tant que le site central ne désire pas se connecter, le serveur ne répond pas, ou peut aussi renvoyer périodiquement ou non des données de remplissage pour garder le socket ouvert. Si, pour une raison quelconque, par exemple à cause d'une trop grande période d'inactivité, le socket se ferme, le client peut en recréer un nouveau de manière identique ; dans ce cas, à réception de cet appel entrant du même client, le serveur peut fermer l'ancien, et considérer le nouveau comme étant le socket actif. Quand le site central désire se connecter, le serveur répond en envoyant la requête désirée sur le socket actif, en l'habillant pour qu'elle devienne, vu de l'extérieur, la charge utile de la réponse à la requête du site client. Le client répond à cette question par une réponse habillée pour être la charge utile d'une question au sens du protocole utilisé. La suite du dialogue s'effectue soit par l'intermédiaire dudit socket resté ouvert, soit grâce à de nouveaux sockets crées de manière similaire par le client, soit par un mélange de ces méthodes. Suivant les modes de réalisation et les protocoles utilisés, certaines questions, tant réelles que au sens du protocole utilisé peuvent comporter aucune ou plusieurs réponses, et certaines questions et réponses au sens du protocole utilisé peuvent ne pas être utilisées et ne servir que de remplissage par exemple.In practice, the majority of remote control systems use the standard telephone network, with modems, and sometimes encryption, passwords and / or automatic call back. This solution has many disadvantages, in particular a limited and non-adaptable data throughput, an unreliable link both during establishment and in duration, significant establishment time, random security and significant cost. The method which is the subject of the invention makes it possible to carry out such accesses without the drawbacks indicated. Tl allows client sites to be connected to the Internet in a reasonably secure manner while allowing central sites to access them. For this, the client site has at least one machine (the client) with at least outgoing access (direct or via firewall, etc.) and the central site has a machine (the server) with access at least entering the Internet or a network or environment using the TCP / TP protocol An object executing a sequence of instructions on a machine is called the execution unit; depending on the environment, this corresponds to a process, a task, a thread, a daemon, etc. At the initiative of the client (at startup for example), a client thread establishes a connection according to Internet protocols to a thread located on the server, creates a two-way communication channel (called by the suite socket) between the two, and sends a data stream simulating a question. The two execution units can be physically on the same site or the same machine. Thus, seen from the network and security systems of the customer site, we are dealing with a usual outgoing communication. As long as the central site does not want to connect, the server does not respond, or can also periodically send back filling data to keep the socket open. If, for some reason, for example due to too long a period of inactivity, the socket closes, the client can recreate a new one in the same way; in this case, on receipt of this incoming call from the same client, the server can close the old one, and consider the new one to be the active socket. When the central site wishes to connect, the server responds by sending the desired request to the active socket, dressing it so that it becomes, seen from the outside, the payload of the response to the request from the client site. The client answers this question with a response dressed to be the payload of a question within the meaning of the protocol used. The rest of the dialogue is carried out either by means of said socket which remains open, or thanks to new sockets created in a similar manner by the client, or by a mixture of these methods. Depending on the embodiments and the protocols used, certain questions, both real and within the meaning of the protocol used, may contain no or more answers, and certain questions and answers within the meaning of the protocol used may not be used and may only be used for filling in example.
On réalise ainsi une connexion créée physiquement à l'initiative du site client, mais logiquement à l'initiative du site central, dans laquelle transite des questions au sens du protocole utilisé émises par le client, dont au moins certaines comportent dans leur charge utile des réponses à des questions logées dans la charge utile de réponses au sens du protocole utilisé émises par le serveur.This creates a connection created physically on the initiative of the customer site, but logically on the initiative of the central site, in which questions in the sense of the protocol used are sent by the customer, at least some of which include in their payload responses to questions housed in the response payload within the meaning of the protocol used issued by the server.
La première question au sens du protocole utilisé émise par le client peut comporter dans sa charge utile des informations sur l'état de l'unité d'exécution cliente et son environnement. Par ailleurs, le client peut initialiser autant de liaisons que nécessaire à des moments judicieusement choisis (par exemple et à titre non limitatif lors de la première réception de données en provenance du serveur) de sorte qu'il y ait toujours une liaison disponible.
Procéder ainsi permet notamment au site client d'interdire (via un pare-feu par exemple) toute connexion entrante sans impacter le fonctionnement du procédé, ce qui est un avantage de sécurité très important car on supprime ainsi la grande majorité des possibilités d'intrusion. Cela évite aussi toute les contraintes d'adressage, routage et résolution de noms liés à la réalisation d'une connexion entrante.The first question within the meaning of the protocol used sent by the client may include in its payload information on the state of the client execution unit and its environment. Furthermore, the client can initialize as many connections as necessary at judiciously chosen times (for example and without limitation during the first reception of data from the server) so that there is always a connection available. Doing so allows the customer site to prohibit (via a firewall for example) any incoming connection without impacting the operation of the process, which is a very important security advantage because it eliminates the vast majority of intrusion possibilities . This also avoids all the constraints of addressing, routing and resolution of names linked to the creation of an incoming connection.
Le site central accepte les communications entrantes, mais cela ne pose pas de problèmes de sécurité cruciaux car, en général le site central dispose de compétences informatiques pour effectuer un paramétrage correct, et de plus, il est beaucoup plus facile de sécuriser un seul site qu'une multitude. Ce procédé est très économique car, contrairement au téléphone par exemple, les connexionsThe central site accepts incoming communications, but this does not pose any crucial security problems because, in general, the central site has computer skills to make a correct configuration, and moreover, it is much easier to secure a single site than 'many. This process is very economical because, unlike the telephone for example, connections
TCP/IP ne sont habituellement tarifées ni à la durée, ni au volume, ni à la distance, ni au nombre de liaisons actives mais selon la bande passante disponible de la liaison. Lorsque aucune opération de téléintervention n'est en cours, la totalité de cette bande passante est disponible pour d'autres usages (typiquement courrier électronique et accès à la toile mondiale); en cas d'activité, la bande passante est facilement partagée sans opération particulière à effectuer. De plus, très fréquemment, une liaison Internet permanente existe déjà sur le site client, et peut être utilisée par le système de téléintervention, supprimant ainsi tous investissements et dépenses télécoms supplémentaires liées à la téléintervention. Ce procédé procure un bien meilleur confort d'utilisation que le téléphone, car, contrairement à ce dernier, les liaisons Internet sont en général permanentes, et de plus disponibles en de multiples classes de débit, permettant ainsi un ajustement souple et facile aux besoins. De plus, ces types de liaisons sont identiques au niveau mondial sans variantes ni licences spécifiques locales, contrairement aux réseaux de type téléphone ou RNIS. 11 est possible d'utiliser tout protocole sur le socket, donc en particulier des protocoles standards comme par exemple HTTP, HTTPS ou SOAP. Procéder ainsi permet en particulier au client grâce à l'utilisation de syntaxes, protocoles et/ou adresses judicieuses de générer des liaisons similaires à celles effectuées habituellement par le site client, et donc difficilement discernables de celles-ci, tout du moins par les dispositifs de sécurité locaux. Par exemple, il est possible de simuler le comportement d'un utilisateur ordinaire connecté à l'Internet via son poste de travail, type de connexion quasiment toujours autorisé par les dispositifs de protection (pare feux par exemple) et le réseau informatique du site client. Ainsi, aucune modification desdits dispositifs n'est nécessaire lors de l'installation sur le site client.TCP / IP are usually not priced for duration, volume, distance, or the number of active links, but according to the available bandwidth of the link. When no remote control operation is in progress, all of this bandwidth is available for other uses (typically e-mail and access to the world wide web); in case of activity, the bandwidth is easily shared without any particular operation to be carried out. In addition, very frequently, a permanent Internet link already exists on the customer site, and can be used by the remote control system, thus eliminating any additional telecom investments and expenses linked to remote control. This process provides much better user comfort than the telephone, because, unlike the latter, Internet connections are generally permanent, and moreover available in multiple speed classes, thus allowing flexible and easy adjustment to requirements. In addition, these types of links are identical worldwide without specific variants or local licenses, unlike telephone or ISDN networks. It is possible to use any protocol on the socket, therefore in particular standard protocols such as for example HTTP, HTTPS or SOAP. Doing so allows the customer in particular through the use of syntaxes, protocols and / or judicious addresses to generate links similar to those usually made by the customer site, and therefore difficult to discern from them, at least by the devices local security. For example, it is possible to simulate the behavior of an ordinary user connected to the Internet via his workstation, a type of connection almost always authorized by the protection devices (firewalls for example) and the computer network of the customer site. . Thus, no modification of said devices is necessary during installation on the customer site.
De même, les connexions peuvent être authentifiées et encryptées, grâce par exemple à l'utilisation de protocoles et algorithmes à clé publique ou privée, et/ou de certificats, et/ou de tiers certificateurs, et/ou de signatures numériques.
Les connexions peuvent aussi encapsuler tout autre protocole, permettant ainsi en particulier dans la charge utile le multiplexage (cas du protocole PPP par exemple) de plusieurs flux d'informations entrants et ou sortants, et ou la réalisation de passerelles entre programmes, et/ou la transmission d'informations de toute nature (par exemple audio ou vidéo) entre les sites. De même les unités d'exécution client et/ou serveur peuvent jouer un rôle d' aiguilleurs en routant et/ou multiplexant/démultiplexant les requêtes et/ou données reçues vers et/ou depuis un opérateur et/ou des dispositifs quelconques (à titre non lnnitatif : caméras, microphones, capteurs, actionneurs, systèmes d'acq sition/restitution du son, de l'image ou de la vidéo...) et/ou autres unités de traitement et/ou autres systèmes, et en renvoyant les réponses vers ceux-ci. La liaison peut aussi ne pas être permanente. Dans ce cas, le client a toute latitude pour établir la liaison, par exemple selon des tranches horaires ou la survenance de tout type d'événements (alarmes, dysfonctionnements...), ou demande d'un opérateur du site client. Il est possible de redonder les connexions et/ou unités d'exécution, coté client et/ou serveur, afin de se prémunir d'éventuels dysfonctionnements et améliorer la disponibilité de l'ensemble. Dans ce cas, selon un mode préférentiel d'exécution de l'invention, l'ensemble est judicieusement agencé de manière qu'en cas d'unité et/ou de connexion défaillante, une autre unité et/ou une autre connexion prenne le relais, afin de maintenir et/ou rétablir la liaison.Likewise, connections can be authenticated and encrypted, for example through the use of protocols and algorithms with public or private key, and / or certificates, and / or third-party certifiers, and / or digital signatures. The connections can also encapsulate any other protocol, thus allowing in particular in the payload the multiplexing (case of the PPP protocol for example) of several incoming and or outgoing information flows, and or the creation of gateways between programs, and / or the transmission of information of any kind (for example audio or video) between sites. Similarly, the client and / or server execution units can play the role of dispatchers by routing and / or multiplexing / demultiplexing the requests and / or data received to and / or from an operator and / or any devices (for example not ineffective: cameras, microphones, sensors, actuators, sound / image / video acquisition / playback systems ...) and / or other processing units and / or other systems, and returning the responses to these. The link may also not be permanent. In this case, the customer is free to establish the connection, for example according to time slots or the occurrence of any type of event (alarms, malfunctions ...), or request from an operator of the customer site. It is possible to redundant the connections and / or execution units, on the client and / or server side, in order to guard against possible malfunctions and improve the availability of the assembly. In this case, according to a preferred embodiment of the invention, the assembly is judiciously arranged so that in the event of a faulty unit and / or connection, another unit and / or another connection takes over. , in order to maintain and / or restore the connection.
Un exemple non limitatif de mise en œuvre de Finvention est représenté sur la figure 1). Le site client comprend la machine cliente (1) connectée au réseau Internet (11) via un routeur et un pare-feu non représentés empêchant toute connexion entrante, sur lequel tourne un démon (2) activé au démarrage de la machine, supportant les protocoles SOAP et HTTP. L'opérateur (9) accède au site central via un logiciel de navigation (browser WEB) standard en utilisant les protocoles HTTP et HTML, à travers le réseau Internet (11). Le site central se compose d'un serveur (10) fonctionnant sous système d'exploitation multitâches connecté au réseau InternetA nonlimiting example of implementation of the invention is shown in Figure 1). The client site includes the client machine (1) connected to the Internet (11) via a router and a firewall (not shown) preventing any incoming connection, on which runs a daemon (2) activated when the machine starts, supporting the protocols SOAP and HTTP. The operator (9) accesses the central site via standard navigation software (WEB browser) using the HTTP and HTML protocols, via the Internet (11). The central site consists of a server (10) operating under multitasking operating system connected to the Internet.
(11) via un routeur et un pare-feu non représentés. Sur ce serveur fonctionne un serveur WEB standard (4), l'ensemble étant paramétré de sorte qu'un processus (5) soit exécuté à réception d'une requête SOAP reçue sur l'URL (3) émis par le démon (2) et que le processus (7) soit exécuté à réception d'une requête HTML reçue sur l'URL (8) envoyée par l'opérateur (9), grâce à une interface CGI par exemple. Un démon (6) est activé sur (10) au démarrage, auquel peuvent se connecter les processus (5) et (7) par un mécanisme à base de sockets par exemple. Les étapes des échanges et actions des différents composants sont les suivantes : • Etape 1 ) : Au démarrage, (2) envoie une requête vide SOAP (X) sur l 'URL (3) géré par le serveur WEB (4), ce qui active (5) qui se connecte à (6) via un socket, transmet la requête et attend une réponse sur celui-ci. Le résultat de cette action est que (6) note dans ses tables internes les coordonnées de (2)
• Etape 2) : Quelque temps après (9) envoie une requête HTML réelle (Y) sur l'URL (8) géré par (4), ce qui active (7) qui se connecte à (6) via un socket, transmet la requête et attend une réponse sur celui-ci.(11) via a router and a firewall not shown. On this server operates a standard WEB server (4), the set being configured so that a process (5) is executed upon receipt of a SOAP request received on the URL (3) sent by the daemon (2) and that the process (7) is executed on reception of an HTML request received on the URL (8) sent by the operator (9), using a CGI interface for example. A daemon (6) is activated on (10) at startup, to which processes (5) and (7) can be connected by a mechanism based on sockets for example. The steps of the exchanges and actions of the different components are as follows: • Step 1): At startup, (2) sends an empty SOAP request (X) to the URL (3) managed by the WEB server (4), which active (5) which connects to (6) via a socket, transmits the request and waits for a response on it. The result of this action is that (6) notes in its internal tables the coordinates of (2) • Step 2): Some time after (9) sends an actual HTML request (Y) to the URL (8) managed by (4), which activates (7) which connects to (6) via a socket, transmits the request and waits for a response on it.
• Etape 3) : (6) code et met en forme cette requête HTML afin qu'elle soit syntaxiquement vue comme la réponse à la requête SOAP (X), et renvoie le résultat à (5), qui le transmet au serveur WEB (4) qui lui-même le retransmet à (2).• Step 3): (6) code and format this HTML request so that it is syntactically seen as the response to the SOAP request (X), and returns the result to (5), which transmits it to the WEB server ( 4) which itself forwards it to (2).
• Etape 4) : (2) reçoit cette pseudo réponse SOAP, qui est en réalité la question contenue dans la requête HTML (Y), calcule la réponse à cette question, la code et la met en forme afin qu'elle soit syntaxiquement vue comme une requête SOAP (Z), et renvoie ce résultat sur l'URL (3) géré par (4), ce qui active (5) qui le transmet à (6). (2) est alors dans le même état qu'à la fin de l'étape 1).• Step 4): (2) receives this pseudo SOAP response, which is actually the question contained in the HTML request (Y), calculates the answer to this question, codes it and formats it so that it is syntactically seen as a SOAP request (Z), and returns this result on the URL (3) managed by (4), which activates (5) which transmits it to (6). (2) is then in the same state as at the end of step 1).
• Etape 5) : (6) décode et met en forme cette pseudo requête afin de fabriquer une réponse HTML qui est transmise à (4) qui la retourne à l'opérateur (9) en tant que réponse à la requête HTML (Y). Les étapes 2) à 5) peuvent être répétées indéfiniment. Les processus (4), (5), (6), et (7) peuvent être implémentés de manière séparée ou non selon les environnements informatiques. Concernant les étapes 1) à 5) : Vu de l'opérateur, (9) a envoyé une question HTML à (1), et reçu peu de temps après une réponse HTML. Vu du serveur WEB, (1) a envoyé une requête SOAP à (10), a reçu une réponse SOAP peu de temps après, puis a renvoyé une autre requête SOAP qui est en attente de réponse. Vu de l'Internet, (1) n'a reçu aucun appel entrant ni requête et en a émis deux. On réalise donc l'objet de l'invention, c'est à dire une communication physiquement à l'initiative du client, mais logiquement à l'initiative du serveur.• Step 5): (6) decodes and formats this pseudo request in order to make an HTML response which is transmitted to (4) which returns it to the operator (9) as a response to the HTML request (Y) . Steps 2) to 5) can be repeated indefinitely. Processes (4), (5), (6), and (7) can be implemented separately or not depending on the IT environments. Regarding steps 1) to 5): Seen from the operator, (9) sent an HTML question to (1), and received shortly after an HTML response. Seen from the WEB server, (1) sent a SOAP request to (10), received a SOAP response shortly after, and then returned another SOAP request which is awaiting response. Seen from the Internet, (1) received no incoming calls or requests and made two. The object of the invention is therefore realized, that is to say a communication physically on the initiative of the client, but logically on the initiative of the server.
Ce procédé peut être utilisé en particulier dans les logiciels, solutions et systèmes de télémaintenance, télé exploitation, transfert de fichiers, télé-administration, télésurveillance, télédiffusion ou télé-collecte de fichiers, logiciels ou autres, télé-mise-à-jour de sites, applications ou autres, consolidation d'informations et/ou de données.
This process can be used in particular in software, solutions and systems for remote maintenance, remote operation, file transfer, remote administration, remote monitoring, television broadcasting or remote collection of files, software or other, remote updating of sites, applications or other, consolidation of information and / or data.