FR3119290A1 - METHOD FOR ESTABLISHING A SECURE POST-TO-POST COMMUNICATION CHANNEL, DEDICATED TO A NETWORK APPLICATION, BETWEEN TWO REMOTE NETWORK EQUIPMENTS - Google Patents

METHOD FOR ESTABLISHING A SECURE POST-TO-POST COMMUNICATION CHANNEL, DEDICATED TO A NETWORK APPLICATION, BETWEEN TWO REMOTE NETWORK EQUIPMENTS Download PDF

Info

Publication number
FR3119290A1
FR3119290A1 FR2100769A FR2100769A FR3119290A1 FR 3119290 A1 FR3119290 A1 FR 3119290A1 FR 2100769 A FR2100769 A FR 2100769A FR 2100769 A FR2100769 A FR 2100769A FR 3119290 A1 FR3119290 A1 FR 3119290A1
Authority
FR
France
Prior art keywords
equipment
connection
server
network
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR2100769A
Other languages
French (fr)
Inventor
Nicolas Fournil
Sébastien DEBOSQUE
Gilles MAREAU
Emmanuel DELOGET
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Eho Link
EhoLink
Original Assignee
Eho Link
EhoLink
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 Eho Link, EhoLink filed Critical Eho Link
Priority to FR2100769A priority Critical patent/FR3119290A1/en
Priority to PCT/FR2022/050150 priority patent/WO2022162317A1/en
Publication of FR3119290A1 publication Critical patent/FR3119290A1/en
Pending legal-status Critical Current

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/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4535Network directories; Name-to-address mapping using an address exchange platform which sets up a session between two nodes, e.g. rendezvous servers, session initiation protocols [SIP] registrars or H.323 gatekeepers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • 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/0272Virtual private networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

PROCEDE D’ETABLISSEMENT D’UN CANAL DE COMMUNICATION POSTE-A-POSTE SECURISE, DEDIE A UNE APPLICATION RESEAU, ENTRE DEUX EQUIPEMENTS RESEAU DISTANTS L’invention concerne un procédé d’établissement d’une liaison poste-à-poste, via un réseau public (IPN), entre une application client exécutée par un premier équipement réseau (UT) et une application serveur exécutée par un second équipement réseau (SRV), le procédé comprenant des étapes consistant à : transmettre par le premier équipement une requête de connexion (INV) à un serveur d’enregistrement (REGS), à destination du second équipement, la requête de connexion contenant des données de connexion du premier équipement au réseau public, recevoir par le premier équipement, du serveur d’enregistrement, une réponse de connexion (RINV) provenant du second équipement et contenant des données de connexion du second équipement au réseau public, établir par le premier équipement une liaison poste-à-poste (S29) entre l’application client et l’application serveur, à l’aide des données de connexion du premier et du second équipement. Figure pour l’abrégé : Fig. 6METHOD FOR ESTABLISHING A SECURE POST-TO-POST COMMUNICATION CHANNEL, DEDICATED TO A NETWORK APPLICATION, BETWEEN TWO REMOTE NETWORK EQUIPMENTS The invention relates to a method for establishing a peer-to-peer link, via a network (IPN), between a client application executed by a first network equipment (UT) and a server application executed by a second network equipment (SRV), the method comprising the steps of: transmitting by the first equipment a connection request ( INV) to a registration server (REGS), intended for the second equipment, the connection request containing connection data from the first equipment to the public network, to receive by the first equipment, from the registration server, a connection response (RINV) originating from the second equipment and containing connection data of the second equipment to the public network, establishing by the first equipment a peer-to-peer link (S29) between the client application and the app ication server, using the connection data of the first and second equipment. Figure for the abstract: Fig. 6

Description

PROCEDE D’ETABLISSEMENT D’UN CANAL DE COMMUNICATION POSTE-A-POSTE SECURISE, DEDIE A UNE APPLICATION RESEAU, ENTRE DEUX EQUIPEMENTS RESEAU DISTANTSMETHOD FOR ESTABLISHING A SECURE POST-TO-POST COMMUNICATION CHANNEL, DEDICATED TO A NETWORK APPLICATION, BETWEEN TWO REMOTE NETWORK EQUIPMENTS

La présente invention concerne l’établissement de connexions sécurisées entre équipements connectés au réseau Internet, les équipements réseau pouvant être protégés par des pares-feux et par des translations d’adresses réseau.The present invention relates to the establishment of secure connections between equipment connected to the Internet network, the network equipment being able to be protected by firewalls and by network address translations.

Pour sécuriser les communications entre ordinateurs distants ou entre deux réseau locaux distants, on a développé le système du réseau privé virtuel VPN ("Virtual Private Network") qui permet d’établir un canal direct entre des ordinateurs distants tout en isolant leurs échanges du reste du trafic transporté par des réseaux de télécommunication publics comme Internet. La connexion entre les ordinateurs est gérée de façon transparente par un logiciel de gestion de connexion VPN, créant un tunnel entre eux. Les ordinateurs interconnectés en VPN sont ainsi sur le même réseau local (virtuel), ce qui permet de passer outre d'éventuelles restrictions sur le réseau comme des pares-feux. En outre, les données transmises dans le canal VPN peuvent être chiffrées.To secure communications between remote computers or between two remote local networks, the virtual private network system VPN ("Virtual Private Network") has been developed, which makes it possible to establish a direct channel between remote computers while isolating their exchanges from the rest. traffic carried by public telecommunications networks such as the Internet. The connection between computers is handled transparently by VPN connection management software, creating a tunnel between them. The computers interconnected in VPN are thus on the same (virtual) local network, which makes it possible to bypass any restrictions on the network such as firewalls. Additionally, data transmitted in the VPN channel can be encrypted.

La f igure 1 représente schématiquement un canal VPN VC10 établi entre un terminal d’utilisateur UT1 et un serveur SRV1, via un réseau public IPN tel que le réseau Internet. Le terminal d’utilisateur UT1 est connecté au réseau IPN par l’intermédiaire d’un routeur ou d’une passerelle réseau GW1. Le serveur SRV1 est également connecté au réseau IPN par l’intermédiaire d’un routeur ou d’une passerelle réseau GW2. Les routeurs GW1, GW2 peuvent comprendre un pare-feu. Une interface réseau du terminal d’utilisateur UT1 peut être également équipée d’un pare-feu. Les liaisons VPN nécessitent l’ouverture de ports dans les pares-feux. Il s’avère que le maintien de ports ouverts constitue une faille de sécurité qui peut être exploitée pour réaliser des attaques visant à accéder au contenu d’un serveur SRV1 ou aux équipements connectés avec le serveur SRV1 dans un réseau local privé. L’établissement du canal VC10 avec le serveur SRV1 requiert généralement la fourniture par le terminal UT1 de données d’accès confidentielles (telles qu’un identifiant associé à un mot de passe). Or il existe de nombreux types d’attaques ciblant les terminaux d’utilisateur pour obtenir ces données d’accès, donnant accès au serveur SRV1 et au réseau local privé du serveur. Ces attaques exploitent les ports ouverts ou des programmes chargés dans les terminaux d’utilisateurs à l’insu des utilisateurs, conçu pour récupérer les données d’accès confidentielles au serveur SRV1.FIG. 1 schematically represents a VPN channel VC10 established between a user terminal UT1 and a server SRV1, via a public network IPN such as the Internet network. The user terminal UT1 is connected to the IPN network via a router or a network gateway GW1. Server SRV1 is also connected to the IPN network through a router or a network gateway GW2. Routers GW1, GW2 may include a firewall. A network interface of the user terminal UT1 can also be equipped with a firewall. VPN connections require opening ports in firewalls. It turns out that keeping ports open constitutes a security flaw that can be exploited to carry out attacks aimed at accessing the content of an SRV1 server or the equipment connected with the SRV1 server in a private local network. The establishment of the channel VC10 with the server SRV1 generally requires the supply by the terminal UT1 of confidential access data (such as an identifier associated with a password). However, there are many types of attacks targeting user terminals to obtain this access data, giving access to the SRV1 server and the private local network of the server. These attacks exploit open ports or programs loaded in user terminals without the knowledge of the users, designed to recover confidential access data to the SRV1 server.

On a également proposé d’utiliser le mécanisme de redirection de port NAT/PAT ("Network Address Translation / Port Address Translation") pour rediriger un port ouvert par la passerelle GW2 par exemple vers un port local d’un serveur web hébergé par le serveur SRV1. Cette liaison nécessite également le maintien d’un port ouvert, ce qui constitue également une faille de sécurité.It has also been proposed to use the NAT/PAT ("Network Address Translation/Port Address Translation") port redirection mechanism to redirect a port opened by the gateway GW2, for example, to a local port of a web server hosted by the SRV1 server. This binding also requires keeping a port open, which is also a security hole.

La f igure 2 représente schématiquement un autre type de liaison VPN susceptible d’être établie entre le terminal d’utilisateur UT1 et un serveur SRV1 (ou un réseau local incluant le serveur), par l’intermédiaire du réseau public IPN. Cet autre type de liaison utilise un point central CP et un canal VPN VC2 préétabli entre le point central et le serveur SRV1 par l’intermédiaire de la passerelle GW2 connectée au réseau Internet IPN. Ici encore, le terminal d’utilisateur UT1 est connecté au réseau IPN par l’intermédiaire du routeur ou de la passerelle réseau GW1. L’établissement d’un canal VPN VC1 entre le terminal d’utilisateur UT1 et le point central CP nécessite également l’ouverture d’un port du côté du point central CP et la fourniture par le terminal UT1 de données d’accès confidentielles.FIG. 2 schematically represents another type of VPN link that can be established between the user terminal UT1 and a server SRV1 (or a local network including the server), via the public network IPN. This other type of link uses a central point CP and a pre-established VPN channel VC2 between the central point and the server SRV1 via the gateway GW2 connected to the Internet network IPN. Here again, the user terminal UT1 is connected to the IPN network via the router or the network gateway GW1. The establishment of a VPN channel VC1 between the user terminal UT1 and the central point CP also requires the opening of a port on the side of the central point CP and the provision by the terminal UT1 of confidential access data.

Il est donc souhaitable de sécuriser l’établissement d’un canal de communication dédié à l’exécution d’une application réseau, telle que VPN, entre deux équipements connectés à un réseau public, en évitant d’avoir à maintenir un port ouvert ou à fournir des données confidentielles lors de l’établissement du canal de communication.It is therefore desirable to secure the establishment of a communication channel dedicated to the execution of a network application, such as VPN, between two devices connected to a public network, avoiding having to maintain an open port or to provide confidential data when establishing the communication channel.

Des modes de réalisation concernent un procédé d’établissement d’un canal de communication poste-à-poste sécurisé, dédié à une application réseau, via un réseau public, entre un premier équipement réseau et un second équipement réseau, les premier et second équipements étant connectés au réseau public, le procédé comprenant des étapes consistant à : enregistrer la présence sur le réseau public du premier équipement, auprès d’un serveur d’enregistrement, le second équipement étant enregistré auprès du serveur d’enregistrement, émettre par le premier équipement une requête d’information de connexion à un serveur d’analyse de connexion, et recevoir par le premier équipement du serveur d’analyse de connexion des données de connexion publiques du premier équipement observées depuis le réseau public, transmettre par le premier équipement une requête de connexion au serveur d’enregistrement, à destination du second équipement, la requête de connexion contenant les données de connexion publiques du premier équipement, recevoir par le premier équipement, du serveur d’enregistrement, une réponse de connexion provenant du second équipement et contenant des données de connexion publiques du second équipement, observées depuis le réseau public, et sur réception de la réponse de connexion, établir par le premier équipement un canal de communication poste-à-poste avec le second équipement via le réseau public, à l’aide des données de connexion du premier et du second équipement, et connecter par le premier équipement une application client au canal de communication.Embodiments relate to a method for establishing a secure peer-to-peer communication channel, dedicated to a network application, via a public network, between a first network equipment and a second network equipment, the first and second equipment being connected to the public network, the method comprising steps consisting in: registering the presence on the public network of the first device, with a registration server, the second device being registered with the registration server, transmitting by the first equipment a connection information request to a connection analysis server, and to receive by the first equipment of the connection analysis server public connection data of the first equipment observed from the public network, to transmit by the first equipment a connection request to the recording server, intended for the second device, the connection request containing the public connection data es of the first equipment, receive by the first equipment, from the registration server, a connection response coming from the second equipment and containing public connection data of the second equipment, observed from the public network, and on reception of the connection response , establish by the first equipment a peer-to-peer communication channel with the second equipment via the public network, using the connection data of the first and the second equipment, and connect by the first equipment a client application to the channel Communication.

