WO2004086719A2 - Systeme de transmission de donnees client/serveur securise - Google Patents

Systeme de transmission de donnees client/serveur securise Download PDF

Info

Publication number
WO2004086719A2
WO2004086719A2 PCT/FR2004/000613 FR2004000613W WO2004086719A2 WO 2004086719 A2 WO2004086719 A2 WO 2004086719A2 FR 2004000613 W FR2004000613 W FR 2004000613W WO 2004086719 A2 WO2004086719 A2 WO 2004086719A2
Authority
WO
WIPO (PCT)
Prior art keywords
server
connection
client
central server
machine
Prior art date
Application number
PCT/FR2004/000613
Other languages
English (en)
Other versions
WO2004086719A3 (fr
Inventor
Pierre Gauthier
Original Assignee
Twd Industries Sas
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Twd Industries Sas filed Critical Twd Industries Sas
Priority to US10/544,376 priority Critical patent/US20060168239A1/en
Priority to DE112004000125T priority patent/DE112004000125T5/de
Publication of WO2004086719A2 publication Critical patent/WO2004086719A2/fr
Publication of WO2004086719A3 publication Critical patent/WO2004086719A3/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols

Definitions

  • the present invention relates to client / server environments in which connections are established by the clients on the servers through one or more transmission networks, mainly networks based on the TCP / IP protocol, the present invention in particular aiming to provide a such a secure system by design.
  • client computers Today, it is more and more common for client computers to access data provided by servers over the public Internet, private networks or a combination of both.
  • client / server architecture poses security problems due to the fact that it is possible to detect listening servers remotely and that it is possible for hackers to connect to them to take control of the hosts of these servers. (by discovering passwords or by exploiting security vulnerabilities) or to immobilize these servers (denial of service attacks).
  • Denial of Service (DoS) attacks make servers inaccessible by drowning them under a large number of connections in order to prevent the servers from responding to legitimate users.
  • DoS distributed denial of service
  • DDoS distributed denial of service
  • New variants use third-party servers or routers as mirrors to multiply attacks while remaining completely anonymous. Recent news shows that these malicious acts are increasing in number and that no one is spared. It is therefore very important to secure all machines connected to the Internet (including the general public) so that they cannot be used to attack servers.
  • firewalls To secure the servers we thought of using longer and more complex passwords, to filter accepted IP addresses and various devices such as firewalls are set up at great cost to act as a barrier in front of each server in order to limit attacks. Unfortunately, since it is possible to impersonate, these measures do not protect against brute-force password attacks, exploitation of server or operating system security vulnerabilities, or denial attacks on duty. In addition, the implementation of effective firewalls presents several problems apart from their cost of acquisition and maintenance. Indeed, firewalls must be configured to allow outside users to reach protected machines. This obligation creates technical, legal and logistical problems, is expensive in time and in qualified personnel and involves manipulations involving risks of errors which can lead to breakdowns or breaches of security. Solutions for passing through firewalls exist but their use remains very limited because of the very heavy infrastructure to set up to exploit them. In addition, their embodiment uses components that are ill-suited, obsolete, ineffective and otherwise dangerous from a security point of view.
  • the object of the invention is to provide a secure client / server data transmission system in which the servers that have become clients no longer accept any incoming connection, which avoids any computer attack such as denial of service.
  • another object of the invention is to carry out a method of transmission through a data network in which the establishment of a connection from a client to a server is carried out by means of a central server alone capable to receive connection requests.
  • the object of the invention is therefore a data transmission system comprising at least one data transmission network, one or more client machines connected to the network and one or more server machines also connected to the network, each of the client machines being able to be connected. at a given time to one or more of the server machines to exchange data with it (each of the server machines can receive several connections at the same time).
  • the system comprises a central server connected to the network, each of the server machines comprising server connection means making it possible to establish a permanent connection to the central server, and each of the client machines comprising client connection means making it possible to establish a temporary connection.
  • FIG. 1 is a schematic representation of a data transmission system according to the invention
  • Figure 2 is a block diagram illustrating diagrammatically the client and server machines connected to the central server divided into its different components
  • Figure 3 is a flowchart of the process implemented in the central server for establishing a new connection
  • FIG. 4 is a flow diagram of the method implemented in the central server for sending a message from a client or server machine to one or more client or server machines,
  • Figure 5 is a flow chart of the process implemented in the central server for establishing a bidirectional bridge
  • Figure 6 is a flow chart of the process implemented in the central server for establishing a session interactive remote control or file transfer between a client machine and a server machine
  • Figure 7 is a flowchart of the process implemented in the central server to record a change of state submitted by a client or server machine
  • FIG. 8 is a flow diagram of the method implemented in the central server for the processing of a search request initiated by a client machine of server machines available on the network.
  • a data transmission system according to the invention illustrated in FIG. 1 is built around a network of transmission of data such as the Internet network 10.
  • Client machines or computers 12, 14, 16 are connected to this network and, on the other hand, servers or server machines 18, 20, 22.
  • the connections are always outgoing, that is to say made on the initiative of the client or server machines.
  • the connections are all intended for a central server 24 which is designed to connect a client machine with a server machine by establishing a two-way bridge between the connections established by each of the two machines. Note that there could be several central servers sharing the total load.
  • each client machine has connection software of approximately 650 KB and each server machine has software of approximately 80 KB, these two files being able to be used at the same time on the same machine.
  • the central server has connection software in the form, for example, of an executable file of around 650 KB written in C ++ language.
  • the software of a server machine or a client machine establishes a permanent connection and initializes the automatic registration of this machine with the central server as soon as the server machine connects to the Internet.
  • a non-permanent link is established on request during an SOS call sent by the user of the server machine as described below.
  • the central server and client machines can be any type of The central server and client machines.
  • the access authorizations of the machines are centralized in a database which the central server maintains to keep the list of machines and users, the history of operations and any other useful information. They allow rights to be defined by detailing the functions available per user on each machine, knowing that a client machine can only be used by an authorized user and that if this client machine has also been previously authorized in the server database central. All connections must go through the central server, it is impossible to bypass access rights checks.
  • the client and server machines such as the machines 12, 22 illustrated in FIG. 2 automatically register when the machine starts or on the initiative of the user in the database 32 of the central server. If the right electronic signature scheme, the right private key, the right encryption algorithm and the correct syntax are used, the connection of the machine to the network interface 26 of the central server is carried out after its validation and authentication by the processing unit 30 of the central server. The central server then lets the operating system maintain the inactive connections of permanently in RAM 28 until the central server needs one of these connections.
  • the RAM memory 28 as well as, in general, the resources of the central server are recycled because in the event of an unexpected permanent connection break with a client or server machine, the connection left open on the central server side will be closed when a new permanent connection is established. restored by this same machine with the central server.
  • a connection request begins at the central server by receiving a connection from a client or server machine (step 34).
  • the central server determines whether there remains one free thread among the group of threads created by the central server to process the incoming connections (step 36).
  • a "thread” designating in the present description an "autonomous execution unit”. If there is no free thread, it must be determined whether another central server is likely to process the request (step 48), transmit the request to this other central server (step 52) and properly close the connection (step 54) before the thread is released (step 58). If there is no other central server, a message indicating that the server is unavailable is transmitted to the machine (step 50) and the connection is closed properly (step 54) before the thread is released (step 58) .
  • the request is processed by the thread (step 38) and there is verification of the validity of the signature and of the other security measures (step 40). If the verification is negative, the connection is terminated by abrupt closure and the request is saved (step 56) before the thread is released (step 58). Otherwise, the request is decrypted and saved (step 42). The central server then checks whether the request is valid, that is to say if the syntax of the command is correct (step 44). If this is the case, the request is treated (step 46) differently depending on whether it is a change of state, a search, an online discussion, a check to distance or file transfer as we will see later. Otherwise, the connection is abruptly cut off and saved (step 56) before the thread is released (step 58).
  • Establishing a connection to the central server used to transmit data to one or more recipient machines requires the creation of one or more dissemination means such as unidirectional links used to transmit information to one or more machines. server.
  • An example illustrating this case is described below with the online chat for two or in conference mode for more than two (Chat).
  • the method for establishing an online chat between a client machine and one or more server machines is now described with reference to Figure 8. Note that a new connection has already been established between a client machine and the central server as described previously with reference to FIG. 3.
  • the central server first checks in its database whether the client machine is authorized to communicate with the central server (step 60). If not, the central server terminates proper to the connection (step 70) and frees the thread used for the connection in Figure 3.
  • the central server checks in its database, for each of the requested server machines, whether the user of the client machine has the necessary rights to be connected to the requested server machines.
  • step 62 and if the permanent connection between the central server and the requested machine is still operational: the permanent connection is retrieved from the database (step 64) and verified (step 66). If not, the central server goes to the next recipient machine and ends the connection properly if there are no more recipients for the message. If the connection is operational and the rights valid, the central server sends the message received from the client machine to all the server machines accessible according to the rights and whose permanent connection is operational (step 72). Note: the central server can optionally send a message before closing the connection to inform the client who sent the message that this or that correspondent was not available or was not authorized to be contacted. Finally, after sending the message, the central server properly terminates the connection (step 70) and frees the thread.
  • the central server transmits an order to the recipient server machine asking it to establish a new permanent connection to replace the existing permanent connection that will be used (step 74).
  • a bidirectional bridge by the central server so as to establish the link between the new connection of the client machine having made the request and the old permanent connection of the recipient server machine.
  • the establishment of such a bridge takes place in two stages.
  • To make the bidirectional bridge work there is first creation of a thread (step 76) to manage a unidirectional gateway in order to transfer the data coming from the source connection, i.e. the connection emanating from the machine which made the request, towards the recipient connection, ie the connection of the requested machine.
  • a second unidirectional gateway in order to transfer the data coming from the recipient connection to the source connection (step 78).
  • step 80 the main thread used for the connection in Figure 3 and having created the two threads of the bidirectional bridge is released (step 80). If one of the two connections is cut (steps 84 or 94), the other connection is closed properly (steps 86 or 96), which ends the process of the bidirectional bridge by the destruction in cascade of the two threads of the unidirectional gateways (steps 90 or 100).
  • a one-way gateway receives data from one of the connections, it transmits it to the other connection (steps 88 or 98), which maintains a two-way bridge between the two machines connected to the central server.
  • bidirectional bridge by the central server as described above takes place when it is necessary to create a bidirectional link of any kind whatsoever between a client machine and a server machine and in particular in the case of remote control of the server machine by the client machine, the client machine interacting in real time with the screen of the server machine reproduced on the screen of the client machine or in the case of a file transfer between the two machines.
  • unidirectional variant of this same bridge simply consists in creating a single gateway thread on the two created in the bidirectional case which can be useful when the message to send is too long or sent on too long
  • a new connection to the central server has been established 0 beforehand by the client machine as described with reference to FIG. 3.
  • the central server checks in its database whether the client machine is authorized to communicate with the central server (step 102). If this is not the case, the central server ends the connection 5 properly (step 112) before releasing the thread used for the connection in FIG. 3. If access is authorized, the central server checks in its database of data if the user of the client machine has the rights necessary to be connected to the destination server machine 0 (step 104). If this is not the case, the central server can transmit an "access denied" message to the client machine and then properly terminates the connection (step 112) before releasing the thread. If the machine and the client user have the required rights, the central server retrieves from its database
  • the central server checks whether the permanent connection between the server machine and the central server is still operational (step 108). If this is not the case, the central server can transmit a "resource unavailable" message to the client machine and then cleanly terminates the connection. If the connection is still operational, the central server then checks whether an SOS, i.e. a help request required by the user of the recipient server machine, is awaiting response (step 110). If this is the case, the central server signals the end of the SOS to the client machines which have a permanent operational connection and the right to access this server machine and updates the SOS table in its database (step 114 ).
  • SOS i.e. a help request required by the user of the recipient server machine
  • the link can be established by the creation of a bidirectional bridge as described with reference to FIG. 4.
  • the central server Apart from the links established between a client machine and a server machine by the central server, the central server must, in order to allow a client machine to locate a server machine and vice versa, deal with other connection requests relating in particular to the registration or change of condition of a machine and looking for an available machine according to one or more criteria.
  • the method used for registering or changing the status of a client or server machine is described with reference to Figure 7. It is first assumed that a new connection has been established by the machine which 5 identifies itself to the central server as described previously with reference to FIG. 3. The central server begins by checking whether the machine which identifies itself is already known (step 116). If this is not the case, the central server saves the new connection by adding the system identifier to a machine table in its database (step 128). If the machine is already known, the central server checks whether the request corresponds to an SOS from a server machine
  • step 118 If this is the case, the SOS is recorded in the SOS table located in the database of the central server and is transmitted to all the client machines online and having the right to access this server machine (step 130). After these operations or if it is not an SOS, the central server checks whether the status of the identifying machine and of its user are the same in the database.
  • step 132 the central server closes the old permanent connection of this machine if it was valid and saves the system identifier of the new permanent connection in its database (step 122). Then the central server checks whether the application version of the
  • step 124 machine that identifies itself is older than the version available on the central server (step 124). If this is the case, the central server automatically updates the application (step 134) on the machine which identifies itself and then the central server releases the thread (step 126) used for the connection in FIG. 3.
  • the method used for a search is now described with reference to FIG. 8. It is understood that a new connection has been established between a client machine and the central server as described previously with reference to FIG. 3.
  • the central server checks d first in its database if the client machine is authorized to communicate with the central server (step 136). If this is not the case, the central server can transmit an "access denied" message to the client machine and then cleanly terminates the connection (step 146) before releasing the thread used for the connection in FIG. 3.
  • the central server searches in its database for the machines corresponding to the criteria provided (step 138) and, for each machine found, it verifies that the user of the client machine having sent the request has the necessary rights to access the server machine (step 140) then it recovers the permanent connection of each of the machines from its database (step 148) in order to verify that the latter is indeed operational (step 150). If it is not the case, the central server can possibly transmit a message "access denied” or "machine unavailable" to the client machine and if there are no more machines corresponding to the search it then ends properly on connection before freeing the thread (step 146).
  • the central server creates a list of the machines found during the search and sends this list to the client machine (step 144) at the end of the search. Finally, the central server ends the connection properly (step 146) before releasing the thread.
  • the present invention can be implemented in all network architectures comprising a plurality of servers. It can be used with the TCP / IP protocol or any other connection-oriented protocol such as, for example: Packet Exchange Sequence (SPX) from Novell, System
  • SPX Packet Exchange Sequence
  • the system according to the invention is capable of reaching machines located on private networks without configuring routers or firewalls and allows deployment in complete security since the client and server machines are invisible and unassailable.
  • the system according to the invention is radically different, by the means employed and by its mode of operation, from the existing solutions for passing through firewalls consisting of a Web server using a Java server in CGI (Common Gateway Interface ), client-side Java applets, and an SQL server, because the central server is a self-contained server application that can operate completely autonomously.
  • CGI Common Gateway Interface
  • the software for connecting client machines, server machines and the central server is written in optimized portable C ++ and the latency times are reduced as much as possible since the central server alone has the function a Web server, a Java application server and a SQL server which eliminates the latency times generated by the processing of data by each of these components, the times latency induced by the translation of the necessary data between the components and the latency times created by the network transmission of the data between each of these different components.
  • the system according to the invention is independent of the HTTP protocol since the central server does not use this protocol and, therefore, does not present the performance and security problems inherent in this protocol.
  • connection management also allows uninterrupted access to any server machine even if it is already connected to a client machine.
  • this system is considerably easier, cheaper to set up and maintain than any other existing Help Desk solution using or not the passage through router and firewall since the registration of users and machines in the database is performed automatically, that no security measures or network configuration is necessary and that the deployment of the solution can be done on demand thanks to the small size of the server part (80 KB).
  • the clients also behave like servers and the servers like clients since an online discussion (Chat) can be initiated on both sides whether it is a client or a server which is installed on a machine. In the same way, the file transfer could here be initiated from a server.
  • DRM allows companies, manufacturers and service companies to monitor, manage and maintain smart devices in real time - such as: photocopiers, elevators, production lines, ATMs, cash registers, weather stations, fuel pumps, equipment medical or fleets of planes, trucks or boats - deployed to remote locations around the world. Intelligent agents deployed are not waiting for connections which protects them from any remote detection and makes it possible to avoid attacks.
  • the central DRM server includes, in addition to the normal functionalities of the central server, the function of "transparent tunnel” for any type of application, software or hardware, needing to ' transfer data in a secure and real-time way on distributed networks like the Internet.
  • This transparent tunnel function is implemented on the agent side (an "agent” which can be both a client and a server) and on the DRM server side in order to allow third-party software or a device to use the agent to reach d '' other agents or to request or send data to the DRM server and vice versa which makes it possible to set up a management logic adapted to each type of intelligent device with filters, alerts, business rules and data to provide to these devices or coming from these devices.
  • the DRM server is also useful for companies publishing network software: network programming is simplified to the extreme (it only remains to specify a recipient by name wherever he is in the world to send or ask him Datas) . In this case, only the part in contact with the DRM agent and the part in contact with the DRM server to be created - that is to say what defines the application itself (control of the automaton, acquisition of data, maintenance, accounting, point of sale management, etc.).
  • the DRM server is considerably easier to use, cheaper to set up and maintain than any other existing solution because it solves by itself all the technical difficulties linked to network access and the inherent security problems. to these accesses.
  • the advantages of the DRM server are so obvious that no organization could do without an equivalent solution in the long term. Thanks to the minor nature of the modifications to be made to the solutions already in place, it is possible to carry out a gradual migration allowing a mixed exploitation preserving the classic approach, by favoring the implementation of the central server technology in the most priority critical (this approach having been successfully tested in the Help Desk application presented in example 1).
  • gateways make it possible to transmit network traffic from two or more networks by the fact that the gateway is located astride these same networks by having a network interface in each of networks for which it redirects traffic.
  • the central server instead, uses only one network interface to transmit traffic from an infinity of source networks to an infinity of destination networks, regardless of the geographic location of the central server in relation to the topology of networks for which the central server redirects traffic.
  • the implementation of a system according to the invention makes it possible, by using the central server technology for a gateway (router, firewall, proxy, etc.), makes it possible to delocalize the network security currently distributed on a single and unique central server.
  • a gateway router, firewall, proxy, etc.
  • the agent (client or server) part of the invention takes charge of all the connections possible on all client and server machines.
  • the two client and server components can also be one or be installed together on each machine.
  • the central server manages everyone's needs thanks to fully secure distributed agents since they are undetectable and unassailable regardless of the location of machines in relation to the central server.
  • Machines do not have to be "hidden" behind the central server or even be located on a common private network segment - they can be deployed anywhere: directly connected to the Internet anywhere on Earth or installed on any which LAN).
  • This model is particularly suitable for remote work, in which the employees of a company are on the move or work from their home. With the central server, they are immediately protected wherever they are. Likewise, an ISP could protect all of its customers - saving them from having to install, configure and maintain expensive and often ineffective security equipment.
  • central servers can also be used in order to share the workload, each of them sending connections to its immediate neighbor when its limit of simultaneous connections is reached (the number of threads in the thread group of the central server can be defined according to the processing capacity of each central server).
  • the load sharing can for example adopt a hierarchical or serial connection scheme and can be combined with the database synchronization described below.
  • central servers can be synchronized with each other in real time so that if one of the servers becomes unavailable, the client and server machines use the following central server in their list of redundant servers, which is their list. provided when connecting to one of the central servers.
  • This system can be used for load sharing by distributing the client and server machines over several central servers even before a failure occurs.
  • This system is transparent to users and does not require any additional hardware dedicated to load sharing.
  • the system according to the invention has considerable advantages over existing systems. It is infinitely easier and more economical to use, safer and more efficient, since it does not use intermediate components which involve format conversions and translations with the sole aim of allowing them to interface to work together. .
  • One of the primary advantages is that customer security is ensured since: - clients and servers are invisible and unassailable from the network since they no longer accept any connection,
  • the central server is able to sort among the incoming connections because it only accepts users and machines authorized beforehand by the central server to communicate with each other,
  • the central server technology makes it possible to protect all users connected to the central server from any attack.
  • the central server is less expensive to protect, install and maintain than any of the servers it replaces since:
  • the central server technology allows it to be cloned and located anywhere to redirect traffic from an infinity of networks instead of having to be at the crossroads of these same networks,
  • central server technology authenticates machines and users even before they have had the opportunity to do anything - which makes it possible to automatically reject connections from unknown sources without unnecessarily exposing the central server or his host,
  • the redundant and load-sharing architecture of the central server protects it from denial of service attacks because, if a central server stops responding, clients change the central server automatically without interruption without having to use expensive switching devices dedicated to load sharing or redundancy.

Abstract

Système de transmission de données comprenant au moins un réseau de transmission de données (10), une ou plusieurs machines client (12, 14, 16) reliées au réseau et une ou plusieurs machines serveur (18, 20, 22) également reliées au réseau, chacune des machines client pouvant être connectée à un instant donné à l'une des machines serveur pour échanger des données avec celle-ci. Ce système comprend au moins un serveur central (24) relié au réseau, chacune des machines serveur comprenant des moyens de connexion serveur permettant d'établir une connexion 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.

Description

Système de transmission de données client/serveur sécurisé
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 protocole TCP/IP, la présente invention visant en particulier à fournir un tel système sécurisé de par sa conception.
Aujourd' nui,, 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 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 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 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 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é. II est donc très important de sécuriser toutes les machines connectées à Internet (grand public inclus) afin é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 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, les pare-feu doivent être configurés pour permettre à des utilisateurs de 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é. 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 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 à 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 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 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é 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 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 é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 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 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 : o La figure 1 est une représentation schématique d'un système de transmission de données selon l'invention, o La figure 2 est un bloc-diagramme illustrant sché atiquement 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 œuvre dans le serveur central pour l'établissement d'une nouvelle connexion,
• La figure 4 est un organigramme du procédé mis en œuvre dans le serveur central pour l'envoi d'un message d'une une machine client ou serveur à une ou plusieurs machines client ou serveur,
• La figure 5 est un organigramme du procédé mis en œuvre dans le serveur central pour l'établissement d'un pont bidirectionnel, • La figure 6 est un organigramme du procédé mis en œuvre 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 œuvre 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 œuvre dans le serveur central pour le traitement d'une demande 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 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 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 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é, 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 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 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) 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 (" eep alive") pour détecter les coupures de connexion et rétablir une connexion 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. 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 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 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 à 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 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 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 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 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". 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 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 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 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, 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 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 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 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 (é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 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 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 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 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 i ' 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 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 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 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 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 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 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 œuvre la méthode décrite précédemment pour la discussion en ligne (Chat) .
La méthode mise en œuvre 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 0 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 5 à 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 0 (é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
!5 données 1 ' 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 0 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 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. 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 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 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é. Pour ces raisons, le serveur central doit absolument maintenir une liste en temps-ré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 à 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 0 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 5 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
'.0 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
5 . (é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
) 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 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 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 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 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 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 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 : Séquence Packet Exchange (SPX) de Novell, System
Network Architecture (SNA) d'IBM, Open Systems Interconnection
OSI/X25 Connection Oriented Networking Service (CONS) , Xerox 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 entreprises, il faut installer 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 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 pare-feu 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 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++ 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 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 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 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 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 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 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 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 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 é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 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 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 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 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 à 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 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 œuvre d'un système selon l'invention permet, en utilisant la technologie du serveur central pour une 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 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" 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 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 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. 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 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 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 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 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 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 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 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 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 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 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 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 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 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 clone 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 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 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 + vulnerability' ) ,
- 1 ' 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 .

Claims

REVENDICATIONS
1. Système de transmission de données comprenant au moins un 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é, par l'intermédiaire dudit serveur central, à l'une desdites machines serveur pour échanger des données avec celle-ci; ledit système étant caractérisé en ce que lesdites machines serveur ou client ne disposent pas de moyens leur permettant de recevoir des connexions entrantes, mais chacune desdites machines serveur comprend des moyens de connexion client lui permettant d' établir une connexion permanente avec ledit serveur central et chacune desdites machines client comprend des moyens de connexion client lui permettant d'établir une connexion provisoire avec ledit serveur central, et ledit serveur central comprend des moyens de connexion permettant d' établir un pont bidirectionnel pour interconnecter une machine client et une machine serveur dans le but d'échanger des données, ledit pont bidirectionnel comprenant une passerelle unidirectionelle permettant le transfert de données de ladite connexion provisoire vers ladite connexion permanente et une passerelle unidirectionelle 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.
2. Système de transmission de données selon la revendication 1, dans lequel lesdits moyens de connexion de serveur central demandent audits moyens de connexion client de ladite machine serveur (18, 20, 22) d'établir une nouvelle connexion permanente vers ledit serveur central (24) pour chaque nouveau pont bidirectionnel créé.
Système selon la revendication 1 ou la revendication 2, dans 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) .
4. Système selon l'une quelconque des revendications 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) .
5. 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é 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.
6. 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) 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 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.
7. Système selon la revendication 6, 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 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.
8. Système selon la revendication 7, dans lequel, suite à la 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 sauvegarde alors ladite connexion provisoire en tant que nouvelle connexion permanente pour ladite machine client ou serveur.
9. 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) 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 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.
10. Système selon l'une quelconque des revendications 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 ("keep alive") au serveur central (24) afin de détecter des coupures de connexion et rétablir une connexion dès que possible.
11. 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.
12. 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, 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.
13. Système selon la revendication 1, 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 géographique du serveur central par rapport à ces réseaux.
PCT/FR2004/000613 2003-03-18 2004-03-12 Systeme de transmission de donnees client/serveur securise WO2004086719A2 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/544,376 US20060168239A1 (en) 2003-03-18 2004-03-12 Secure client/server data transmission system
DE112004000125T DE112004000125T5 (de) 2003-03-18 2004-03-12 Gesichertes Client-Server-Datenübertragungssystem

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0303268A FR2852753B1 (fr) 2003-03-18 2003-03-18 Systeme de transmission de donnees client/serveur securise
FR03/03268 2003-03-18

