Brevet FR2852753A1 — publié le 20040924

La présente invention concerne les environnements client/serveur dans lesquels des connexions sont établies par les clients sur les serveurs à travers un ou plusieurs réseaux de transmission, principalement les réseaux basés sur le 5 protocole TCP/IP, la présente invention visant en particulier à fournir un tel système sécurisé de par sa conception. Aujourd'hui, il est de plus en plus courant pour des ordinateurs client d'accéder à des données fournies par des serveurs à travers le réseau publique Internet, des réseaux 10 privés ou la combinaison des deux. Mais l'architecture client/serveur pose des problèmes de sécurité du fait que l'on peut détecter à distance des serveurs en écoute et qu'il est possible pour des pirates informatiques de s'y connecter pour prendre le contrôle des hôtes de ces serveurs (en découvrant 15 des mots de passe ou en exploitant les failles de sécurité) ou pour immobiliser ces serveurs (attaques de déni de service). Les attaques de déni de service (DoS) rendent les serveurs inaccessibles en les noyant sous un grand nombre de connexions afin d'empêcher les serveurs de répondre aux 20 utilisateurs légitimes. Pour les attaques de déni de service distribuées (DDoS), des milliers de machines au préalable compromises sont utilisées pour prendre d'assaut toutes ensemble un serveur. De nouvelles variantes utilisent des serveurs ou des routeurs tiers comme des miroirs pour 25 démultiplier les attaques tout en restant totalement anonymes. L'actualité récente démontre que ces actes malveillants sont de plus en plus nombreux et que personne n'est épargné. Il est donc très important de sécuriser toutes les machines connectées à Internet (grand public inclus) afin 30 éviter qu'elles ne puissent servir à attaquer des serveurs. Pour sécuriser les serveurs on a pensé à utiliser des mots de passe plus longs et plus complexes, à filtrer les adresses IP acceptées et divers dispositifs comme des pare-feu sont mis en place à grands frais pour servir de barrière devant chaque serveur afin de limiter les attaques. Malheureusement, comme il est possible d'usurper une identité, ces mesures ne protègent ni des attaques de mot de passe en force brute, ni de l'exploitation de failles de sécurité du 5 serveur ou du système d'exploitation, ni des attaques de déni de service. En outre, la mise en place de pare-feu efficaces présente plusieurs problèmes en dehors de leur coût d'acquisition et de maintenance. En effet, lespare-feu doivent être configurés pour permettre à des utilisateurs de 10 l'extérieur d'atteindre les machines protégées. Cette obligation crée des problèmes techniques, légaux et logistiques, coûte cher en temps et en personnel qualifié et implique des manipulations comportant des risques d'erreurs qui peuvent entraîner des pannes ou des brèches de sécurité. 15 Des solutions de passage à travers les pare-feu existent mais leur utilisation reste très restreinte à cause de l'infrastructure très lourde à mettre en place pour les exploiter. De plus, leur mode de réalisation fait appel à des composants mal adaptés, obsolètes, peu performants et par 20 ailleurs dangereux du point de vue de la sécurité. Les coûts entraînés par la mise en place de mesures de sécurité sont d'autant plus importants que les serveurs déployés pour rendre un service donné sont nombreux. Dans le cas de l'assistance aux utilisateurs ou de la maintenance à 25 distance de machines, il faut un serveur sur chaque machine. Cela fait des millions de serveurs qui peuvent être découverts par un pirate utilisant un scanner de ports pour découvrir les serveurs en écoute ou par un virus ou un ver utilisant des failles de sécurité connues pour s'infiltrer de machine en 30 machine sur le réseau. Tous les types serveurs sont vulnérables (les serveurs Web, le courrier électronique, les systèmes d'inventaire, les bases de données en ligne, les applications d'assistance aux utilisateurs ou de maintenance, etc.) et même chaque poste de travail (puisque des services y sont en attente de connexions) et les entreprises et les administrations du monde entier ne peuvent aujourd'hui plus se passer de ces outils. C'est pourquoi le but de l'invention est de fournir un 5 système de transmission de données client/serveur sécurisé dans lequel les serveurs devenus des clients n'acceptent plus aucune connexion entrante, ce qui évite toute attaque informatique tel que le déni de service. Un autre but de l'invention est de réaliser un procédé 10 de transmission à travers un réseau de données dans lequel l'établissement d'une connexion d'un client vers un serveur s'effectue par l'intermédiaire d'un serveur central seul apte à recevoir des demandes de connexion. L'objet de l'invention est donc Système de transmission 15 de données comprenant au moins un réseau de transmission de données, une ou plusieurs machines client reliées au réseau et une ou plusieurs machines serveur également reliées au réseau, chacune des machines client pouvant être connectée à un instant donné à une ou plusieurs des machines serveur pour 20 échanger des données avec celle-ci (chacune des machines serveur pouvant recevoir plusieurs connexions en même temps) . Le système comprend un serveur central relié au réseau, chacune des machines serveur comprenant des moyens de connexion serveur permettant d'établir une connexion 25 permanente vers le serveur central, et chacune des machines client comprenant des moyens de connexion client permettant d'établir une connexion provisoire vers le serveur central lorsque la machine client désire être connectée avec une machine serveur particulière pour échanger des données, le 30 serveur central comprenant des moyens de connexion de serveur central permettant de relier la connexion provisoire à la connexion permanente de façon à établir la connexion entre la machine client et la machine serveur. Les buts, objets et caractéristiques de l'invention apparaîtront plus clairement à la lecture de la description qui suit faite en référence aux dessins dans lesquels: * La figure 1 est une représentation schématique d'un système de transmission de données selon l'invention, * La figure 2 est un bloc-diagramme illustrant schématiquement les machines client et serveur connectées au serveur central divisé en ses différents composants, * La figure 3 est un organigramme du procédé mis en oeuvre dans le serveur central pour l'établissement d'une nouvelle connexion, * La figure 4 est un organigramme du procédé mis en oeuvre dans le serveur central pour l'envoi d'un message d'une 15 une machine client ou serveur à une ou plusieurs machines client ou serveur, * La figure 5 est un organigramme du procédé mis en oeuvre dans le serveur central pour l'établissement d'un pont bidirectionnel, * La figure 6 est un organigramme du procédé mis en oeuvre dans le serveur central pour l'établissement d'une session interactive de contrôle à distance ou de transfert de fichiers entre une machine client et une machine serveur, * La figure 7 est un organigramme du procédé mis en oeuvre dans le serveur central pour enregistrer un changement d'état soumis par une machine client ou serveur, et * La figure 8 est un organigramme du procédé mis en oeuvre dans le serveur central pour le traitement d'une demande 30 de recherche initiée par une machine client de machines serveur disponibles sur le réseau. Un système de transmission de données selon l'invention illustré sur la figure 1 est bâti autour d'un réseau de transmission de données tel que le réseau Internet 10. Sont connectés à ce réseau d'une part des machines ou ordinateurs client 12, 14, 16 et d'autre part des serveurs ou machines serveur 18, 20, 22. Comme illustré par les flèches de 5 rattachement au réseau, les connexions sont toujours sortantes, c'est à dire réalisées à l'initiative des machines client ou serveur. Les connexions sont toutes à destination d'un serveur central 24 qui est conçu pour mettre en relation une machine client avec une machine serveur en établissant un 10 pont bidirectionnel entre les connexions établies par chacune des deux machines. A noter qu'il pourrait y avoir plusieurs serveurs centraux se partageant la charge totale. Pour établir les connexions, chaque machine client dispose d'un logiciel de connexion d'environ 650 Ko et chaque 15 machine serveur dispose d'un logiciel d'environ 80 Ko, ces deux fichiers pouvant être utilisés en même temps sur une même machine. A noter que ces fichiers résultent de l'adaptation d'une application client/serveur existante de contrôle à distance de PC au dispositif selon l'invention. De son côté, 20 le serveur central dispose d'un logiciel de connexion sous la forme, par exemple, d'un fichier exécutable d'environ 650 Ko écrit en en langage C++. A noter que selon un mode de réalisation préféré de l'invention, le logiciel d'une machine serveur ou d'une 25 machine client établit une connexion permanente et initialise l'enregistrement automatique de cette machine auprès du serveur central dès que la machine serveur se connecte au réseau Internet. Dans les cas o une machine serveur n'a pas d'accès permanent au réseau Internet, un lien non-permanent 30 est établi à la demande lors d'un appel SOS envoyé par l'utilisateur de la machine serveur comme décrit par la suite. Le serveur central et les machines client peuvent (ensemble ou séparément) contribuer à constituer (et/ou maintenir) de manière centralisée ou distribuée des listes persistantes d'objets de toute nature (clients, utilisateurs, permissions d'accès, privilèges, connexions, données obtenues par les clients ou à envoyer par les clients) , de leurs caractéristiques (statuts, identifiant système et propriétés) 5 ainsi que de leurs dérivés, tout ou partie de ces informations pouvant également ne pas être conservé et utilisé seulement au moment o l'on en a besoin. Les clients peuvent envoyer un paquet périodiquement au serveur central ("keep alive") pour détecter les coupures de connexion et rétablir une connexion 10 dès que possible. Les autorisations d'accès des machines sont centralisées dans une base de données que le serveur central maintient pour conserver la liste des machines et des utilisateurs, l'historique des opérations et toute autre information utile. 15 Elles permettent de définir des droits en détaillant les fonctions disponibles par utilisateur sur chaque machine sachant qu'une machine client ne peut être utilisée que par un utilisateur autorisé et que si cette machine client a également été autorisée au préalable dans la base de données 20 du serveur central. Toutes les connexions passant obligatoirement par le serveur central, il est impossible de passer outre les contrôles de droits d'accès. Comme déjà mentionné, les machines client et serveur telles que les machines 12, à 22 illustrées sur la figure 2 25 s'inscrivent automatiquement au démarrage de la machine ou à l'initiative de l'utilisateur dans la base de données 32 du serveur central. Si le bon schéma de signature électronique, la bonne clé privée, le bon algorithme de cryptage et la syntaxe adéquate sont utilisés, la connexion de la machine à 30 l'interface réseau 26 du serveur central est réalisée après sa validation et son authentification par l'unité de traitement 30 du serveur central. Le serveur central laisse alors le système d'exploitation maintenir les connexions inactives de façon permanente en RAM 28 jusqu'au moment o le serveur central a besoin d'une de ces connexions. Chaque nouvelle connexion permanente arrivant au serveur central vient remplacer la connexion inactive pour cette même 5 machine, l'identifiant système de la nouvelle connexion étant sauvegardé dans la base de données 32 du serveur central. Dans le cas des connexions provisoires, la nouvelle connexion est fermée proprement ou brutalement selon la logique décrite plus loin. Dans une fermeture "propre" la machine distante est 10 avertie de la fin de la connexion alors que pour une fermeture "brutale" le serveur central ne prend aucune précaution. La mémoire RAM 28 ainsi que, de façon générale, les ressources du serveur central sont recyclées car en cas de coupure de connexion permanente inopinée avec une machine 15 client ou serveur, la connexion laissée ouverte côté serveur central sera refermée lorsqu'une nouvelle connexion permanente sera rétablie par cette même machine avec le serveur central. En référence à la figure 3, une demande de connexion débute au niveau du serveur central par la réception d'une 20 connexion venant d'une machine client ou serveur (étape 34). Le serveur central détermine s'il reste un thread libre parmi le groupe de threads créés par le serveur central pour traiter les connexions entrantes (étape 36). Un "thread" désignant dans la présente description une "unité autonome d'exécution". 25 S'il n'y a pas de thread libre, il faut déterminer si un autre serveur central est susceptible de traiter la demande (étape 48), transmettre la demande vers cet autre serveur central (étape 52) et fermer proprement la connexion (étape 54) avant la libération du thread (étape 58). S'il n'y a pas d'autre 30 serveur central, un message indiquant que le serveur est indisponible est transmis à la machine (étape 50) et la connexion est fermée proprement (étape 54) avant la libération du thread (étape 58). Lorsque le serveur central dispose d'un thread libre, la demande est traitée par le thread (étape 38) et il y a vérification de la validité de la signature et des autres mesures de sécurité (étape 40). Si la vérification s'avère 5 négative, la connexion est coupée par fermeture brutale et il y a enregistrement de la demande (étape 56) avant la libération du thread (étape 58). Sinon, la demande est décryptée et enregistrée (étape 42). Le serveur central vérifie ensuite si la demande est valide, c'est à dire si la 10 syntaxe de la commande est correcte (étape 44). Si c'est le cas, la demande est traitée (étape 46) de façon différente selon qu'il s'agit d'un changement d'état, d'une recherche, d'une discussion en ligne, d'un contrôle à distance ou d'un transfert de fichiers comme on le verra par la suite. Sinon, 15 la connexion est coupée brutalement et enregistrée (étape 56) avant la libération du thread (étape 58). L'établissement d'une connexion vers le serveur central utilisé pour transmettre des données vers une ou plusieurs machines destinataires nécessite la création d'un ou de 20 plusieurs moyens de diffusion tels que des liens unidirectionnels utilisés pour transmettre l'information à une ou plusieurs machines serveur. Un exemple illustrant ce cas est décrit ci-dessous avec la discussion en ligne à deux ou en mode conférence à plus de deux (Chat). La méthode pour l'établissement d'une discussion en ligne (Chat) entre une machine client et une ou plusieurs machines serveur est maintenant décrite en référence à la figure 8. A noter qu'une nouvelle connexion a déjà été établie entre une machine client et le serveur central comme décrit 30 précédemment en référence à la figure 3. Le serveur central vérifie d'abord dans sa base de données si la machine client est autorisée à communiquer avec le serveur central (étape 60). Si ce n'est pas le cas, le serveur central met fin proprement à la connexion (étape 70) et libère le thread utilisé pour la connexion en figure 3. Puis, le serveur central vérifie dans sa base de données, pour chacune des machines serveur demandées, si 5 l'utilisateur de la machine client possède les droits nécessaires pour être relié aux machines serveur demandées (étape 62) et si la connexion permanente entre le serveur central et la machine demandée est toujours opérationnelle: la connexion permanent est récupérée depuis la base de données 10 (étape 64) et vérifiée (étape 66) . Si ce n'est pas le cas, le serveur central passe à la machine destinataire suivante et met fin proprement à la connexion s'il n'y a plus de destinataires pour le message. Si la connexion est opérationnelle et les droits valides, le serveur central 15 envoie le message reçu de la machine client à toutes les machines serveur accessibles selon les droits et dont la connexion permanente est opérationnelle (étape 72). Note: le serveur central peut éventuellement envoyer un message avant de fermer la connexion pour informer le client ayant envoyé le 20 message que tel ou tel correspondant n'était pas disponible ou n'était pas autorisé à être contacté. Enfin, après l'envoi du message, le serveur central met fin proprement à la connexion (étape 70) et libère le thread. Lorsque la demande émanant d'une machine client concerne 25 l'établissement d'une communication interactive entre cette machine client et une machine serveur, l'interconnexion effectuée dans le serveur central se fait de la manière illustrée sur la figure 5. Tout d'abord, le serveur central transmet un ordre à la 30 machine serveur destinataire pour lui demander d'établir une nouvelle connexion permanente pour remplacer la connexion permanente existante qui va être utilisée (étape 74). Puis, il y a création d'un pont bidirectionnel par le serveur central de manière à établir la liaison entre la nouvelle connexion de la machine client ayant fait la demande et l'ancienne connexion permanente de la machine serveur destinataire. L'établissement d'un tel pont s'effectue en deux temps. Pour faire fonctionner le pont bidirectionnel, il y a d'abord 5 création d'un thread (étape 76) pour gérer une passerelle unidirectionnelle dans le but de transférer les données venant de la connexion source, c'est à dire la connexion émanant de la machine qui a fait la demande, vers la connexion destinataire, c'est à dire la connexion de la machine 10 demandée. Il y a ensuite création d'un autre thread pour gérer une seconde passerelle unidirectionnelle dans le but de transférer les données venant de la connexion destinataire vers la connexion source (étape 78). Ensuite, le thread principal utilisé pour la connexion 15 en figure 3 et ayant créé les deux threads du pont bidirectionnel est libéré (étape 80). Si l'une des deux connexions est coupée (étapes 84 ou 94), l'autre connexion est fermée proprement (étapes 86 ou 96), ce qui met fin au processus du pont bidirectionnel par la destruction en cascade 20 des deux threads des passerelles unidirectionnelles (étapes 90 ou 100). Lorsqu'une passerelle unidirectionnelle reçoit des données à partir de l'une des connexions, elle les transmet à l'autre connexion (étapes 88 ou 98) ce qui maintient un pont bidirectionnel entre les deux machines connectées au serveur 25 central. L'établissement d'un pont bidirectionnel par le serveur central tel que décrit précédemment a lieu lorsqu'il est nécessaire de créer un lien bidirectionnel de quelque nature que ce soit entre une machine client et une machine serveur et 30 en particulier dans le cas d'un contrôle à distance de la machine serveur par la machine client, la machine client interagissant en temps réel avec l'écran de la machine serveur reproduit sur l'écran de la machine client ou dans le cas d'un transfert de fichiers entre les deux machines. A noter qu'une variante unidirectionnelle de ce même pont consiste simplement à créer un seul thread de passerelle sur les deux créés dans le cas bidirectionnel ce qui peut être utile lorsque le message à envoyer est trop long ou envoyé sur une trop longue 5 durée pour mettre en oeuvre la méthode décrite précédemment pour la discussion en ligne (Chat). La méthode mise en oeuvre pour le contrôle à distance ou le transfert de fichiers est décrite en référence à la figure 6. Une nouvelle connexion au serveur central a été établie 10 préalablement par la machine client tel que décrit en référence à la figure 3. Tout d'abord, le serveur central vérifie dans sa base de données si la machine client est autorisée à communiquer avec le serveur central (étape 102). Si ce n'est pas le cas, le serveur central met fin proprement 15 à la connexion (étape 112) avant de libérer le thread utilisé pour la connexion en figure 3. Si l'accès est autorisé, le serveur central vérifie dans sa base de données si l'utilisateur de la machine client possède les droits nécessaires pour être relié à la machine serveur destinataire 20 (étape 104). Si ce n'est pas le cas, le serveur central peut transmettre un message "accès refusé" à la machine client et met ensuite fin proprement à la connexion (étape 112) avant de libérer le thread. Si la machine et l'utilisateur client ont les droits requis, le serveur central récupère dans sa base de 25 données l'identifiant système de la connexion permanente inactive de la machine serveur destinataire (étape 106). Avant d'établir le lien entre les deux machines, le serveur central vérifie si la connexion permanente entre la machine serveur et le serveur central est toujours 30 opérationnelle (étape 108). Si ce n'est pas le cas, le serveur central peut transmettre un message "ressource indisponible" à la machine client et met ensuite fin proprement à la connexion. Si la connexion est toujours opérationnelle, le serveur central vérifie alors si un SOS, c'est à dire une demande d'aide requise par l'utilisateur de la machine serveur destinataire, est en attente de réponse (étape 110). Si c'est le cas, le serveur central signale la fin du SOS aux machines client qui ont une connexion permanente opérationnelle et le 5 droit d'accéder à cette machine serveur et met à jour la table des SOS dans sa base de données (étape 114). Lorsque ces opérations ont été effectuées ou s'il n'y a pas de SOS en attente, la liaison peut être établie par la création d'un pont bidirectionnel tel que décrit en référence à la figure 4. 10 En dehors des liens établis entre une machine client et une machine serveur par le serveur central, le serveur central doit, afin de permettre à une machine client de localiser une machine serveur et réciproquement, traiter d'autres demandes de connexion ayant trait notamment à l'inscription ou au 15 changement d'état d'une machine et à la recherche d'une machine disponible selon un ou plusieurs critères. C'est en effet le seul moyen pour une machine d'en joindre une autre puisque le principe même du dispositif selon l'invention n'utilise plus les adresses réseau pour joindre 20 une machine car les adresses des machines pouvant être jointes par le serveur central ne sont pas uniques: les machines d'un même réseau privé partagent la même adresse publique de leur point de connexion au réseau publique et leur adresse privée a toutes les chances d'être utilisée sur un autre réseau privé. 25 Pour ces raisons, le serveur central doit absolument maintenir une liste en tempsréel des machines disponibles et (éventuellement) des utilisateurs disponibles pour permettre aux machines de consulter cette liste afin de communiquer entre elles. Le seul lien permettant de joindre une machine à 30 partir du serveur central reste bien sûr la connexion permanente mais la recherche peut se faire sur les noms de machine ou d'utilisateur ou même sur les adresses MAC (Media Access Control) si la base de données du serveur central met ces informations en concordance. La méthode utilisée pour l'inscription ou le changement d'état d'une machine client ou serveur est décrite en référence à la figure 7. L'on suppose tout d'abord qu'une nouvelle connexion a été établie par la machine qui 5 s'identifie vers le serveur central comme décrit précédemment en référence à la figure 3. Le serveur central commence par vérifier si la machine qui s'identifie est déjà connue (étape 116). Si ce n'est pas le cas, le serveur central sauvegarde la nouvelle connexion en ajoutant l'identifiant système dans une 10 table des machines de sa base de données (étape 128). Si la machine est déjà connue, le serveur central vérifie si la demande correspond à un SOS émanant d'une machine serveur (étape 118). Si c'est le cas, le SOS est enregistré dans la table des SOS se trouvant dans la base de données du serveur 15 central et est transmis à toutes les machines client en ligne et ayant le droit d'accéder à cette machine serveur (étape 130). Après ces opérations ou s'il ne s'agit pas d'un SOS le serveur central vérifie si l'état de la machine s'identifiant et de son utilisateur sont les mêmes dans la base de données 20 du serveur central (étape 120). Si ce n'est pas le cas, l'état (adresse de la machine, nouvel utilisateur, économiseur d'écran, état en ligne, niveaux de mémoire, type et version du système d'exploitation...) est enregistré dans la table des états se trouvant dans la base de données du serveur central 25 (étape 132). Puis le serveur central ferme l'ancienne connexion permanente de cette machine si elle était valide et sauvegarde l'identifiant système de la nouvelle connexion permanente dans sa base de données (étape 122). Ensuite, le serveur central vérifie si la version de l'application de la 30 machine qui s'identifie est plus ancienne que la version disponible sur le serveur central (étape 124). Si c'est le cas, le serveur central met à jour automatiquement l'application (étape 134) sur la machine qui s'identifie puis le serveur central libère le thread (étape 126) utilisé pour la connexion en figure 3. La méthode utilisée pour une recherche est maintenant décrite en référence à la figure 8. Il est entendu qu'une 5 nouvelle connexion a été établie entre une machine client et le serveur central comme décrit précédemment en référence à la figure 3. Le serveur central vérifie d'abord dans sa base de données si la machine client est autorisée à communiquer avec le serveur central (étape 136). Si ce n'est pas le cas, le 10 serveur central peut transmettre un message "accès refusé" à la machine client et met ensuite fin proprement à la connexion (étape 146) avant de libérer le thread utilisé pour la connexion en figure 3. Si l'accès est autorisé, le serveur central cherche dans sa base de données les machines 15 correspondant aux critères fournis (étape 138) et, pour chaque machine trouvée, il vérifie que l'utilisateur de la machine client ayant envoyé la requête possède les droits nécessaires pour accéder à la machine serveur (étape 140) puis il récupère la connexion permanente de chacune des machines depuis sa base 20 de données (étape 148) afin de vérifier que celle-ci est bien opérationnelle (étape 150). Si ce n'est pas le cas, le serveur central peut éventuellement transmettre un message "accès refusé" ou "machine indisponible" à la machine client et s'il n'y a plus de machines correspondant à la recherche il met 25 ensuite fin proprement à la connexion avant de libérer le thread (étape 146). Si les droits permettent l'accès et si la connexion est opérationnelle, le serveur central crée une liste les machines trouvées lors de la recherche et envoie cette liste à la machine client (étape 144) à l'issue de la 30 recherche. Enfin, le serveur central met fin proprement à la connexion (étape 146) avant de libérer le thread. La présente invention peut être mise en òuvre dans toutes les architectures de réseau comportant une pluralité de serveurs. Elle peut être utilisée avec le protocole TCP/IP ou n'importe quel autre protocole orienté connexion tel que, par exemple: Sequence Packet Exchange (SPX) de Novell, System Network Architecture (SNA) d'IBM, Open Systems Interconnection OSI/X25 Connection Oriented Networking Service (CONS), Xerox 5 Network System (XNS) de Xerox, DECnet, AppleTalk, Banyan Vines. Ainsi, elle peut être implémentée dans les exemples suivants: 1. Système client/serveur de Help Desk. Dans ce type d'application répandue dans les 10 entreprises, il fautinstaller des applications serveur sur toutes les machines à gérer à distance. Contrairement aux applications client/serveur classiques le système selon l'invention est capable d'atteindre des machines situées sur des réseaux privés sans configurer routeurs ni pare-feu et 15 permet un déploiement en toute sécurité puisque les machines client et serveur sont invisibles et inattaquables. Le système selon l'invention est radicalement différent, de par les moyens employés et de par son mode de fonctionnement, des solutions existantes de passage à travers les parefeu 20 constituées d'un serveur Web utilisant un serveur Java en CGI (Common Gateway Interface), d'applets Java côté client, et d'un serveur SQL, car le serveur central est une application serveur d'un seul bloc pouvant fonctionner de manière totalement autonome. Il est beaucoup plus sûr car il n'est pas 25 constitué de composants qui n'ont pas été conçus pour effectuer ces tâches exigeantes en termes de sécurité et de performances. Il est également beaucoup plus rapide du fait que les logiciels de connexion des machines client, des machines serveur et du serveur central sont écrits en C++ 30 portable optimisé et que les temps de latence sont réduits au maximum puisque le serveur central a à lui seul la fonction d'un serveur Web, d'un serveur d'application Java et d'un serveur SQL ce qui élimine les temps de latence générés par le traitement des données par chacun de ces composants, les temps de latence induits par la traduction des données nécessaire entre les composants et les temps de latence créés par la transmission réseau des données entre chacun de ces différents composants. En outre, le système selon l'invention est 5 indépendant du protocole HTTP puisque le serveur central n'utilise pas ce protocole et, donc, ne présente pas les problèmes de performance et de sécurité inhérents à ce protocole. La méthode unique de gestion des connexions décrite précédemment permet de plus un accès sans interruption à toute 10 machine serveur même si elle est déjà connectée à une machine client. Enfin, ce système est considérablement plus facile, moins cher à mettre en place et à maintenir que toute autre solution d'Help Desk existante utilisant ou non le passage à travers routeur et pare-feu puisque l'enregistrement des 15 utilisateurs et des machines dans la base de données est effectué automatiquement, qu'aucune mesure de sécurité ou de configuration réseau n'est nécessaire et que le déploiement de la solution peut être fait à la demande grâce à la petite taille de la partie serveur (80 Ko). A noter que dans cet exemple les clients se comportent également comme des serveurs et les serveurs comme des clients puisqu'une discussion en ligne (Chat) peut être initiée de part et d'autre que ce soit un client ou un serveur qui soit installé sur une machine. De la même manière, le transfert de 25 fichier pourrait ici être initié à partir d'un serveur. 2. Système client/serveur de DRM (Device Relationship Management) Le DRM permet aux entreprises, fabricants et sociétés de service de surveiller, gérer et maintenir en temps réel des 30 appareils intelligents -tels que: photocopieurs, ascenseurs, chaînes de production, DAB, caisses enregistreuses, stations météo, pompes à essence, équipement médicaux ou des flottes d'avions, de camions ou de bateaux- déployés sur des sites distants partout dans le monde. Les agents intelligents déployés ne sont pas en attente de connexions ce qui les met à l'abri de toute détection à distance et permet d'éviter les attaques. Le serveur central DRM comporte, outre les 5 fonctionnalités normales du serveur central, la fonction de "tunnel transparent" pour n'importe quel type d'application, logicielle ou matérielle, ayant besoin de transférer des données de manière sûre et temps-réelle sur des réseaux distribués comme Internet. Cette fonction de tunnel 10 transparent est implantée du côté agent (un "agent" pouvant être à la fois un client et un serveur)et du côté serveur DRM afin de permettre à un logiciel ou un appareil tiers d'utiliser l'agent pour joindre d'autres agents ou pour demander ou envoyer des données au serveur DRM et 15 réciproquement ce qui permet d'implanter une logique de gestion adaptée à chaque type d'appareil intelligent avec des filtres, des alertes, des règles métier et des données à fournir à ces appareils ou venant de ces appareils. Le serveur DRM est également utile pour les sociétés 20 éditant des logiciels réseau la programmation réseau est simplifiée à l'extrême (il ne reste plus qu'à spécifier un destinataire par son nom o qu'il soit au monde pour lui envoyer ou lui demander des données). Il ne reste dans ce cas que la partie en contact avec l'agent DRM et la partie en 25 contact avec le serveur DRM à créer -c'est à dire ce qui définit l'application elle-même (pilotage d'automate, acquisition de données, maintenance, comptabilité, gestion de point de vente, etc.). Par ailleurs, l'écriture de nouvelles applications 30 réseau utilisant le serveur DRM conduit à une sécurité assurée d'emblée (il ne sera plus nécessaire de vérifier chaque ligne de code des nouveaux produits pour y rechercher des failles de sécurité puisque ces failles, même si elles existent, ne sont plus exploitables). Le serveur DRM est considérablement plus facile à utiliser, moins cher à mettre en place et à maintenir que toute autre solution existante du fait qu'il résout à lui seul toutes les difficultés techniques liées à l'accès aux réseaux et aux problèmes de sécurité inhérents à ces accès. Selon l'inventeur, les avantages du serveur DRM sont tellement évidents qu'aucune organisation ne pourrait se passer à terme d'une solution équivalente. Grâce au caractère mineur des modifications à apporter aux solutions déjà en 10 place, il est possible d'effectuer une migration progressive permettant une exploitation mixte conservant l'approche classique, en privilégiant la mise en place de la technologie du serveur central dans les applications les plus critiques en priorité (cette démarche ayant été expérimentée avec succès 15 dans l'application de Help Desk présentée dans l'exemple 1). 3. Système client/serveur de protection de réseau privé Les passerelles traditionnelles (pont, routeur, pare-feu, proxy, etc.) permettent de transmettre le trafic réseau de deux réseaux ou plus par le fait que la passerelle est située 20 à cheval sur ces mêmes réseaux en ayant une interface réseau dans chacun des réseaux pour lesquels elle redirige du trafic. Le serveur central, au lieu de cela, n'utilise qu'une seule et unique interface réseau pour transmettre le trafic depuis une infinité de réseaux source vers une infinité de 25 réseaux destination, quelle que soit la situation géographique du serveur central par rapport à la topologie des réseaux pour lesquels le serveur central redirige le trafic. La mise en oeuvre d'un système selon l'invention permet, en utilisant la technologie du serveur central pour une 30 passerelle (routeur, pare-feu, proxy, etc.), permet de délocaliser la sécurité réseau actuellement distribuée sur un seul et unique serveur central. Il suffit à la partie agent (client ou serveur) de l'invention de prendre en charge toutes les connexions possibles sur toutes les machines client et serveur. Les deux composants client et serveur peuvent d'ailleurs n'en faire qu'un ou être installés ensemble sur chaque machine. Ainsi, plus aucun poste de travail ni aucun serveur n'est en écoute 5 pour aucun service: au lieu de cela, le serveur central gère les besoins de tous grâce à des agents distribués totalement sûrs puisqu'ils sont indétectables et inattaquables quelle que soit la situation géographique des machines par rapport au serveur central. Les machines n'ont pas à être "cachées" 10 derrière le serveur central ni même à être situées sur un segment de réseau privé commun -elles peuvent être déployées n'importe o : directement connectées à Internet partout sur Terre ou installées sur n'importe quel LAN). Ce point est déterminant dans le dispositif de sécurisation parce que 15 plusieurs serveurs centraux peuvent fonctionner sans qu'il soit possible pour un attaquant de savoir o se trouvent ces serveurs centraux ni même o sont les machines travaillant avec ces serveurs centraux car il est impossible de faire le lien entre toutes ces machines du fait qu'elles ne se trouvent 20 pas nécessairement sur le même segment de réseau. Ce modèle est particulièrement adapté au travail à distance selon lequel les employés d'une entreprise sont en déplacement ou travaillent depuis leur domicile. Avec le serveur central, ils sont protégés d'emblée o qu'ils soient. 25 De la même manière, un fournisseur d'accès à Internet pourrait protéger tous ses clients -leur épargnant ainsi d'avoir à installer, configurer et maintenir des équipements de sécurité coûteux et bien souvent inefficaces. Le courrier électronique, les systèmes d'inventaire, les 30 bases de données en ligne, les applications d'assistance aux utilisateurs ou de maintenance, tout passe par le serveur central, ce qui permet également d'unifier la gestion des droits d'accès, les journaux d'activité, les alertes et les filtres qui sont aujourd'hui gérés par chaque application séparément avec les coûts redondants et les risques démultipliés inhérents à chaque application utilisée. Avec la technologie du serveur central la question de la sécurité est traitée une fois pour toutes: plus besoin de 5 logiciels de sécurité déployés sur chaque poste, plus besoin de pare-feu chers, mal configurés et apportant de nouvelles failles, plus besoin de services de surveillance ni de risques négligés par faute de moyens ou non-identifiés. L'utilisation généralisée de la technologie du serveur central au sein d'un 10 groupe de travail aurait un impact déterminant sur la réduction des coûts par les économies d'échelle réalisées sur l'installation, la configuration, la maintenance et l'intervention sur les postes de travail puisque seul un agent de quelques Ko, capable de se configurer tout seul et de se 15 mettre à jour à distance, est nécessaire au lieu de solutions lourdes et onéreuses qui, malgré des mesures de sécurité disparates et redondantes, présentent régulièrement de nouvelles failles de sécurité qu'il faut sans cesse corriger avec les rustines vendues par les fabricants de ces mêmes 20 systèmes reconnus vulnérables. L'utilisation d'un agent bloquant tous les services en écoute et déroutant les connexions sortantes sur chaque machine permet d'utiliser la technologie du serveur central sans avoir à modifier les applications déjà en place. Comme il 25 est possible d'intégrer facilement des dispositifs de commutation utilisant la technologie du serveur central au sein de réseaux utilisant des commutateurs classiques, une diffusion du dispositif selon l'invention peut se faire progressivement et à moindre coût. Dans le cadre de l'invention, on doit noter que plusieurs serveurs centraux peuvent être chaînés afin de les faire fonctionner en tolérance de panne, chacun d'eux se synchronisant à intervalles de temps donné avec son voisin immédiat pour mettre à jour les données de chaque serveur central. La synchronisation peut par exemple adopter un schéma de connexion hiérarchique ou en série. Plusieurs serveurs centraux peuvent également être utilisés dans le but de partager la charge de travail, chacun 5 d'eux envoyant des connexions à son voisin immédiat lorsque sa limite de connexions simultanées est atteinte (le nombre des threads du groupe de threads du serveur central pouvant être défini en fonction de la capacité de traitement de chaque serveur central) . Le partage de charge peut par exemple 10 adopter un schéma de connexion hiérarchique ou en série et peut se combiner avec la synchronisation de base de données décrite ci-dessous. Enfin, plusieurs serveurs centraux peuvent être synchronisés les uns avec les autres en temps-réel afin que si 15 l'un des serveurs venait à être indisponible les machines client et serveur utilisent le serveur central suivant dans leur liste des serveurs redondants, liste qui leur est fournie lors de leur connexion à l'un des serveurs centraux. Ce système peut être utilisé pour faire du partage de charge en 20 répartissant les machines client et serveur sur plusieurs serveurs centraux avant même qu'une panne n'intervienne. Ce système est transparent pour les utilisateurs et ne requiert aucun moyen matériel supplémentaire dédié au partage de charge. En conclusion, le système selon l'invention présente des avantages considérables par rapport aux systèmes existants. Il est infiniment plus facile et plus économique à utiliser, plus sûr et plus performant, puisqu'il n'utilise pas de composants intermédiaires qui impliquent des conversions de format et des 30 traductions dans le seul but de leur permettre de s'interfacer pour fonctionner ensemble. L'un des avantages primordiaux vient de ce que la sécurité des clients est assurée puisque: - les clients et les serveurs sont invisibles et inattaquables depuis le réseau puisqu'ils n'acceptent plus aucune connexion, - le serveur central est en mesure d'effectuer un tri 5 parmi les connexions entrantes car il n'accepte que des utilisateurs et des machines autorisés au préalable par le serveur central à communiquer entre eux, - la technologie du serveur central permet de protéger de toute attaque tous les utilisateurs connectés au serveur 10 central. En outre, le serveur central est moins coûteux à protéger, à installer et à maintenir que n'importe lequel des serveurs qu'il remplace puisque: - la technologie du serveur central lui permet d'être 15 cloné et situé n'importe o pour rediriger le trafic d'une infinité de réseaux au lieu de devoir se trouver au carrefour de ces mêmes réseaux, - la technologie du serveur central authentifie les machines et les utilisateurs avant même qu'ils n'aient eut 20 l'occasion de faire quoi que ce soit -ce qui permet de rejeter automatiquement les connexions venant de sources inconnues sans exposer inutilement le serveur central ou son hôte, - la technologie du serveur central utilise les méthodes les plus sophistiquées actuellement disponibles pour crypter 25 et signer les connexions alors que la plupart des services de l'Internet n'utilisent que des mots de passe en texte clair et des données en texte clair (SMTP, POP3, HTTP, FTP, LDAP, etc.) ou des méthodes de cryptage qui ont déjà révélé de graves vulnérabilités (rechercher 'SSL + vulnerability' ou 'SSH + 30 vulnerability'), l'architecture redondante et à partage de charge du serveur central le protège des attaques de déni de service car, si un serveur central ne répond plus, les clients changent de serveur central automatiquement sans interruption de service sans à avoir à utiliser de dispositifs de commutation coûteux dédiés au partage de charge ou à la redondance. REVENDICATIONS 1. Système de transmission de données comprenant au moins un 5 réseau de transmission de données (10), une ou plusieurs machines client (12, 14, 16) reliées audit réseau et une ou plusieurs machines serveur (18, 20, 22) également reliées audit réseau, chacune desdites machines client pouvant être connectée à un instant donné à l'une desdites machines 10 serveur pour échanger des données avec celle-ci; ledit système étant caractérisé en ce qu'il comprend au moins un serveur central (24) relié audit réseau, en ce que chacune desdites machines serveur comprend des moyens de connexion serveur permettant d'établir une connexion 15 permanente vers ledit serveur central et en ce que chacune desdites machines client comprend des moyens de connexion client permettant d'établir une connexion provisoire vers ledit serveur central. 2. Système de transmission de données selon la revendication 1, dans lequel ledit serveur central comprend des moyens de connexion de serveur central permettant de relier ladite connexion provisoire à ladite connexion permanente de façon à permettre audites machines client et audites machines 25 serveur d'être connectées les unes aux autres. 3. Système selon la revendication 2, dans lequel lesdits moyens de connexion de serveur central comprennent des moyens de création d'un pont bidirectionnel adaptés pour 30 interconnecter une machine client (12, 14 ou 16) et une machine serveur (18, 20, 22) dans le but d'échanger des données, ledit pont bidirectionnel comprenant une passerelle unidirectionnelle permettant le transfert de données de ladite connexion provisoire vers ladite connexion permanente et une passerelle unidirectionnelle permettant le transfert de données de ladite connexion permanente vers ladite connexion provisoire, lesquelles passerelles se détruisent mutuellement en cascade si l'une des connexions est coupée ce qui met fin automatiquement audit pont bidirectionnel. 4. Système selon la revendication 3, dans lequel lesdits moyens de connexion de serveur central demandent audits moyens de connexion client de ladite machine serveur (18, 20, 22) 10 d'établir une nouvelle connexion permanente vers ledit serveur central (24) pour chaque nouveau pont bidirectionnel créé. 5. Système selon la revendication 1 ou la revendication 2, dans 15 lequel lesdits moyens de connexion client de chaque machine client (12, 14, 16) sont adaptés pour établir une connexion permanente vers ledit serveur central (24). 6. Système selon l'une quelconque des revendications 20 précédentes, dans lequel lesdits moyens de connexion client d'une machine client (12, 14 ou 16) établissent une connexion provisoire avec le serveur central (24) lorsque ladite machine client désire échanger des données avec une machine serveur (18, 20 ou 22). 7. Système selon l'une quelconque des revendications précédentes, dans lequel lesdits moyens de connexion de serveur central comprennent des moyens de diffusion unidirectionnels adaptés pour transmettre un message envoyé 30 par une machine client (12, 14 ou 16) vers une ou plusieurs machines serveur (18, 20 ou 22) en utilisant ladite connexion provisoire de la machine client et ladite connexion permanente de chaque machine serveur. 8. Système selon l'une quelconque des revendications précédentes, dans lequel lesdits moyens de connexion d'une machine client ou serveur (12, 14, 16, 18, 20 ou 22) établissent une connexion vers ledit serveur central (24) 5 pour obtenir une connexion provisoire avec le serveur central (24) lorsque ladite machine client ou serveur désire s'inscrire auprès du serveur central ou signaler un changement d'état au serveur central, ledit serveur central disposant d'une table des états en mémoire permettant 10 d'enregistrer ladite inscription ou ledit changement d'état et notamment l'identifiant système des connexions permanentes, le nom d'un utilisateur éventuel et l'adresse MAC (Media Access Control) des machines client ou serveur. 9. Système selon la revendication 9, dans lequel lesdits moyens de connexion du serveur central vérifient si la connexion provisoire d'inscription ou de changement d'état signale un SOS provenant d'une machine serveur (18, 20 ou 22), et, si c'est le cas, enregistrent ledit SOS en mémoire dans une 20 table des SOS maintenue par ledit serveur central (24) puis transmettent ledit SOS à toutes les machines client en ligne ayant le doit d'accéder à ladite machine serveur. 10. Système selon la revendication 10, dans lequel, suite à la 25 réception d'une connexion provisoire de changement d'état ou de SOS, lesdits moyens de connexion du serveur central procèdent à la fermeture de la connexion permanente entre ladite machine client ou serveur (12, 14, 16, 18, 20 ou 22) et ledit serveur central (24), lequel serveur central 30 sauvegarde alors ladite connexion provisoire en tant que nouvelle connexion permanente pour ladite machine client ou serveur. 11. Système selon l'une quelconque des revendications précédentes, dans lequel lesdits moyens de connexion de serveur central comprennent des moyens de recherche multicritère permettant à une machine client (12, 14 ou 16) 5 ayant établit une connexion vers ledit serveur central (24) pour obtenir une connexion provisoire avec le serveur central de localiser une ou plusieurs machines serveur ayant une connexion permanente opérationnelle (18, 20, 22) en utilisant ladite connexion permanente de chaque machine 10 serveur pour identifier quelles machines serveur sont en ligne et ladite connexion provisoire de la machine client pour récupérer le résultat de la recherche. 12. Système selon l'une quelconque des revendications 15 précédentes, dans lequel lesdits moyens de connexion des machines client ou serveur (12, 14, 16, 18, 20 ou 22) comprennent des moyens pour envoyer périodiquement un paquet (tlkeep alive") au serveur central (24) afin de détecter des coupures de connexion et rétablir une connexion dès que 20 possible. 13. Système selon l'une quelconque des revendications précédentes, comportant plusieurs serveurs centraux du même type fonctionnant en redondance et en partage de charge. 25 14. Système selon l'une quelconque des revendications précédentes, dans lequel le serveur central (24) peut effectuer à distance toute tâche nécessaire sur les machines client ou serveur (12, 14, 16, 18, 20 ou 22) en général, et, 30 en particulier, peut procéder à distance à la mise à jour automatique de la partie de l'application déployée sur les machines client et serveur. 15. Système selon la revendication 1 ou 2, dans lequel ledit serveur central (24) possède une seule interface réseau sur laquelle il transmet le trafic d'une infinité de réseaux privés connectés à Internet quelle que soit la situation 5 géographique du serveur central par rapport à ces réseaux.