Selon un mode de réalisation, la requête de connexion comprend des données de connexion locale à une application serveur à connecter à l’application client, pour permettre au second équipement de connecter l’application serveur au canal de communication.According to one embodiment, the connection request includes local connection data to a server application to be connected to the client application, to allow the second device to connect the server application to the communication channel.

Selon un mode de réalisation, le procédé comprend des étapes consistant à : transmettre par le premier équipement une nouvelle requête de connexion au serveur d’enregistrement, à destination du second équipement, la requête de connexion contenant des données de connexion locale à une nouvelle application serveur à connecter à une nouvelle application client, et connecter par le premier équipement la nouvelle application client au canal de communication.According to one embodiment, the method comprises steps consisting in: transmitting by the first equipment a new connection request to the registration server, intended for the second equipment, the connection request containing local connection data to a new application server to connect to a new client application, and connecting by the first device the new client application to the communication channel.

Des modes de réalisation peuvent également concerner un procédé d’établissement d’un canal de communication poste-à-poste sécurisé, dédié à une application, via un réseau public, entre un premier équipement réseau et un second équipement réseau, les premier et second équipements étant connectés au réseau public, le procédé comprenant des étapes consistant à : enregistrer la présence sur le réseau public du second équipement, auprès d’un serveur d’enregistrement, le premier équipement étant enregistré auprès du serveur d’enregistrement, recevoir par le second équipement une requête de connexion du serveur d’enregistrement, émise par le premier équipement, la requête de connexion contenant des données de connexion publiques du premier équipement, observées depuis le réseau public, émettre par le second équipement une requête d’information de connexion à un serveur d’analyse de connexion, et recevoir par le second équipement du serveur d’analyse de connexion des données de connexion publiques du second équipement, observées depuis le réseau public, sur réception de la requête de connexion, transmettre par le second équipement, au serveur d’enregistrement, une réponse de connexion à destination du premier équipement, contenant les données de connexion publiques du second équipement, sur réception de la réponse de connexion, établir par le second équipement un canal de communication poste-à-poste avec le premier équipement via le réseau public, à l’aide des données de connexion publiques du premier et du second équipement, et connecter par le second équipement une application serveur au canal de communication.Embodiments may also relate to a method of establishing a secure peer-to-peer communication channel, dedicated to an application, via a public network, between a first network equipment and a second network equipment, the first and second equipment being connected to the public network, the method comprising steps consisting in: registering the presence on the public network of the second equipment, with a registration server, the first equipment being registered with the registration server, receiving by the second equipment a connection request from the registration server, sent by the first equipment, the connection request containing public connection data of the first equipment, observed from the public network, sending by the second equipment a request for connection information to a connection analysis server, and receiving by the second equipment of the connection analysis server public connection data of the second equipment, observed from the public network, on receipt of the connection request, send by the second equipment, to the registration server, a connection response intended for the first equipment, containing the public connection data of the second equipment , upon receipt of the connection response, establishing by the second equipment a peer-to-peer communication channel with the first equipment via the public network, using the public connection data of the first and the second equipment, and connecting by the second equipment a server application to the communication channel.

Selon un mode de réalisation, la requête de connexion reçue comprend des données de connexion locale de l’application serveur, la connexion de l’application serveur au canal de communication étant effectuée à l’aide des données de connexion locale de l’application serveur.According to one embodiment, the connection request received includes local connection data of the server application, the connection of the server application to the communication channel being performed using the local connection data of the server application .

Selon un mode de réalisation, le procédé comprend des étapes consistant à : recevoir par le second équipement une nouvelle requête de connexion, la requête de connexion contenant des données de connexion locale d’une nouvelle application serveur, et connecter par le second équipement la nouvelle application serveur au canal de communication à l’aide des données de connexion locale de la nouvelle application serveur.According to one embodiment, the method comprises steps consisting in: receiving by the second equipment a new connection request, the connection request containing local connection data of a new server application, and connecting by the second equipment the new server application to the communication channel using the new server application's local connection data.

Selon un mode de réalisation, les données de connexion transmises par le serveur d’analyse aux premier et second équipements comprennent des données de connexion relatives à plusieurs points de connexion du premier équipement et plusieurs points de connexion du second équipement, l’établissement du canal de communication poste-à-poste entre les premier et second équipements, comprenant des étapes consistant à exécuter par les premier et second équipements une procédure de sélection de paramètres de connexion pour tester des paires de données de connexion associant des données de connexion d’un point d’accès du premier équipement et des données de connexion d’un point d’accès du second équipement, et sélectionner une des paires testées ayant permis aux premier et second équipements de communiquer, le canal de communication poste-à-poste étant établi sur la base de la paire de données de connexion sélectionnée.According to one embodiment, the connection data transmitted by the analysis server to the first and second equipment includes connection data relating to several connection points of the first equipment and several connection points of the second equipment, the establishment of the channel peer-to-peer communication between the first and second equipment, comprising steps consisting in executing by the first and second equipment a procedure for selecting connection parameters to test pairs of connection data associating connection data of a access point of the first equipment and connection data of an access point of the second equipment, and select one of the tested pairs having enabled the first and second equipment to communicate, the peer-to-peer communication channel being established based on the selected connection data pair.

Selon un mode de réalisation, la procédure de sélection de paramètres de connexion est conforme à au moins l’un des protocoles suivants : le protocole ICE, le protocole STUN, et le protocole TURN.According to one embodiment, the connection parameter selection procedure complies with at least one of the following protocols: the ICE protocol, the STUN protocol, and the TURN protocol.

Selon un mode de réalisation, l’application serveur est une application d’établissement d’une liaison VPN, ou une application de contrôle d’un équipement réseau comme une imprimante réseau ou un routeur, ou une application d’accès à une base de données.According to one embodiment, the server application is an application for establishing a VPN connection, or an application for controlling network equipment such as a network printer or a router, or an application for accessing a database. data.

Selon un mode de réalisation, les transmissions de données entre le premier équipement et/ou le second équipement, d’une part et d’autre part, le serveur d’enregistrement sont effectuées par un canal de transmission sécurisé, et/ou les transmissions de données entre le premier équipement et/ou le second équipement, d’une part et d’autre part, le serveur d’analyse de connexion sont effectuées par un canal de transmission sécurisé, et/ou les transmissions de données entre le premier équipement et le second équipement, par le canal de communication poste-à-poste sont effectuées par un canal de transmission sécurisé.According to one embodiment, the data transmissions between the first equipment and/or the second equipment, on the one hand and on the other hand, the recording server are carried out by a secure transmission channel, and/or the transmissions of data between the first equipment and/or the second equipment, on the one hand and on the other hand, the connection analysis server are carried out by a secure transmission channel, and/or the data transmissions between the first equipment and the second equipment, by the peer-to-peer communication channel are carried out by a secure transmission channel.

Selon un mode de réalisation, les transmissions de données entre le premier équipement et/ou le second équipement, d’une part et d’autre part, le serveur d’enregistrement sont effectuées : conformément au protocole SIP sur UDP ou sur TCP, sécurisé ou non par le protocole TLS, ou par un canal VPN, ou bien conformément au protocole WebSocket sécurisé ou non par un canal VPN, ou bien conformément au protocole WebRTC sécurisé ou non par un canal VPN.According to one embodiment, the data transmissions between the first equipment and/or the second equipment, on the one hand and on the other hand, the registration server are carried out: in accordance with the SIP protocol over UDP or over TCP, secured or not by the TLS protocol, or by a VPN channel, or in accordance with the WebSocket protocol, secured or not by a VPN channel, or in accordance with the WebRTC protocol, secured or not by a VPN channel.

Selon un mode de réalisation, le serveur d’enregistrement et le serveur d’analyse de connexion sont mis en œuvre dans un unique serveur.According to one embodiment, the registration server and the connection analysis server are implemented in a single server.

Des modes de réalisation peuvent également concerner un équipement réseau associé à un circuit pour se connecter à un réseau public, l’équipement étant configuré pour mettre en œuvre l’un des procédés tels que définis précédemment.Embodiments may also relate to network equipment associated with a circuit for connecting to a public network, the equipment being configured to implement one of the methods as defined previously.

Selon un mode de réalisation, l’équipement réseau comprend un routeur et un pare-feu, le canal de communication étant établi au travers du routeur et du pare-feu.According to one embodiment, the network equipment comprises a router and a firewall, the communication channel being established through the router and the firewall.

Selon un mode de réalisation, l’équipement réseau se présente sous la forme d’un programme installé dans un terminal d’utilisateur ou un serveur, ou se présente sous la forme d’un circuit connectable à un terminal d’utilisateur ou à un serveur.According to one embodiment, the network equipment takes the form of a program installed in a user terminal or a server, or takes the form of a circuit that can be connected to a user terminal or to a server.

Des exemples de réalisation de l’invention seront décrits dans ce qui suit, à titre non limitatif en relation avec les figures jointes parmi lesquelles :Examples of embodiments of the invention will be described in the following, on a non-limiting basis in relation to the appended figures, among which:

les f igures 1 et 2 décrites précédemment, représentent schématiquement deux types de liaisons VPN établies entre un terminal d’utilisateur et un serveur, Figures 1 and 2 described above schematically represent two types of VPN links established between a user terminal and a server,

la f igure 3 représente schématiquement un canal de communication établi entre un terminal d’utilisateur et un serveur, selon un mode de réalisation, FIG. 3 schematically represents a communication channel established between a user terminal and a server, according to one embodiment,

la f igure 4 représente schématiquement différents blocs logiciels ou matériels pouvant être sollicités pour établir un canal de communication entre des applications réseau exécutées respectivement par un équipement client et un équipement serveur, selon un mode de réalisation, FIG. 4 schematically represents different software or hardware blocks that can be requested to establish a communication channel between network applications executed respectively by a client equipment and a server equipment, according to one embodiment,

les f igures 5A, 5B représentent plus en détail différents blocs logiciels ou matériels pouvant être sollicités respectivement côté équipement client et côté équipement serveur, pour établir un canal de communication entre des applications réseau distantes, selon un mode de réalisation, the figures 5A, 5B represent in more detail different software or hardware blocks that can be requested respectively on the client equipment side and on the server equipment side, to establish a communication channel between remote network applications, according to one embodiment,

la f igure 6 est un diagramme temporel schématique montrant différentes étapes d’un procédé d’établissement d’un canal de communication entre deux applications réseau exécutées par des équipements distants, selon un mode de réalisation. FIG. 6 is a schematic timing diagram showing different steps of a method for establishing a communication channel between two network applications executed by remote equipment, according to one embodiment.

La f igure 3 représente un canal de communication poste-à-poste sécurisé VC établi entre un terminal d’utilisateur UT et un serveur SRV, via un réseau public IPN tel que le réseau Internet. Le terminal d’utilisateur UT est connecté au réseau IPN par l’intermédiaire d’un routeur ou d’une passerelle réseau GWC. Le serveur SRV est également connecté au réseau IPN par l’intermédiaire d’un routeur ou d’une passerelle réseau GWS. La passerelle GWS et/ou GWC et/ou le terminal UT et/ou le serveur SRV peuvent comprendre un pare-feu.FIG. 3 represents a secure peer-to-peer communication channel VC established between a user terminal UT and a server SRV, via a public network IPN such as the Internet network. The user terminal UT is connected to the IPN network via a router or a network gateway GWC. The SRV server is also connected to the IPN network through a router or a GWS network gateway. The gateway GWS and/or GWC and/or the terminal UT and/or the server SRV can comprise a firewall.