Publications (2)

Publication Number Publication Date
WO2004086719A2 true WO2004086719A2 (fr) 2004-10-07
WO2004086719A3 WO2004086719A3 (fr) 2004-11-04

Family

ID=32922238

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2004/000613 WO2004086719A2 (fr) 2003-03-18 2004-03-12 Systeme de transmission de donnees client/serveur securise

Country Status (4)

Country Link
US (1) US20060168239A1 (fr)
DE (1) DE112004000125T5 (fr)
FR (1) FR2852753B1 (fr)
WO (1) WO2004086719A2 (fr)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100578476C (zh) * 2005-01-25 2010-01-06 松下电器产业株式会社 通信终端、终端切换系统以及终端切换方法
US7765305B2 (en) * 2005-04-07 2010-07-27 Microsoft Corporation Retry request overload protection
US8161554B2 (en) * 2005-04-26 2012-04-17 Cisco Technology, Inc. System and method for detection and mitigation of network worms
US7519694B1 (en) * 2005-08-24 2009-04-14 Sun Microsystems, Inc. Method and a system to dynamically update/reload agent configuration data
US8312135B2 (en) 2007-02-02 2012-11-13 Microsoft Corporation Computing system infrastructure to administer distress messages
US8199671B2 (en) * 2008-06-09 2012-06-12 Hewlett-Packard Development Company, L.P. Throttling network traffic generated by a network discovery tool during a discovery scan
US8364945B2 (en) * 2008-06-19 2013-01-29 Microsoft Corporation Provisioning an unknown computer system
JP2010015475A (ja) * 2008-07-07 2010-01-21 Nec Personal Products Co Ltd 情報処理端末およびクライアントサーバシステム
US20100235515A1 (en) * 2009-03-16 2010-09-16 Posco Ict Company Ltd. Method and apparatus for managing connection
CA3104598A1 (fr) * 2018-06-29 2020-01-02 Cryptometry Canada Inc. Pont de communications
US10740085B2 (en) * 2018-11-30 2020-08-11 Target Brands, Inc. Webserver interface for deployment management tool

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0828367A2 (fr) * 1996-08-23 1998-03-11 Matsushita Electric Industrial Co., Ltd. Système et serveur Proxy
EP1128613A2 (fr) * 2000-01-18 2001-08-29 Lucent Technologies Inc. Procédé et dispositif pour l'équilibrage de charge des services de réseau
US20010056476A1 (en) * 2000-06-20 2001-12-27 International Business Machines Corporation System and method for accessing a server connected to an IP network through a non-permanent connection
US20030037100A1 (en) * 2000-07-17 2003-02-20 Modelwire, Inc. Streamlined data distribution system for commercial applications

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5421009A (en) * 1993-12-22 1995-05-30 Hewlett-Packard Company Method of remotely installing software directly from a central computer
GB2305270A (en) * 1995-09-15 1997-04-02 Ibm Bridge for a client-server environment
US5943478A (en) * 1997-04-04 1999-08-24 Flash Communications, Inc. System for immediate popup messaging across the internet
US6298039B1 (en) * 1998-01-31 2001-10-02 Lucent Technologies Inc. High availability distributed call processing method and apparatus
US6438133B1 (en) * 1998-09-09 2002-08-20 Cisco Technology, Inc. Load balancing mechanism for a translational bridge environment
US6487587B1 (en) * 1999-03-01 2002-11-26 Sun Microsystems, Inc. Method and system for data processing by proxy
EP1176760A1 (fr) * 2000-07-27 2002-01-30 Telefonaktiebolaget Lm Ericsson Procédé de connection d'un terminal à un serveur
FR2824930B1 (fr) * 2001-05-15 2005-02-04 Deuxieme Tete Procede de communication et/ou de partage de ressources machines, au sein d'un reseau de communication, entre une pluralite de membres d'une communaute
KR100440583B1 (ko) * 2002-05-16 2004-07-19 한국전자통신연구원 외부 인터넷에 의한 댁내망의 UPnP장치 관리제어 장치및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0828367A2 (fr) * 1996-08-23 1998-03-11 Matsushita Electric Industrial Co., Ltd. Système et serveur Proxy
EP1128613A2 (fr) * 2000-01-18 2001-08-29 Lucent Technologies Inc. Procédé et dispositif pour l'équilibrage de charge des services de réseau
US20010056476A1 (en) * 2000-06-20 2001-12-27 International Business Machines Corporation System and method for accessing a server connected to an IP network through a non-permanent connection
US20030037100A1 (en) * 2000-07-17 2003-02-20 Modelwire, Inc. Streamlined data distribution system for commercial applications