L’établissement du canal de communication VC fait intervenir un serveur d’enregistrement REGS et un serveur d’analyse de connexion SISV, accessibles par le réseau IPN. Le serveur SISV est configuré pour fournir des informations (adresses IP - "Internet Protocol" / ports) de connexion au terminal UT et au serveur SRV. Une fois que le terminal UT et le serveur SRV disposent de ces informations de connexion, ils peuvent établir en toute sécurité un canal de communication ne nécessitant pas le maintien de ports ouverts ou la transmission en clair de données d’accès confidentielles via le réseau IPN.The establishment of the communication channel VC involves a registration server REGS and a connection analysis server SISV, accessible by the network IPN. The SISV server is configured to provide connection information (IP addresses - "Internet Protocol"/ports) to the terminal UT and to the server SRV. Once the terminal UT and the server SRV have this connection information, they can securely establish a communication channel that does not require the maintenance of open ports or the transmission in the clear of confidential access data via the IPN network. .

Le serveur d’enregistrement REGS peut être configuré pour permettre au terminal d’utilisateur UT et au serveur SRV de se connecter entre eux sans avoir à connaitre leurs données de connexion publiques réciproques. A cet effet, le serveur REGS peut mémoriser une table de correspondance entre des données d’identification d’équipements réseau et des paramètres de connexions publiques d’équipements réseaux préalablement enregistrés.The registration server REGS can be configured to allow the user terminal UT and the server SRV to connect to each other without having to know their reciprocal public connection data. To this end, the REGS server can memorize a table of correspondence between network equipment identification data and previously recorded network equipment public connection parameters.

L’établissement de la connexion du terminal UT ou du serveur SRV au serveur d’enregistrement REGS peut faire intervenir un composant sécurisé, matériel ou logiciel, intégré dans chacune des passerelles GWC, GWS, ou dans les équipements UT, SRV, et mémorisant de manière sécurisée des données d’accès confidentielles au serveur REGS.The establishment of the connection of the terminal UT or of the server SRV to the registration server REGS may involve a secure component, hardware or software, integrated in each of the gateways GWC, GWS, or in the equipment UT, SRV, and storing confidential access data to the REGS server in a secure manner.

La f igure 4 représente différents modules logiciels ou matériels intervenant dans l’établissement du canal de communication poste-à-poste sécurisé VC entre le terminal d’utilisateur UT et le serveur SRV, selon un mode de réalisation. Le terminal d’utilisateur UT et le serveur SRV comprennent respectivement un module client ECM et un module serveur ESM, incluant chacun un module de type "agent utilisateur" ("user agent") UAC, UAS et des modules applicatifs client MAPC et serveur MAPS. Les modules UAC, UAS comprennent chacun un module de communication VUPC, VUPS configurés pour gérer le canal de communication poste-à-poste VC établi à travers le réseau IPN et permettre aux modules applicatifs client MAPC et serveur MAPS d’utiliser ce canal de communication. Le canal VC peut être établi sur la base de protocoles IP tels que UDP ("User Datagram Protocol") ou TCP ("Transmission Control Protocol"). Les modules de communication VUPC, VUPS permettent de négocier l’établissement du canal de communication VC entre les agents utilisateur UAC, UAS avec l’aide des serveurs REGS et SISV, en utilisant par exemple les protocoles SIP ("Session Initiation Protocol"), STUN ("Simple Traversal of UDP through NATs" - "Network Address Translation") et négociation ICE ("Interactive Connectivity Establishment").FIG. 4 represents different software or hardware modules involved in establishing the secure peer-to-peer communication channel VC between the user terminal UT and the server SRV, according to one embodiment. The user terminal UT and the server SRV respectively comprise a client module ECM and a server module ESM, each including a "user agent" type module ("user agent") UAC, UAS and client application modules MAPC and server MAPS . The UAC, UAS modules each include a VUPC, VUPS communication module configured to manage the VC peer-to-peer communication channel established through the IPN network and allow the MAPC client and MAPS server application modules to use this communication channel . The VC channel can be established on the basis of IP protocols such as UDP ("User Datagram Protocol") or TCP ("Transmission Control Protocol"). The communication modules VUPC, VUPS make it possible to negotiate the establishment of the communication channel VC between the user agents UAC, UAS with the help of the servers REGS and SISV, using for example the protocols SIP ("Session Initiation Protocol"), STUN ("Simple Traversal of UDP through NATs" - "Network Address Translation") and ICE negotiation ("Interactive Connectivity Establishment").

Les modules applicatifs MAPC, MAPS comprennent par exemple un module VPNP pour établir un canal VPN, ou tout autre application client / serveur UUP utilisant le canal de communication VC et mettant en œuvre un protocole IP ("Internet Protocol") comme par exemple UDP, TCP, IPSec ("Internet Protocol Security"), ou GRE ("Generic Routing Encapsulation").The MAPC, MAPS application modules include, for example, a VPNP module for establishing a VPN channel, or any other UUP client/server application using the VC communication channel and implementing an IP ("Internet Protocol") protocol such as UDP, TCP, IPSec ("Internet Protocol Security"), or GRE ("Generic Routing Encapsulation").

Les f igures 5A, 5B représentent plus en détail les modules client ECM et serveur ESM, et en particulier les agents utilisateurs UAC, UAS et les modules applicatifs MAPC, MAPS. Les agents utilisateurs UAC, UAS comprennent respectivement les modules VUPS, VUPC, des modules d’aboutement PKC, PKS de connexion de paquets de données et un module TIPS mettant en œuvre la pile de protocoles IP. Chacun des modules PKC, PKS établit et gère un canal de communication interne à l’agent UAC, UAS, avec les modules applicatifs MAPC, MAPS en s’appuyant sur le module TIPS. Les modules PKC, PKS peuvent également gérer le paramétrage, le démarrage et l’arrêt des modules applicatifs MAPC, MAPS selon les besoins. Les agents utilisateur UAC, UAS disposent d’une liaison vers l’extérieur EL pour communiquer notamment avec les serveurs REGS et SISV par l’intermédiaire des modules VUPC, VUPS.FIGS. 5A, 5B represent the client ECM and server ESM modules in more detail, and in particular the user agents UAC, UAS and the application modules MAPC, MAPS. User agents UAC, UAS respectively include modules VUPS, VUPC, abutment modules PKC, PKS data packet connection and a TIPS module implementing the IP protocol stack. Each of the PKC, PKS modules establishes and manages an internal communication channel to the UAC, UAS agent, with the MAPC, MAPS application modules based on the TIPS module. The PKC, PKS modules can also manage the setting, starting and stopping of the MAPC, MAPS application modules as needed. The UAC and UAS user agents have a link to the outside EL to communicate in particular with the REGS and SISV servers via the VUPC and VUPS modules.

Il est à noter que l’un et/ou l’autre des modules applicatifs MAPC, MAPS peuvent être implémentés à l’extérieur des modules ECM et ESM, par exemple dans un réseau local connecté à ces derniers.It should be noted that one and/or the other of the application modules MAPC, MAPS can be implemented outside the ECM and ESM modules, for example in a local network connected to the latter.

La f igure 6 représente des étapes S1 à S34 d’un mode de réalisation d’un procédé d’établissement d’un canal de communication poste-à-poste sécurisé pour mettre en relation une application client APPC exécutée par le terminal UT avec une application serveur cible APPS exécutée par le serveur SRV.FIG. 6 represents steps S1 to S34 of an embodiment of a method for establishing a secure peer-to-peer communication channel to connect an APPC client application executed by the terminal UT with a APPS target server application executed by the SRV server.

A l’étape S1, l’agent utilisateur UAC du terminal UT est connecté au réseau IPN, et le module de communication VUPC émet une requête d’enregistrement REG à destination du serveur d’enregistrement REGS, au travers du routeur GWC / pare-feu FWC, matériel ou logiciel (étape S2). A l’étape S3, une réponse REP à la requête d’enregistrement REG est émise par le serveur REGS à destination du module VUPC de l’agent utilisateur UAC. A l’étape S4, la réponse REP est retransmise par le routeur GWC au travers du pare-feu FWC. La réponse REP fournie par le serveur REGS indique si l’enregistrement demandé par l’agent utilisateur UAC a réussi ou échoué.At step S1, the user agent UAC of the terminal UT is connected to the IPN network, and the communication module VUPC sends a registration request REG to the registration server REGS, through the router GWC / firewall. fire FWC, hardware or software (step S2). At step S3, a response REP to the registration request REG is sent by the server REGS to the module VUPC of the user agent UAC. At step S4, the REP response is retransmitted by the GWC router through the FWC firewall. The REP response provided by the REGS server indicates whether the registration requested by the UAC user agent succeeded or failed.

Au étapes S5, S6, S7, S8, une procédure identique à celle des étapes S1 à S4 est engagée par le module de communication VUPS de l’agent utilisateur UAS sur le serveur SRV au travers du routeur GWS / pare-feu FWS.At steps S5, S6, S7, S8, a procedure identical to that of steps S1 to S4 is initiated by the VUPS communication module of the UAS user agent on the SRV server through the GWS router / FWS firewall.

Les étapes S1 à S8 peuvent par exemple être effectuées conformément aux protocoles SIP et UDP ou TCP, tel que décrit dans le document de normalisation RFC3261, et plus précisément dans le chapitre 10 de ce document. La transmission des requêtes REG et des réponses REP peut être sécurisée à l’aide du protocole TLS ("Transport Layer Security"), tel que décrit dans le document de normalisation RFC5246 et/ou si nécessaire en passant par un canal VPN crypté. D’autres protocoles comme WebSocket (RFC7118) et WebRTC ("Web Real-Time Communication") peuvent également être utilisés pour réaliser les étapes S1 à S8.Steps S1 to S8 can for example be performed in accordance with the SIP and UDP or TCP protocols, as described in the standardization document RFC3261, and more specifically in chapter 10 of this document. The transmission of REG requests and REP responses can be secured using the TLS ("Transport Layer Security") protocol, as described in the standardization document RFC5246 and/or if necessary by passing through an encrypted VPN channel. Other protocols such as WebSocket (RFC7118) and WebRTC ("Web Real-Time Communication") can also be used to perform steps S1 to S8.

A l’étape S9, le module VUPC de l’agent utilisateur UAC communique avec le serveur SISV en lui transmettant une requête CEQ pour déterminer avec quelle adresse IP publique et par quel port, il est connecté au réseau IPN. La requête CEQ contient par exemple un numéro de transaction. Aux étapes S9, S10, la requête CEQ est transmise au serveur SISV au travers du routeur GWC / pare-feu FWC . A cet effet, le routeur GWC ouvre un port et effectue si nécessaire une translation d’adresse NAT ("Network Address Translation) et/ou de port PAT ("Network Address and Port Translation"). A l’étape S11, le serveur SISV reçoit la requête CEQ et envoie au module de communication VUPC de l’agent utilisateur UAC un message de réponse CER contenant par exemple le même numéro de transaction afin de permettre au module VUPC d’établir le lien entre la requête CEQ et la réponse CER. La réponse CER est reçue avec des données encapsulées contenant une adresse IP ("Internet Protocol") publique de l’émetteur de la requête et un numéro de port ouvert par le routeur / pare-feu GWC pour communiquer avec le serveur SISV. A l’étape S12, le message de réponse CER traverse le pare-feu FWC en passant par le port ouvert pour atteindre l’agent utilisateur UAC. A partir de l’étape S10, l’agent UAC est accessible directement depuis le réseau public IPN à l’adresse IP publique et sur le numéro de port indiqués dans le message de réponse CER, pendant un temps limité, typiquement de quelques secondes.At step S9, the VUPC module of the UAC user agent communicates with the SISV server by transmitting a CEQ request to it to determine with which public IP address and by which port, it is connected to the IPN network. The CEQ request contains for example a transaction number. At steps S9, S10, the CEQ request is transmitted to the server SISV through the router GWC/firewall FWC. To this end, the router GWC opens a port and carries out, if necessary, a translation of the NAT address ("Network Address Translation) and/or of the port PAT ("Network Address and Port Translation"). In step S11, the server SISV receives the CEQ request and sends to the VUPC communication module of the UAC user agent a CER response message containing for example the same transaction number in order to allow the VUPC module to establish the link between the CEQ request and the CER response The CER response is received with encapsulated data containing a public Internet Protocol ("IP") address of the requester and a port number opened by the GWC router/firewall to communicate with the SISV server. step S12, the CER response message passes through the FWC firewall through the open port to reach the UAC user agent From step S10, the UAC agent is accessible directly from the public network IPN to the public IP address and port number indicated in the response message CER, for a limited time, typically a few seconds.