Also Published As

Publication number Publication date
US20060168239A1 (en) 2006-07-27
WO2004086719A3 (fr) 2004-11-04
DE112004000125T5 (de) 2005-11-03
FR2852753A1 (fr) 2004-09-24
FR2852753B1 (fr) 2005-06-03

Similar Documents

Publication Publication Date Title
US20220046060A1 (en) System and method for providing network and computer firewall protection with dynamic address isolation to a device
US7428590B2 (en) Systems and methods for reflecting messages associated with a target protocol within a network
EP1854243B1 (fr) Mise en correspondance de paquet de reseau de protocole http chiffre vers un nom de localisateur de ressources universel et d'autres donnees sans dechiffrement hors d'un serveur securise
FR2844941A1 (fr) Demande d'acces securise aux ressources d'un reseau intranet
US20040103318A1 (en) Systems and methods for implementing protocol enforcement rules
FR2847752A1 (fr) Methode et systeme pour gerer l'echange de fichiers joints a des courriers electroniques
EP1844399A2 (fr) Balayage du trafic reparti, par etiquetage de securite de train de donnees
EP1965559B1 (fr) Procédé de sécurisation d'un flux de données
WO2004086719A2 (fr) Systeme de transmission de donnees client/serveur securise
EP3588903A1 (fr) Procédé, dispositif et serveur de distribution sécurisée d'une configuration à un terminal
EP1849257B1 (fr) Procede et equipements de controle d'acces a des flux ip multicast
EP1758338B1 (fr) Procédé et équipement de communication sécurisé pour le traitement des paquets de données selon le mécanisme SEND
CA2349773A1 (fr) Procede destine a assurer un controle d'acces pour et/ou vis-a-vis d'utilisateurs accedant par des terminaux au reseau internet, au travers d'un noeud d'acces prive, et agencements pour la mise en oeuvre d'un tel procede
EP2139198A1 (fr) Routeur associé à un dispositif sécurisé
EP3644146B1 (fr) Dispositif d'enregistrement d'intrusion informatique
EP3087719B1 (fr) Procédé de ralentissement d'une communication dans un réseau
JP3909289B2 (ja) ポータブルデバイスと企業ネットワークとの間の自発的仮想専用ネットワーク
FR2843847A1 (fr) Systeme permettant d'etablir une connexion telnet avec un dispositif eloigne depourvu de modem
EP2630765A1 (fr) Procede d'optimisation du transfert de flux de donnees securises via un reseau autonomique
WO2006134072A1 (fr) Procede de protection contre le piratage d'un terminal client utilisant une connexion securisee avec un serveur sur un reseau public
EP1510904B1 (fr) Procédé et système d'évaluation du niveau de sécurité de fonctionnement d'un équipement électronique et d'accès conditionnel à des ressources
WO2004015953A2 (fr) Procede et architecture de communication entre un equipement client et un module intermediaire situes tous les deux sur un reseau local
Wu Control E-commerce security
EP0955758A1 (fr) Procédé et dispositif d'interconnexion sécurisée entre des ordinateurs organisés en réseau

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2006168239

Country of ref document: US

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 10544376

Country of ref document: US

122 Ep: pct application non-entry in european phase
WWP Wipo information: published in national office

Ref document number: 10544376

Country of ref document: US