A l’étape S13, le module de communication VUPC transmet au serveur REGS une requête de connexion INV à destination du serveur SRV. La requête de connexion contient notamment les identifiants des agents UAC et UAS, tels qu’enregistrés auprès du serveur REGS aux étapes S1 à S4 et S5 à S8. A l’étape S14, la requête traverse le routeur GWC / pare-feu FWC côté terminal UT pour atteindre le serveur REGS. A l’étape S15, le serveur REGS localise le serveur SRV à l’aide des informations figurant dans la requête INV, puis transmet la requête INV au serveur SRV. L’acheminement de la requête INV par le serveur REGS vers le serveur SRV suppose que les deux agents UAC et UAS aient été préalablement enregistrés auprès du serveur REGS. A l’étape S16, la requête INV traverse le routeur GWS / pare-feu FWS, côté serveur SRV, pour atteindre le module de communication VUPS de l’agent UAS.At step S13, the communication module VUPC transmits to the server REGS a connection request INV intended for the server SRV. The connection request contains in particular the identifiers of the UAC and UAS agents, as recorded with the REGS server in steps S1 to S4 and S5 to S8. At step S14, the request passes through the GWC router / FWC firewall on the terminal side UT to reach the REGS server. At step S15, the REGS server locates the SRV server using the information contained in the INV request, then transmits the INV request to the SRV server. The routing of the INV request by the REGS server to the SRV server assumes that the two agents UAC and UAS have been previously registered with the REGS server. At step S16, the INV request passes through the GWS router / FWS firewall, SRV server side, to reach the VUPS communication module of the UAS agent.

Selon un mode de réalisation, la requête INV comprend des données d’application relatives à une application serveur APPS à exécuter sur le serveur ou dans le réseau local du serveur SRV. Les données d’application comprennent par exemple un type et une donnée d’identification de l’application APPS, des données de connexion à l’application serveur incluant une adresse IP locale, un numéro de port et une désignation du protocole de communication à employer. Les données d’application peuvent également comprendre des données supplémentaires telles que des paramètres de fonctionnement, à transmettre pour le bon fonctionnement de l’application APPS. La requête INV comprend également des identifiants du terminal UT et du serveur SRV tels qu’enregistrés par le serveur REGS.According to one embodiment, the INV request comprises application data relating to an APPS server application to be executed on the server or in the local network of the server SRV. The application data includes for example a type and identification data of the APPS application, connection data to the server application including a local IP address, a port number and a designation of the communication protocol to be used . Application data may also include additional data such as operating parameters, to be transmitted for the proper functioning of the APPS application. The request INV also includes identifiers of the terminal UT and of the server SRV as recorded by the server REGS.

Un exemple de requête INV est présenté en Annexe I. Dans cet exemple, la requête INV correspond à un message "INVITE" défini et transmis conformément au protocole SIP ("Session Initiation Protocol"). Le corps du message inclut des données relatives au protocole SDP ("Session Description Protocol").An example of an INV request is presented in Appendix I. In this example, the INV request corresponds to an “INVITE” message defined and transmitted in accordance with the SIP (“Session Initiation Protocol”) protocol. The body of the message includes data relating to the SDP protocol ("Session Description Protocol").

Selon un mode de réalisation, la requête INV comprend une extension des protocoles SIP et SDP, incluant les balises suivantes :According to one embodiment, the INV request includes an extension of the SIP and SDP protocols, including the following tags:

- "m=<APP>" permettant de définir le type d’application réseau cible APPS ("VPN" dans l’exemple de l’Annexe I) à exécuter sur le serveur SRV ou dans le réseau local du serveur,- "m=<APP>" used to define the type of target network application APPS ("VPN" in the example in Appendix I) to be run on the SRV server or in the local network of the server,

- "a=<APP>-dst-ip" et "a=<APP>-dst-port" permettant de localiser l’application APPS dans l’environnement local du serveur SRV,- "a=<APP>-dst-ip" and "a=<APP>-dst-port" allowing to locate the APPS application in the local environment of the SRV server,

- "a=<APP>-dst-proto" définissant un protocole réseau IP compatible avec l’application serveur, tel que UDP ou TCP.- "a=<APP>-dst-proto" defining an IP network protocol compatible with the server application, such as UDP or TCP.

D’autres balises pourraient être utilisées pour transmettre des paramètres à l’application APPS, par exemple tels que "a=<APP>-param-1" … "a=<APP>-param-n" (n représentant le nombre de paramètres à transmettre).Other tags could be used to pass parameters to the APPS application, for example such as "a=<APP>-param-1" … "a=<APP>-param-n" (n representing the number of parameters to transmit).

Dans l’exemple de l’Annexe I, la requête INV est un message comprenant un entête et un corps. L’entête rassemble les données suivantes :In the example in Appendix I, the INV request is a message comprising a header and a body. The header contains the following data:

- la commande "INVITE" associée à un identifiant du serveur destinataire visé "<siteXX@REGS>" tel qu’enregistré par le serveur REGS, et un identifiant du protocole de signalisation concerné, à savoir SIP version 2.0,- une balise "Via :" définissant à nouveau le protocole de signalisation et sa version, ainsi que le protocole réseau "SIP/2.0/UDP", l’adresse IP et le port local de l‘émetteur de la requête “<IP_Local:port>”, une balise "branch" associée à un identifiant de transaction à utiliser pour chaque échange de la transaction,- the "INVITE" command associated with an identifier of the intended destination server "<siteXX@REGS>" as recorded by the REGS server, and an identifier of the signaling protocol concerned, namely SIP version 2.0, - a "Via :" again defining the signaling protocol and its version, as well as the "SIP/2.0/UDP" network protocol, the IP address and the local port of the sender of the request “<IP_Local:port>”, a "branch" tag associated with a transaction identifier to be used for each exchange of the transaction,

- des balises "From" et "To :" qui définissent les identifiants de l’émetteur et du destinataire de la requête "<Nomade1@REGS>", “<siteXX@REGS>” tels qu’enregistrés par le serveur REGS, la balise "from" étant accompagnée d’une étiquette "tag" générée aléatoirement à des fins d’identification,- "From" and "To:" tags which define the identifiers of the sender and recipient of the request "<Nomade1@REGS>", “<siteXX@REGS>” as recorded by the REGS server, the "from" tag being accompanied by a randomly generated "tag" label for identification purposes,

- une balise "Call-ID:" permettant d’identifier la connexion,- a "Call-ID:" tag used to identify the connection,

- une balise "CSeq:" introduisant un numéro de séquence associé à la commande SIP et incrémenté à chaque nouvelle commande,- a "CSeq:" tag introducing a sequence number associated with the SIP command and incremented with each new command,

- une balise "Max-Forwards:" définissant un nombre maximum de redirections qui est décrémenté à chaque redirection effectuée lors de la transmission de la commande INV,- a "Max-Forwards:" tag defining a maximum number of redirections which is decremented with each redirect carried out during the transmission of the INV command,

- une balise "Date:" introduisant la date et heure de l’envoi de la commande,- a "Date:" tag introducing the date and time the order was sent,

- une balise "content-type:" définissant le protocole utilisé dans le corps de la requête, ici le protocole SDP, et- a "content-type:" tag defining the protocol used in the body of the request, here the SDP protocol, and

- une balise "content-length" définissant la longueur en nombre d’octets du corps de la requête.- a "content-length" tag defining the length in number of bytes of the body of the request.

Le corps du message INV comprend un certain nombre de balises définies conformément au protocole SDP. Ces balises sont décrites plus en détail dans le document de normalisation RFC4566, et plus précisément dans le chapitre 5 de ce document. Le corps du message comprend notamment les balises suivantes :The INV message body includes a number of tags defined in accordance with the SDP protocol. These tags are described in more detail in the standardization document RFC4566, and more precisely in chapter 5 of this document. The message body includes the following tags:

- "v=0" indiquant un numéro de version du protocole SDP,.- "v=0" indicating a version number of the SDP protocol.

- "o= …." indiquant l’identifiant de l’initiateur de la transaction ("<Nomade1@REGS>"), tel que défini lors des étapes S1 à S4, ainsi qu’un identifiant et un numéro de version de session ("1590676221" et "1590676223"), le type de réseau auquel est connecté l’émetteur de la requête ("IN" pour Internet), le type d’adresse dans le réseau ("IP4" pour Internet Protocol v4), et l’adresse IP de l’émetteur ("86.203.229.181"),- "o= …." indicating the identifier of the initiator of the transaction ("<Nomade1@REGS>"), as defined during steps S1 to S4, as well as an identifier and a session version number ("1590676221" and "1590676223 "), the type of network to which the sender of the request is connected ("IN" for Internet), the type of address in the network ("IP4" for Internet Protocol v4), and the IP address of the sender ("86.203.229.181"),

- "c=IN IP4 86.203.229.181" indiquant à nouveau le type de réseau auquel est connecté l’émetteur de la requête ("IN" pour Internet), le type d’adresse dans le réseau ("IP4"), et l’adresse IP ("86.203.229.181"),- "c=IN IP4 86.203.229.181" again indicating the type of network to which the sender of the request is connected ("IN" for Internet), the type of address in the network ("IP4"), and l 'IP address ("86.203.229.181"),

- "m=<APP> 4003 UDP 0" définissant normalement un type de média utilisé, mais qui est ici redéfinie pour identifier une application serveur cible "<APP>" (identifiant l’application APPS dans l’exemple de la f igure 6),et identifier un protocole "UDP" à utiliser pour l’échange de paquets de données avec l’application, un premier numéro de port public susceptible d’être utilisé pour établir le canal de communication , et un numéro de version du protocole "0" visé par la requête.- "m=<APP> 4003 UDP 0" normally defining a type of media used, but which is here redefined to identify a target server application "<APP>" (identifying the APPS application in the example of figure 6 ), and identify a "UDP" protocol to be used for exchanging data packets with the application, a first public port number likely to be used to establish the communication channel, and a protocol version number " 0" targeted by the request.

Le corps de la requête INV comprend également des balises "a=…" incluant chacun une étiquette associée à des paramètres, notamment des paramètres de connexion réseau à utiliser pour sélectionner avec le serveur SRV la "meilleure" connexion. Ainsi, les balises "a=…" comprennent des paramètres "ice-ufrag" et "ice-pwd" permettant de spécifier un identifiant et un mot de passe choisis aléatoirement et utilisés pour assurer l’intégrité du contenu des messages échangés.The body of the INV request also includes “a=…” tags each including a label associated with parameters, in particular network connection parameters to be used to select with the SRV server the “best” connection. Thus, the "a=…" tags include "ice-ufrag" and "ice-pwd" parameters making it possible to specify a randomly chosen identifier and password used to ensure the integrity of the content of the messages exchanged.

Les balises "a=…" comprennent également des paramètres " candidate" définissant chacun un point de connexion obtenu aux étapes S9-S12. Les balises "a =candidate" présentent la syntaxe suivante :The “a=…” tags also include “candidate” parameters each defining a connection point obtained in steps S9-S12. The "a =candidate" tags have the following syntax:

a=candidate :<foundt> <compID> <transp> <prio> <connect-add> <port> <cand-typ> <rel-add> <rel-port>a=candidate:<foundt> <compID> <transp> <prio> <connect-add> <port> <cand-typ> <rel-add> <rel-port>

dans laquelle :in which :

- <foundt> identifie plusieurs candidats du même type, partageant la même base et provenant du même serveur SISV,- <foundt> identifies several candidates of the same type, sharing the same database and coming from the same SISV server,

- <compID> identifie un composant spécifique du flux de données à transmettre par la connexion,- <compID> identifies a specific component of the data stream to be transmitted by the connection,

- <transp> indique le protocole à utiliser,- <transp> indicates the protocol to use,

- <prio> indique un numéro de priorité,- <prio> indicates a priority number,

- <connect-add> indique une adresse possible d’accès à l’agent UAC,- <connect-add> indicates a possible address for accessing the UAC agent,

- <port> indique un numéro de port possible d’accès à l’agent UAC- <port> indicates a possible port number for accessing the UAC agent

- <cand-type> indique un type du point de connexion, par exemple "typ host" ou "typ srflx" respectivement pour un point provenant de la machine locale ou d’un serveur réflexif de type STUN par exemple,- <cand-type> indicates a type of the connection point, for example "typ host" or "typ srflx" respectively for a point coming from the local machine or from a reflexive server of the STUN type for example,

- <rel-add> and <rel-port> indiquent des adresses et des ports du point de connexion, utiles notamment à des fins de diagnostic.- <rel-add> and <rel-port> indicate addresses and ports of the connection point, useful in particular for diagnostic purposes.

Les données de connexion réseau reçues à l’étape S12 sont utilisées pour spécifier la requête INV et en particulier les balises "a=candidate". La première balise "a=candidate" présentée en Annexe I contient les adresses IP publique / ports ouverts dans le pare-feu FWC à l’étape S10.The network connection data received at step S12 is used to specify the INV request and in particular the "a=candidate" tags. The first "a=candidate" tag presented in Appendix I contains the public IP addresses / ports opened in the FWC firewall at step S10.

A la suite de la réception de la requête INV à l’étape S16, le module VUPS de l’agent UAS envoie au module d’aboutement PKS une requête avec des informations permettant d’identifier, localiser et paramétrer l’application APPS visée. En réponse à cette requête, le module d’aboutement PKS transmet un code d’état d’acceptation ou de refus, éventuellement accompagné de paramètres propres à l’application APPS. Le module VUPS de l’agent UAS communique (étapes S17 à S20) avec le serveur SISV en lui transmettant une requête CEQ pour déterminer avec quelle adresse IP publique et quel port, il communique avec le serveur SISV. Ainsi aux étapes S17 à S20, identiques aux étapes S9 à S12, mais effectuées entre les serveurs SISV et SRV, une requête CEQ est émise par l’agent UAS au serveur SISV au travers du routeur GWS / pare-feu FWS. A l’étape S19, le serveur SISV émet une réponse CER qui traverse le routeur GWS / pare-feu FWS à l’étape S20. A partir de l’étape S18, l’agent UAS est accessible directement depuis le réseau public IPN à l’adresse IP publique et sur le numéro de port public indiqués dans le message de réponse CER. Le message de réponse CER reçu par le serveur SRV à l’étape S20 contient les informations de connexion au réseau IPN relatives à l’agent UAS, fournies par le serveur SISV.Following receipt of the INV request in step S16, the VUPS module of the UAS agent sends to the PKS abutment module a request with information making it possible to identify, locate and configure the targeted APPS application. In response to this request, the PKS abutment module transmits an acceptance or refusal status code, possibly accompanied by parameters specific to the APPS application. The VUPS module of the UAS agent communicates (steps S17 to S20) with the SISV server by transmitting a CEQ request to it to determine with which public IP address and which port it communicates with the SISV server. Thus at steps S17 to S20, identical to steps S9 to S12, but carried out between the servers SISV and SRV, a CEQ request is sent by the UAS agent to the server SISV through the router GWS / firewall FWS. At step S19, the SISV server issues a CER response which passes through the GWS router / FWS firewall at step S20. From step S18, the UAS agent is accessible directly from the public network IPN at the public IP address and on the public port number indicated in the response message CER. The response message CER received by the server SRV at step S20 contains the connection information to the IPN network relating to the UAS agent, provided by the server SISV.

Selon un mode de réalisation, les communications effectuées aux étapes S9 à S12 et S17 à S20 sont réalisées dans un canal sécurisé, par exemple conformément au protocole TLS.According to one embodiment, the communications carried out in steps S9 to S12 and S17 to S20 are carried out in a secure channel, for example in accordance with the TLS protocol.

Les étapes S21 à S24 qui suivent comprennent la transmission d’un message de réponse RINV à la requête INV, du serveur SRV au terminal UT par l’intermédiaire du serveur REGS. Le message de réponse RINV contient sensiblement la même structure et le même type d’informations que le message de requête INV. Cependant, le message de réponse contient les informations relatives au serveur SRV et notamment celles transmises par le serveur SISV dans le message CER à l’étape S20, et éventuellement les informations liées à l’application visée APPS fournies par le module d’aboutement PKS. Le message de réponse RINV contient en outre un code d’état pouvant indiquer une acceptation de la connexion, une acceptation de la connexion à une autre adresse spécifiée dans le message de réponse RINV, ou un refus de la connexion en raison de l’occurrence d’une erreur. Le code d’état peut être celui défini dans les spécifications RFC3261, section 13.2.2. Aux étapes S22, S23, le message de réponse RINV est relayé par le serveur REGS vers le terminal UT en utilisant les informations figurant dans la requête RINV. Par exemple, dans le cas où le serveur REGS est un serveur registrar conforme au protocole SIP, il utilise les informations contenues dans l’entête SIP du message RINV pour définir où transférer le message. Le module VUPC peut alors transmettre au module d’aboutement PKC les informations de paramétrage fournies par le module PKS. Le module PKC renvoie au module VUPC un code d’état d’acceptation ou d’échec.The following steps S21 to S24 comprise the transmission of a response message RINV to the request INV, from the server SRV to the terminal UT via the server REGS. The RINV response message contains substantially the same structure and type of information as the INV request message. However, the response message contains the information relating to the server SRV and in particular that transmitted by the server SISV in the message CER at step S20, and possibly the information relating to the targeted application APPS provided by the abutment module PKS . The RINV response message further contains a status code which may indicate connection accepted, connection accepted to another address specified in the RINV response message, or connection denied due to the occurrence of an error. The status code can be the one defined in the RFC3261 specifications, section 13.2.2. In steps S22, S23, the response message RINV is relayed by the server REGS to the terminal UT using the information contained in the request RINV. For example, in the case where the REGS server is a registrar server conforming to the SIP protocol, it uses the information contained in the SIP header of the RINV message to define where to forward the message. The VUPC module can then transmit to the PKC abutment module the parameter information provided by the PKS module. The PKC module returns to the VUPC module an acceptance or failure status code.

A l’étape S24, si les codes d’états fourni dans le message de réponse RINV et par le module PKC spécifient une acceptation de la connexion, le module VUPC de l’agent UAC transmet à l’étape S25 au serveur REGS, à destination du serveur SRV un message d’accusé de réception ACK. A l’étape S26, le message ACK traverse le routeur GWC / pare-feu FWC et est reçu par le serveur REGS. Aux étapes S27, S28, le message ACK est acheminé du serveur REGS au serveur SRV, au travers du routeur /pare-feu GWS, en utilisant les informations de connexion contenues dans l’entête du message de réponse ACK.At step S24, if the status codes provided in the response message RINV and by the PKC module specify acceptance of the connection, the VUPC module of the UAC agent transmits at step S25 to the REGS server, at destination of the server SRV an acknowledgment message ACK. At step S26, the ACK message passes through the GWC router / FWC firewall and is received by the REGS server. At steps S27, S28, the ACK message is routed from the REGS server to the SRV server, through the GWS router/firewall, using the connection information contained in the header of the ACK response message.

Les messages INV, RINV et ACK transmis aux étapes S13 à S16, S21 à S24 et S25 à S28 peuvent être ceux spécifiés par le protocole SIP et décrits plus en détail au chapitre 13 du document de normalisation RFC3261.The INV, RINV and ACK messages transmitted in steps S13 to S16, S21 to S24 and S25 to S28 may be those specified by the SIP protocol and described in more detail in chapter 13 of the standardization document RFC3261.

Selon un mode de réalisation, les transmissions des messages INV, RINV et ACK aux étapes S13 à S16, S21 à S24 et S25 à S28 sont réalisées dans un canal sécurisé, par exemple conformément au protocole TLS.According to one embodiment, the transmissions of the messages INV, RINV and ACK in steps S13 to S16, S21 to S24 and S25 to S28 are carried out in a secure channel, for example in accordance with the TLS protocol.

A la réception des messages RINV et ACK, les modules VUPC, VUPS des agents UAC et UAS exécutent à l’étape S29 une procédure de sélection de données de connexion. Cette procédure vise à tester les chemins de connexion poste-à-poste en s’appuyant sur les données de connexion (adresses IP/ports) fournies par le serveur SISV et insérées dans les messages INV et RINV. A cet effet, les modules VUPC, VUPS des agents UAC, UAS utilisent par exemple les points de connexion spécifiés par les balises "a=candidate" dans la requête INV et la réponse RINV. Ces points de connexion sont utilisés par les agents UAC, UAS en formant des paires de points de connexion émetteur et récepteur. Chaque paire est ensuite testée par les agents UAC, UAS. Pour cela, le module VUPC transmet une requête de test à travers le point de connexion du routeur GWS / pare-feu FWS, coté SRV, pour atteindre le module VUPS. Le module VUPS répond en transmettant une requête de test à travers le point de connexion du routeur GWC / pare-feu FWC, coté terminal UT pour atteindre le module VUPC. La paire finalement retenue par les modules VUPC, VUPS forme alors un chemin de connexion qui peut être celui qui a été le plus efficace en terme de latence. Cette procédure est par exemple réalisée conformément au protocole ICE décrite dans le document RFC8445, en particulier au chapitre 6. A l’issue de cette procédure, chacun des agents UAC, UAS dispose d’une adresse IP/port de destination à utiliser pour transmettre des données à l’autre agent. Ainsi, les agents UAC, UAS sont connectés entre eux par un canal de communication poste-à-poste ("peer-to-peer"), et peuvent s’échanger n’importe quelle donnée conformément au protocole IP sélectionné (par exemple UDP). Les adresses IP/ports publics ainsi définis pour accéder au terminal UT et au serveur SRV peuvent être différents de ceux ouverts aux étapes S10 et S18.Upon receipt of the RINV and ACK messages, the modules VUPC, VUPS of the UAC and UAS agents execute in step S29 a connection data selection procedure. This procedure aims to test the peer-to-peer connection paths based on the connection data (IP addresses/ports) provided by the SISV server and inserted in the INV and RINV messages. To this end, the VUPC, VUPS modules of the UAC, UAS agents use, for example, the connection points specified by the “a=candidate” tags in the INV request and the RINV response. These connection points are used by UAC, UAS agents by forming pairs of sender and receiver connection points. Each pair is then tested by the UAC, UAS agents. For this, the VUPC module transmits a test request through the connection point of the GWS router / FWS firewall, on the SRV side, to reach the VUPS module. The VUPS module responds by transmitting a test request through the connection point of the GWC router / FWC firewall, terminal side UT to reach the VUPC module. The pair finally retained by the VUPC, VUPS modules then forms a connection path which may be the one which has been the most efficient in terms of latency. This procedure is for example carried out in accordance with the ICE protocol described in the RFC8445 document, in particular in chapter 6. At the end of this procedure, each of the UAC agents, UAS has a destination IP address/port to be used to transmit data to the other agent. Thus, the UAC, UAS agents are connected to each other by a peer-to-peer communication channel, and can exchange any data in accordance with the selected IP protocol (for example UDP ). The public IP addresses/ports thus defined for accessing the terminal UT and the server SRV may be different from those opened in steps S10 and S18.

Le canal de communication poste-à-poste peut être utilisé par le terminal UT pour connecter n’importe quelle application serveur APPS parmi les modules applicatifs MAPS sur le serveur SRV, à une application client APPC parmi les modules applicatifs MAPC sur le terminal UT (étape S32). Cependant, les modules d’aboutement PKC, PKS limitent l’usage de cette connexion à l’application <APP> spécifiée par les balises "m=" et "a=<APP>…". Pour réaliser cette connexion, un tunnel de communication est établi du côté du terminal UT à l’étape S30 en fournissant un point d’entrée pour l’application client APPC et en se connectant à la liaison poste-à-poste VC. A l’étape S31, un tunnel de communication est également établi du coté du serveur SRV en se connectant à la liaison poste à poste VC et se mettant en attente de données en provenance de l’UAC arrivant du tunnel VC. A l’étape S32, l’application client APPC est paramétrée et activée par le module PKC, et commence à envoyer des données. Ces données sont transmises à travers le tunnel VC à l’étape S33. Dès réception de celles-ci, à l’étape S34, l’application serveur APPS est alors paramétrée et démarrée par le module PKS. Dès lors, les applications APPC et APPS sont connectées entre elles et peuvent communiquer librement par le canal de communication VC (S33).The peer-to-peer communication channel can be used by the terminal UT to connect any APPS server application among the MAPS application modules on the server SRV, to an APPC client application among the MAPC application modules on the terminal UT ( step S32). However, the PKC, PKS abutment modules limit the use of this connection to the <APP> application specified by the "m=" and "a=<APP>…" tags. To achieve this connection, a communication tunnel is established on the side of the terminal UT in step S30 by providing an entry point for the client application APPC and connecting to the peer-to-peer link VC. At step S31, a communication tunnel is also established on the side of the server SRV by connecting to the peer-to-peer link VC and waiting for data from the UAC arriving from the tunnel VC. At step S32, the APPC client application is configured and activated by the PKC module, and begins to send data. This data is transmitted through the VC tunnel in step S33. Upon receipt of these, in step S34, the APPS server application is then configured and started by the PKS module. Therefore, the APPC and APPS applications are interconnected and can communicate freely via the communication channel VC (S33).

Les applications client APPC et serveur APPS peuvent par exemple permettre l’établissement d’un canal VPN entre le terminal UT et le serveur SRV pour donner au terminal accès à des ressources du serveur ou du réseau local auquel le serveur est connecté. L’application serveur APPS peut être par exemple un serveur Web de contrôle d’un équipement réseau tel qu’une imprimante réseau ou un routeur connecté au réseau local du serveur SRV, ou encore une application spécifique installée sur le serveur. Dans ce cas, l’application client APPC peut être par exemple un navigateur Internet équipé d’une extension spécifique pour communiquer à travers le tunnel de communication VC ainsi établi.The APPC client and APPS server applications can for example allow the establishment of a VPN channel between the terminal UT and the server SRV to give the terminal access to resources of the server or of the local network to which the server is connected. The APPS server application can be, for example, a Web server for controlling network equipment such as a network printer or a router connected to the local network of the SRV server, or even a specific application installed on the server. In this case, the APPC client application may for example be an Internet browser equipped with a specific extension to communicate through the communication tunnel VC thus established.

Il convient de noter que, par ce procédé, il est possible de faire communiquer une application réseau à travers des équipements réseau protégés (non accessibles depuis le réseau public car protégés par un routeur et un pare-feu). Cependant, les applications réseau susceptibles d’utiliser le canal de communication VC sont strictement limitées à celles définies dans la commande INV transmise aux étapes S13 à S16.It should be noted that, by this method, it is possible to communicate a network application through protected network equipment (not accessible from the public network because protected by a router and a firewall). However, the network applications likely to use the communication channel VC are strictly limited to those defined in the command INV transmitted at steps S13 to S16.

Selon un mode de réalisation, il est possible d’utiliser le canal de communication VC précédemment établi pour une application réseau, pour faire communiquer d’autres applications réseau APPC/APPC. A cet effet, les modules de communication VUPC, VUPS des agents UAC, UAS peuvent à nouveau exécuter les étapes S13 à S16, S21 à S28 et S30 à S34. Aux étapes S13 à S16, une nouvelle requête INV est envoyée à destination du serveur SRV. Cette nouvelle requête INV contient toutes les informations de paramétrage et d’identification de l’application serveur cible APPS. Le module VUPS est ainsi informé de la nouvelle application serveur à activer. Le tunnel de communication étant déjà établi (S29), les informations nécessaires à l'établissement de ce dernier ne sont pas utiles dans la requête INV. Selon un mode de réalisation, les modules PKC, PKS sont en mesure d'exécuter plusieurs applications en utilisant par exemple une méthode de multiplexage de données permettant une identification de paquets de données. Selon un autre mode de réalisation, les modules PKC, PKS peuvent arrêter l’exécution d’une application réseau, pour la remplacer par une nouvelle, lors de l‘émission ou la réception d’une requête d’activation d’une autre application.According to one embodiment, it is possible to use the communication channel VC previously established for a network application, to make other APPC/APPC network applications communicate. To this end, the communication modules VUPC, VUPS of the agents UAC, UAS can once again execute steps S13 to S16, S21 to S28 and S30 to S34. In steps S13 to S16, a new request INV is sent to the server SRV. This new INV request contains all the parameterization and identification information of the target APPS server application. The VUPS module is thus informed of the new server application to be activated. Since the communication tunnel is already established (S29), the information necessary for establishing the latter is not useful in the request INV. According to one embodiment, the PKC, PKS modules are capable of executing several applications by using, for example, a data multiplexing method allowing identification of data packets. According to another embodiment, the PKC, PKS modules can stop the execution of a network application, to replace it with a new one, when sending or receiving an activation request from another application. .

Lorsque l’utilisateur ferme l’application APPC ou APPS, l’agent UAC ou UAS transmet à l’autre agent (UAS ou UAC) un message de fermeture, par exemple un message BYE selon le protocole SIP et l’autre agent répond en envoyant un message de confirmation de fermeture. Les modules d’aboutement PKC et PKS activés par les agents UAC et UAS sont alors fermés, ce qui provoque la fermeture du canal VC. Dans le cas ou plusieurs applications sont en cours d’exécution, un message de notification de fermeture est envoyé à chaque fermeture d’application, par exemple un message NOTIFY ou UPDATE selon le protocole SIP. Si la dernière application réseau active est fermée, le canal VC est fermé, ainsi que les modules d’aboutement PKC, PKS.When the user closes the APPC or APPS application, the UAC or UAS agent transmits to the other agent (UAS or UAC) a closing message, for example a BYE message according to the SIP protocol and the other agent responds by sending a closing confirmation message. The PKC and PKS abutment modules activated by the UAC and UAS agents are then closed, which causes the closure of the VC channel. If several applications are running, a closure notification message is sent each time the application is closed, for example a NOTIFY or UPDATE message according to the SIP protocol. If the last active network application is closed, the VC channel is closed, as well as the butting modules PKC, PKS.

Ainsi, le procédé qui vient d’être décrit permet de mettre en communication des applications réseau exécutées par des équipements réseau protégés par un routeur et un pare-feu, sans avoir à maintenir ouverts des ports librement accessibles depuis le réseau public.Thus, the method which has just been described makes it possible to put network applications executed by network equipment protected by a router and a firewall into communication, without having to keep open ports that are freely accessible from the public network.

Conformément à des mécanismes de sécurité mis en œuvre dans les pares-feux actuels, les ports ouverts aux étapes S10, S18 et éventuellement S29 restent ouverts pendant une durée très courte de quelques dizaines de secondes. Un éventuel pirate n’a donc pas le temps d’examiner tous les ports susceptibles d’être utilisés pour pénétrer dans les réseaux locaux du terminal UT ou du serveur SRV. A l’issue de cette durée, si le port est encore utilisé, il reste ouvert mais seulement pour l’adresse IP émettrice du dernier paquet de données reçu. Ainsi, à l’étape S33, les ports sélectionnés à l’étape S29 restent ouverts uniquement pour les paquets de données provenant des adresses IP publiques sélectionnées à l’étape S29. Ces ports peuvent être maintenus ouverts pendant une longue période par un mécanisme autonome (mécanisme "keep-alive" du protocole ICE par exemple), tant que les modules VUPC et VUPS sont en cours d’exécution. Ces ports ne sont donc pas exploitables pour pénétrer dans les réseaux locaux du terminal UT et du serveur SRV.In accordance with security mechanisms implemented in current firewalls, the ports opened at steps S10, S18 and possibly S29 remain open for a very short period of a few tens of seconds. A potential hacker therefore does not have time to examine all the ports likely to be used to penetrate the local networks of the UT terminal or the SRV server. At the end of this period, if the port is still in use, it remains open but only for the sending IP address of the last data packet received. Thus, at step S33, the ports selected at step S29 remain open only for data packets originating from the public IP addresses selected at step S29. These ports can be kept open for a long time by an autonomous mechanism (ICE protocol "keep-alive" mechanism for example), as long as the VUPC and VUPS modules are running. These ports cannot therefore be used to penetrate the local networks of the terminal UT and of the server SRV.

Il apparaîtra clairement à l'homme de l'art que la présente invention est susceptible de diverses variantes de réalisation et diverses applications. En particulier, il peut ne pas être nécessaire d’exécuter la procédure de sélection de données de connexion à l’étape S29, sachant que les étapes S9-S12 et S17-S20 permettent d’obtenir au moins une adresse IP publique et un port de connexion pour le terminal UT et le serveur SRV.It will clearly appear to those skilled in the art that the present invention is capable of various variant embodiments and various applications. In particular, it may not be necessary to execute the connection data selection procedure at step S29, knowing that steps S9-S12 and S17-S20 make it possible to obtain at least one public IP address and one port connection for the terminal UT and the server SRV.

Les modules d’aboutement PKC, PKC peuvent être dédiés à une application réseau. Dans ce cas, ils n’ont pas besoin d’identifiants et de données de connexion locale pour déterminer comment connecter les applications client et serveur à chacune des extrémités du canal de communication.PKC, PKC butting modules can be dedicated to a network application. In this case, they do not need credentials and local connection data to determine how to connect the client and server applications at each end of the communication channel.

Par ailleurs, toutes les étapes de la f igure 6 exécutées par l’agent UAC ou par l’agent UAS peuvent être implémentées dans un équipement réseau spécifique distinct du terminal UT ou du serveur SRV. Ces étapes peuvent aussi être en partie ou en totalité mises en œuvre par un programme installé dans le terminal UT et/ou le serveur SRV.Furthermore, all the steps of FIG. 6 executed by the UAC agent or by the UAS agent can be implemented in specific network equipment distinct from the terminal UT or from the server SRV. These steps can also be partly or totally implemented by a program installed in the terminal UT and/or the server SRV.

Les protocoles mentionnés précédemment, susceptibles d’être utilisés dans le cadre de l’exécution des étapes de la f igure 6, présentent l’avantage d’être des protocoles standardisés et implémentés dans des modules disponibles, ce qui permet de faciliter la réalisation et l’interopérabilité des agents UAC, UAS, ainsi que des serveurs REGS et SISV. Cependant, il va de soi qu’il n’est pas nécessaire de mettre en œuvre ces protocoles pour réaliser les étapes de la f igure 6, et que des protocoles spécifiques peuvent être développés à cette fin, les fonctions assurées par les serveurs REGS et SISV pouvant être adaptées à ces protocoles spécifiques ou dédiés. Le développement de tels protocoles peut en effet permettre d’alléger les traitements à effectuer et de les adapter plus spécifiquement aux besoins requis. Notamment, d’autres protocoles que UDP et TCP peuvent être utilisés pour la couche transport du modèle OSI ("Open Systems Interconnection"), comme SCTP ("Stream Control Transmission Protocol").The protocols mentioned previously, likely to be used in the context of the execution of the steps of f igure 6, have the advantage of being standardized protocols and implemented in available modules, which makes it possible to facilitate the realization and the interoperability of UAC and UAS agents, as well as REGS and SISV servers. However, it goes without saying that it is not necessary to implement these protocols to carry out the steps of f igure 6, and that specific protocols can be developed for this purpose, the functions provided by the REGS servers and SISV that can be adapted to these specific or dedicated protocols. The development of such protocols can indeed make it possible to lighten the treatments to be carried out and to adapt them more specifically to the required needs. In particular, protocols other than UDP and TCP can be used for the transport layer of the OSI ("Open Systems Interconnection") model, such as SCTP ("Stream Control Transmission Protocol").

En outre, les serveurs REGS et SISV ont été décrits comme étant des équipements distincts. Il va de soi également que les fonctions réalisées par ces deux serveurs et mises en œuvre dans les étapes de la f igure 6, peuvent être réalisées par un serveur physique unique ou un serveur accessible à une adresse IP publique unique.Furthermore, the REGS and SISV servers have been described as separate equipment. It also goes without saying that the functions performed by these two servers and implemented in the steps of FIG. 6 can be performed by a single physical server or a server accessible at a single public IP address.

Il va également de soi que le terminal UT peut également être un serveur connecté à un réseau local et que l’application APPC/APPS exécutée aux étapes S32-S34 peut permettre par exemple d’établir une liaison VPN entre ce réseau local et le réseau local connecté au serveur SRV. Le serveur SRV peut également être un simple terminal d’utilisateur. Dans ce cas, l’application APPC/APPS peut permettre par exemple d’établir une liaison VPN entre deux terminaux distants. Ainsi, l’expression "équipement réseau" telle qu’utilisée dans les revendications ci-jointes désigne donc indifféremment un terminal d’utilisateur, un serveur ou un réseau local.It also goes without saying that the terminal UT can also be a server connected to a local network and that the APPC/APPS application executed in steps S32-S34 can make it possible, for example, to establish a VPN link between this local network and the network local connected to the SRV server. The SRV server can also be a simple user terminal. In this case, the APPC/APPS application can be used, for example, to establish a VPN link between two remote terminals. Thus, the expression "network equipment" as used in the appended claims therefore designates either a user terminal, a server or a local network.

Annexe IAnnex I

Exemple de requête INV (étape S13)Sample INV Query (Step S13)

INVITE sip:<siteXX@IREGS> SIP/2.0INVITE sip:<siteXX@IREGS> SIP/2.0

Via: SIP/2.0/UDP <IP_Local:port>;branch=z9hG4bKnashds8Via: SIP/2.0/UDP <IP_Local:port>;branch=z9hG4bKnashds8

To: SiteXX <siteXX@REGS>To: SiteXX <siteXX@REGS>

From: Nomade1 <Nomade1@REGS>;tag=1928301774From: Nomad1 <Nomade1@REGS>;tag=1928301774

Call-ID: a84b4c76e66710Call ID: a84b4c76e66710

CSeq: 314159 INVITECSeq: 314159 PROMPT

Max-Forwards: 70Max Forwards: 70

Date: Thu, 21 Feb 2020 13:02:03 GMTDate: Thu, 21 Feb 2020 13:02:03 GMT

Contact: sip:<Nomade1@IP_Local:port>Contact: sip:<Nomade1@IP_Local:port>

Content-Type: application/sdpContent-Type: application/sdp

Content-Length: 105Content Length: 105

v=0v=0

o=<Nomade1@REGS> 1590676221 1590676223 IN IP4 82.203.229.181o=<Nomade1@REGS> 1590676221 1590676223 IN IP4 82.203.229.181

c=IN IP4 86.203.229.181c=IN IP4 86.203.229.181

m=<APP> 4003 UDP 0m=<APP> 4003 UDP 0

a=<APP>-dst-IP:192.168.100.20a=<APP>-dst-IP:192.168.100.20

a=<APP>-dst-port:4242a=<APP>-dst-port:4242

a=<APP>-dst-proto:TCPa=<APP>-dst-proto:TCP

a=ice-ufrag:6abdfa9ba=ice-ufrag:6abdfa9b

a=ice-pwd:7792893930440d10070f2f6ea=ice-pwd:7792893930440d10070f2f6e

a=candidate:Sc0a8006a 1 UDP 1862270975 86.203.229.181 4003 typ srflx raddr 192.168.0.106 rport 4003a=candidate:Sc0a8006a 1 UDP 1862270975 86.203.229.181 4003 typ srflx raddr 192.168.0.106 report 4003

a=candidate:Hc0a8006a 1 UDP 1694498815 192.168.0.106 4003 typ hosta=candidate:Hc0a8006a 1 UDP 1694498815 192.168.0.106 4003 typhost

a=candidate:Hc0a86302 1 UDP 1694498815 192.168.99.2 4003 typ hosta=candidate:Hc0a86302 1 UDP 1694498815 192.168.99.2 4003 type host

a=candidate:Hac107201 1 UDP 1694498815 172.16.114.1 4003 typ hosta=candidate:Hac107201 1 UDP 1694498815 172.16.114.1 4003 typhost

a=candidate:Hac101001 1 UDP 1694498815 172.16.16.1 4003 typ hosta=candidate:Hac101001 1 UDP 1694498815 172.16.16.1 4003 typhost

a=candidate:Sc0a8006a 2 UDP 1862270974 86.203.229.181 4026 typ srflx raddr 192.168.0.106 rport 4026a=candidate:Sc0a8006a 2 UDP 1862270974 86.203.229.181 4026 typ srflx raddr 192.168.0.106 report 4026

a=candidate:Hc0a8006a 2 UDP 1694498814 192.168.0.106 4026 typ hosta=candidate:Hc0a8006a 2 UDP 1694498814 192.168.0.106 4026 typ host

a=candidate:Hc0a86302 2 UDP 1694498814 192.168.99.2 4026 typ hosta=candidate:Hc0a86302 2 UDP 1694498814 192.168.99.2 4026 typ host

a=candidate:Hac107201 2 UDP 1694498814 172.16.114.1 4026 typ hosta=candidate:Hac107201 2 UDP 1694498814 172.16.114.1 4026 typhost

a=candidate:Hac101001 2 UDP 1694498814 172.16.16.1 4026 typ hosta=candidate:Hac101001 2 UDP 1694498814 172.16.16.1 4026 typ host

Claims (15)

Procédé d’établissement d’un canal de communication poste-à-poste sécurisé, dédié à une application réseau, via un réseau public (IPN), entre un premier équipement réseau (UT) et un second équipement réseau (SRV), les premier et second équipements étant connectés au réseau public, le procédé comprenant des étapes consistant à :
enregistrer la présence sur le réseau public du premier équipement, auprès d’un serveur d’enregistrement (REGS), le second équipement étant enregistré auprès du serveur d’enregistrement,
émettre par le premier équipement une requête d’information de connexion (CEQ) à un serveur d’analyse de connexion (SISV), et recevoir par le premier équipement du serveur d’analyse de connexion des données de connexion publiques (CER) du premier équipement observées depuis le réseau public,
transmettre par le premier équipement une requête de connexion (INV) au serveur d’enregistrement, à destination du second équipement, la requête de connexion contenant les données de connexion publiques du premier équipement,
recevoir par le premier équipement, du serveur d’enregistrement, une réponse de connexion (RINV) provenant du second équipement et contenant des données de connexion publiques (CER) du second équipement, observées depuis le réseau public, et
sur réception de la réponse de connexion, établir par le premier équipement un canal de communication poste-à-poste (VC) avec le second équipement via le réseau public, à l’aide des données de connexion du premier et du second équipement, et connecter par le premier équipement une application client (APPC) au canal de communication.
Method for establishing a secure peer-to-peer communication channel, dedicated to a network application, via a public network (IPN), between a first network device (UT) and a second network device (SRV), the first and second equipment being connected to the public network, the method comprising steps consisting in:
register the presence on the public network of the first device, with a registration server (REGS), the second device being registered with the registration server,
send by the first device a connection information request (CEQ) to a connection analysis server (SISV), and receive by the first device from the connection analysis server public connection data (CER) from the first equipment observed from the public network,
transmit by the first equipment a connection request (INV) to the registration server, intended for the second equipment, the connection request containing the public connection data of the first equipment,
receive by the first equipment, from the registration server, a connection response (RINV) originating from the second equipment and containing public connection data (CER) of the second equipment, observed from the public network, and
upon receipt of the connection response, establish by the first equipment a peer-to-peer (VC) communication channel with the second equipment via the public network, using the connection data of the first and of the second equipment, and connecting by the first device a client application (APPC) to the communication channel.
Procédé selon la revendication 1, dans lequel la requête de connexion (INV) comprend des données de connexion locale à une application serveur (APPS) à connecter à l’application client (APPC), pour permettre au second équipement (SRV) de connecter l’application serveur au canal de communication (VC).Method according to claim 1, in which the connection request (INV) comprises local connection data to a server application (APPS) to be connected to the client application (APPC), to allow the second equipment (SRV) to connect the server application to the communication channel (VC). Procédé selon la revendication 2, comprenant des étapes consistant à :
transmettre par le premier équipement (UT) une nouvelle requête de connexion (INV) au serveur d’enregistrement (REGS), à destination du second équipement (SRV), la requête de connexion contenant des données de connexion locale à une nouvelle application serveur (APPS) à connecter à une nouvelle application client (APPC), et
connecter par le premier équipement la nouvelle application client (APPC) au canal de communication.
A method according to claim 2, comprising the steps of:
transmit by the first equipment (UT) a new connection request (INV) to the registration server (REGS), intended for the second equipment (SRV), the connection request containing local connection data to a new server application ( APPS) to connect to a new client application (APPC), and
connecting by the first device the new client application (APPC) to the communication channel.
Procédé d’établissement d’un canal de communication poste-à-poste sécurisé, dédié à une application, via un réseau public (IPN), entre un premier équipement réseau (UT) et un second équipement réseau (SRV), les premier et second équipements étant connectés au réseau public, le procédé comprenant des étapes consistant à :
enregistrer la présence sur le réseau public du second équipement, auprès d’un serveur d’enregistrement (REGS), le premier équipement étant enregistré auprès du serveur d’enregistrement,
recevoir par le second équipement une requête de connexion (INV) du serveur d’enregistrement, émise par le premier équipement, la requête de connexion contenant des données de connexion publiques du premier équipement, observées depuis le réseau public,
émettre par le second équipement une requête d’information de connexion (CEQ) à un serveur d’analyse de connexion (SISV), et recevoir par le second équipement du serveur d’analyse de connexion des données de connexion publiques (CER) du second équipement, observées depuis le réseau public,
sur réception de la requête de connexion, transmettre par le second équipement, au serveur d’enregistrement, une réponse de connexion (RINV) à destination du premier équipement, contenant les données de connexion publiques du second équipement,
sur réception de la réponse de connexion, établir par le second équipement un canal de communication poste-à-poste (VC) avec le premier équipement via le réseau public, à l’aide des données de connexion publiques du premier et du second équipement, et
connecter par le second équipement une application serveur (APPS) au canal de communication (VC).
Method for establishing a secure peer-to-peer communication channel, dedicated to an application, via a public network (IPN), between a first network equipment (UT) and a second network equipment (SRV), the first and second equipment being connected to the public network, the method comprising steps consisting in:
register the presence on the public network of the second device, with a registration server (REGS), the first device being registered with the registration server,
receive by the second equipment a connection request (INV) from the registration server, sent by the first equipment, the connection request containing public connection data of the first equipment, observed from the public network,
send by the second equipment a connection information request (CEQ) to a connection analysis server (SISV), and receive by the second equipment from the connection analysis server public connection data (CER) of the second equipment, observed from the public network,
on receipt of the connection request, send by the second equipment, to the registration server, a connection response (RINV) intended for the first equipment, containing the public connection data of the second equipment,
upon receipt of the connection response, establish by the second equipment a peer-to-peer (VC) communication channel with the first equipment via the public network, using the public connection data of the first and of the second equipment, And
connecting by the second device a server application (APPS) to the communication channel (VC).
Procédé selon la revendication 4, dans lequel la requête de connexion (INV) reçue comprend des données de connexion locale de l’application serveur (APPS), la connexion de l’application serveur au canal de communication (VC) étant effectuée à l’aide des données de connexion locale de l’application serveur.Method according to claim 4, in which the connection request (INV) received comprises local connection data of the server application (APPS), the connection of the server application to the communication channel (VC) being carried out at the using the server application's local login data. Procédé selon la revendication 5, comprenant des étapes consistant à :
recevoir par le second équipement (SRV) une nouvelle requête de connexion (INV), la requête de connexion contenant des données de connexion locale d’une nouvelle application serveur (APPS), et
connecter par le second équipement la nouvelle application serveur au canal de communication (VC) à l’aide des données de connexion locale de la nouvelle application serveur.
A method according to claim 5, comprising the steps of:
receive by the second equipment (SRV) a new connection request (INV), the connection request containing local connection data of a new server application (APPS), and
connecting by the second device the new server application to the communication channel (VC) using the local connection data of the new server application.
Procédé selon l’une des revendications 1 à 6, dans lequel les données de connexion transmises par le serveur d’analyse (SISV) aux premier et second équipements (UT, SRV) comprennent des données de connexion relatives à plusieurs points de connexion du premier équipement et plusieurs points de connexion du second équipement, l’établissement du canal de communication poste-à-poste (VC) entre les premier et second équipements, comprenant des étapes consistant à exécuter par les premier et second équipements une procédure de sélection de paramètres de connexion pour tester des paires de données de connexion associant des données de connexion d’un point d’accès du premier équipement et des données de connexion d’un point d’accès du second équipement, et sélectionner une des paires testées ayant permis aux premier et second équipements de communiquer, le canal de communication poste-à-poste étant établi sur la base de la paire de données de connexion sélectionnée.Method according to one of Claims 1 to 6, in which the connection data transmitted by the analysis server (SISV) to the first and second equipment (UT, SRV) comprise connection data relating to several connection points of the first equipment and several connection points of the second equipment, the establishment of the peer-to-peer (VC) communication channel between the first and second equipment, comprising steps consisting in executing by the first and second equipment a parameter selection procedure of connection to test pairs of connection data associating connection data of an access point of the first equipment and connection data of an access point of the second equipment, and to select one of the pairs tested having enabled the first and second equipment to communicate, the peer-to-peer communication channel being established based on the selected connection data pair. Procédé selon la revendication 6 ou 7, dans laquelle la procédure (S29) de sélection de paramètres de connexion est conforme à au moins l’un des protocoles suivants :
le protocole ICE,
le protocole STUN, et
le protocole TURN.
Method according to claim 6 or 7, in which the connection parameter selection procedure (S29) complies with at least one of the following protocols:
the ICE protocol,
the STUN protocol, and
the TURN protocol.
Procédé selon la revendication 8, dans lequel l’application serveur (APPS) est une application d’établissement d’une liaison VPN, ou une application de contrôle d’un équipement réseau comme une imprimante réseau ou un routeur, ou une application d’accès à une base de données.Method according to claim 8, in which the server application (APPS) is an application for establishing a VPN connection, or an application for controlling network equipment such as a network printer or a router, or an application for access to a database. Procédé selon l'une des revendications 1 à 9, dans lequel :
les transmissions de données entre le premier équipement (UT) et/ou le second équipement (SRV), d’une part et d’autre part, le serveur d’enregistrement (REGS) sont effectuées par un canal de transmission sécurisé, et/ou
les transmissions de données entre le premier équipement et/ou le second équipement, d’une part et d’autre part, le serveur d’analyse de connexion (SISV) sont effectuées par un canal de transmission sécurisé, et/ou
les transmissions de données entre le premier équipement et le second équipement, par le canal de communication poste-à-poste (VC) sont effectuées par un canal de transmission sécurisé.
Process according to one of Claims 1 to 9, in which:
the data transmissions between the first equipment (UT) and/or the second equipment (SRV), on the one hand and on the other hand, the registration server (REGS) are carried out by a secure transmission channel, and/ Or
the data transmissions between the first equipment and/or the second equipment, on the one hand and on the other hand, the connection analysis server (SISV) are carried out by a secure transmission channel, and/or
the data transmissions between the first device and the second device, via the peer-to-peer (VC) communication channel, are carried out by a secure transmission channel.
Procédé selon l'une des revendications 1 à 10, dans lequel les transmissions de données entre le premier équipement (UT) et/ou le second équipement (SRV), d’une part et d’autre part, le serveur d’enregistrement (REGS) sont effectuées :
conformément au protocole SIP sur UDP ou sur TCP, sécurisé ou non par le protocole TLS, ou par un canal VPN, ou bien
conformément au protocole WebSocket sécurisé ou non par un canal VPN, ou bien
conformément au protocole WebRTC sécurisé ou non par un canal VPN.
Method according to one of Claims 1 to 10, in which the data transmissions between the first equipment (UT) and/or the second equipment (SRV), on the one hand, and on the other hand, the recording server ( REGS) are performed:
in accordance with the SIP protocol over UDP or over TCP, whether or not secured by the TLS protocol, or by a VPN channel, or else
in accordance with the WebSocket protocol secured or not by a VPN channel, or else
in accordance with the WebRTC protocol secured or not by a VPN channel.
Procédé selon l'une des revendications 1 à 11, dans lequel le serveur d’enregistrement (REGS) et le serveur d’analyse de connexion (SISV) sont mis en œuvre dans un unique serveur.Method according to one of Claims 1 to 11, in which the registration server (REGS) and the connection analysis server (SISV) are implemented in a single server. Equipement réseau (UT, SRV) associé à un circuit pour se connecter à un réseau public (IPN), l’équipement étant configuré pour mettre en œuvre le procédé selon l'une des revendications 1 à 12.Network equipment (UT, SRV) associated with a circuit for connecting to a public network (IPN), the equipment being configured to implement the method according to one of Claims 1 to 12. Equipement réseau selon la revendication 13, comprenant un routeur (GWC, GWS) et un pare-feu (FWC, FWS), le canal de communication (VC) étant établi au travers du routeur et du pare-feu.Network equipment according to claim 13, comprising a router (GWC, GWS) and a firewall (FWC, FWS), the communication channel (VC) being established through the router and the firewall. Equipement réseau selon la revendication 13 ou 14, dans lequel l’équipement réseau se présente sous la forme d’un programme installé dans un terminal d’utilisateur (UT) ou un serveur (SRV), ou se présente sous la forme d’un circuit connectable à un terminal d’utilisateur ou à un serveur.Network equipment according to claim 13 or 14, wherein the network equipment is in the form of a program installed in a user terminal (UT) or a server (SRV), or is in the form of a circuit connectable to a user terminal or to a server.
FR2100769A 2021-01-27 2021-01-27 METHOD FOR ESTABLISHING A SECURE POST-TO-POST COMMUNICATION CHANNEL, DEDICATED TO A NETWORK APPLICATION, BETWEEN TWO REMOTE NETWORK EQUIPMENTS Pending FR3119290A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR2100769A FR3119290A1 (en) 2021-01-27 2021-01-27 METHOD FOR ESTABLISHING A SECURE POST-TO-POST COMMUNICATION CHANNEL, DEDICATED TO A NETWORK APPLICATION, BETWEEN TWO REMOTE NETWORK EQUIPMENTS
PCT/FR2022/050150 WO2022162317A1 (en) 2021-01-27 2022-01-27 Method for establishing a secure post-to-post communication channel, dedicated to a network application, between two remote network devices

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2100769A FR3119290A1 (en) 2021-01-27 2021-01-27 METHOD FOR ESTABLISHING A SECURE POST-TO-POST COMMUNICATION CHANNEL, DEDICATED TO A NETWORK APPLICATION, BETWEEN TWO REMOTE NETWORK EQUIPMENTS
FR2100769 2021-01-27

Publications (1)

Publication Number Publication Date
FR3119290A1 true FR3119290A1 (en) 2022-07-29

Family

ID=75439000

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2100769A Pending FR3119290A1 (en) 2021-01-27 2021-01-27 METHOD FOR ESTABLISHING A SECURE POST-TO-POST COMMUNICATION CHANNEL, DEDICATED TO A NETWORK APPLICATION, BETWEEN TWO REMOTE NETWORK EQUIPMENTS

Country Status (2)

Country Link
FR (1) FR3119290A1 (en)
WO (1) WO2022162317A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1362460A1 (en) * 2001-02-20 2003-11-19 Eyeball Networks Inc. Method and apparatus to permit data transmission to traverse firewalls
US7769865B1 (en) * 2001-10-16 2010-08-03 Sprint Communications Company L.P. Configuring computer network communications in response to detected firewalls
CN107454178B (en) * 2017-08-15 2020-07-31 竞技世界(北京)网络技术有限公司 Data transmission method and device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1362460A1 (en) * 2001-02-20 2003-11-19 Eyeball Networks Inc. Method and apparatus to permit data transmission to traverse firewalls
US7769865B1 (en) * 2001-10-16 2010-08-03 Sprint Communications Company L.P. Configuring computer network communications in response to detected firewalls
CN107454178B (en) * 2017-08-15 2020-07-31 竞技世界(北京)网络技术有限公司 Data transmission method and device

Also Published As

Publication number Publication date
WO2022162317A1 (en) 2022-08-04

Similar Documents

Publication Publication Date Title
US20200295877A1 (en) System and method for data transfer in a peer-to-peer hybrid communication network
Guha et al. Characterization and measurement of TCP traversal through NATs and firewalls
US7778187B2 (en) System and method for dynamic stability in a peer-to-peer hybrid communications network
EP2073507A1 (en) Control of the interface for emitting an SIP response message
US7639668B2 (en) Method for securing RTS communications across middleboxes
US20140222957A1 (en) Java api for programming web real-time communication applications
EP2051477B1 (en) Method to cross an equipment of translation of addresses for SIP signalling messages by temporaly using transport protocol TCP
US20100318678A1 (en) System and method for routing and communicating in a heterogeneous network environment
US20090313386A1 (en) Communication apparatus, communication method and communication system
US20060187912A1 (en) Method and apparatus for server-side NAT detection
CN101164287A (en) File transfer protocol service performance testing method
US20120113977A1 (en) Vpn device and vpn networking method
EP1994724A2 (en) Method and system for characterising heterogeneous communication nodes
EP3643044B1 (en) Method of activating processes applied to a data session
US20210006662A1 (en) Systems and methods for utilizing http for telephony trunking between a provider and a consumer
EP3549368B1 (en) Method of fractioning application messages in an ip network
FR3119290A1 (en) METHOD FOR ESTABLISHING A SECURE POST-TO-POST COMMUNICATION CHANNEL, DEDICATED TO A NETWORK APPLICATION, BETWEEN TWO REMOTE NETWORK EQUIPMENTS
EP3560168B1 (en) Classifying and routing control messages for a communications infrastructure
WO2005079014A1 (en) System for communication between private and public ip networks
Jakobsson Peer-to-peer communication in web browsers using WebRTC A detailed overview of WebRTC and what security and network concerns exists
EP1432213B1 (en) Mediation platform and message transport network
Mahmood SIP security threats and countermeasures
WO2016156693A1 (en) Method for creating address bindings and address translation entity
FR2887724A1 (en) CLIENT (S) / SERVER (S) CONNECTION MANAGEMENT DEVICE IN THE PRESENCE OF HOSTILE CONDITIONS IN INTERCONNECTED IP NETWORKS

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20220729

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4