WO2022069818A1 - Procede de synchronisation d'une pluralite de serveurs de communications, dispositifs et programmes d'ordinateurs correspondants - Google Patents
Procede de synchronisation d'une pluralite de serveurs de communications, dispositifs et programmes d'ordinateurs correspondants Download PDFInfo
- Publication number
- WO2022069818A1 WO2022069818A1 PCT/FR2021/051642 FR2021051642W WO2022069818A1 WO 2022069818 A1 WO2022069818 A1 WO 2022069818A1 FR 2021051642 W FR2021051642 W FR 2021051642W WO 2022069818 A1 WO2022069818 A1 WO 2022069818A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- servers
- server
- time information
- message
- data
- Prior art date
Links
- 238000004891 communication Methods 0.000 title claims abstract description 71
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000005540 biological transmission Effects 0.000 claims abstract description 72
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 44
- 238000010200 validation analysis Methods 0.000 claims abstract description 13
- 238000004590 computer program Methods 0.000 claims description 12
- 230000002123 temporal effect Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 108700009949 PTP protocol Proteins 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0641—Change of the master or reference, e.g. take-over or failure of the master
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
- H04J3/0667—Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
Definitions
- the invention is implemented in a virtual data space, for example implemented by a plurality of partners, deployed on a communications infrastructure.
- the invention relates to the time synchronization of the communication servers involved in the development and processing of data.
- VNE - Virtual Network Eunctions consisting of decoupling network functions from dedicated physical equipment to deploy network functions. in storage spaces, or cloud, more or less distributed and relying on generic servers.
- the exchange and processing of data within the virtual data space requires a timestamp. Indeed, to classify, to authenticate or more generally to respect a level of security for the data exchanged, it is necessary that temporal information be added to the data exchanged between the communication servers, also called connectors, of a virtual space of data. However, so that the time information can be used by the various entities involved in the virtual data space, the data timestamping function used by each connector to add the time information to the data should be based on a clock shared between the different connectors. It is in fact necessary for the various connectors to use the same time reference so that the timestamp information added by each connector can be used by other connectors or by other entities in the virtual data space.
- a connector must therefore include a local clock to be able to effectively add timestamp information to the data exchanged in a virtual data space.
- the local clock used by each connector is, for example, synchronized with an external clock of better precision, such as a GNSS satellite (Geolocation and Navigation by a Satellite System) or else a time server.
- an external clock of better precision such as a GNSS satellite (Geolocation and Navigation by a Satellite System) or else a time server.
- NTP Network Time Protocol - IETF RFC5905 -D. Mills et al. - Network Time Protocol version 4: Protocol and Algorithms Specification
- PTP Precision Time Protocol - 1588-2008 - IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems
- the present invention aims to provide improvements over the state of the art.
- the invention improves the situation using a method of synchronizing a plurality of communication servers of a communication network, capable of exchanging timestamped data using a time reference, said method being implemented by a server of the plurality, called primary server, and comprising:
- a validation of a synchronization challenge comprising the difference between a recorded transmission time reference and the transmission time information of the initialization message, the transmission time information replacing the recorded time reference for the timestamp of the data exchanged between the servers of the plurality after the validation.
- Synchronization by one of the communication servers, also called connectors, in a communications network, such as a virtual data space is implemented following the selection process of a server, called primary server, among the servers of the data center.
- the other servers of the communications network also called secondary servers, can thus verify that the server transmitting the initialization message is indeed authorized to transmit time information.
- a plurality of space servers of data executes the selection algorithm, and one of them executes faster or is the only one able to execute the algorithm and becomes for a given period the reference server for determining the clock used for timestamping data exchanged between the various connectors in the communications network.
- the transmission time information corresponding to the moment when the initialization message is actually transmitted to the other connectors is then used by the other connectors to check that the time information can actually be used as a synchronization reference.
- the receipt of an acknowledgment message makes it possible, on the one hand, to verify the identity of the secondary connector transmitting the acknowledgment message and, on the other hand, to determine that the transmission time information has been validated by the secondary connector. .
- the non-receipt of such a message from a secondary server indicates that the secondary server does not validate the time information transmitted.
- the validation and recording of the synchronization challenge comprising the transmission time information makes it possible to be able to recover the synchronization information during a future analysis of the data exchanged between the connectors.
- the chronology of the exchanges between the connectors as well as the validity periods of security keys, for example, are relevant with respect to temporal information that can be found in the recorded data.
- the method thus makes it possible to be able to implement a reliable selection of the temporal reference in a data space, different connectors of the data space being capable of successively determining a reference temporal information item to be used by the other connectors.
- the secondary servers having effectively transmitted an acknowledgment message and the primary server uses the transmission time information as a clock.
- the steps of the method are repeated according to a time interval specific to the communications network.
- the synchronization method can advantageously be implemented in accordance with a given frequency value.
- the primary server can be different in time, thus improving the reliability of the determination of the time information used for the synchronization of the data in the communications network.
- the data results from the resolution of a cryptographic problem.
- the method is all the more reliable when it is difficult to determine the data resulting from the execution of a selection algorithm of the primary server so that the server solving the resolution of the cryptographic problem can change over time or that the risks associated with a malicious server transmitting time information to other servers are reduced.
- the resolution requiring computer resources and computing capacities, the probability that a single communication server solves the algorithm is less.
- the validation of the synchronization challenge is relative to the number of acknowledgment messages received.
- certain secondary servers determine that the time information can be used or not, in accordance with the determination method implemented by the secondary servers.
- the primary server can, for example, compare the number of acknowledgment messages received with the number of secondary servers requested to validate or not the transmission time information and consecutively, to record the synchronization challenge.
- the validation of a synchronization challenge further comprises F at least one acknowledgment message received.
- the recording of the acknowledgment messages received makes it possible to identify the servers having effectively validated the transmission time information and therefore to be able to determine the clock used in particular for the timestamping of the data transmitted by the servers having transmitted these messages. 'acquittal.
- the synchronization method further comprises the recording of a reward characteristic of the primary server if the number of acknowledgment messages received is greater than a confidence threshold.
- the primary server is rewarded. For example, a primary server having issued time information which is subsequently effectively validated by a sufficient number of servers secondaries, then that primary server is rewarded. This reward can be taken into account in the selection algorithm during the next implementations of the method and/or the entity in charge of the server can be rewarded according to this reward characteristic.
- the method is based on trust and on the participation of the various servers of the plurality. If it turns out that the transmission time information is not validated by a sufficient number of secondary servers, that is to say below a so-called primary server confidence threshold, then the primary server is penalized .
- the confidence threshold is possibly taken into account in the selection process of the primary server in the plurality to improve the consensus mechanism for the validation of the transmission time information.
- the synchronization method further comprises the prior acquisition of the transmission time information from an external source.
- the transmission time information considered as the reference clock for a period of time before another transmission time information is offered by the same primary server or another primary server selected from the plurality, is advantageously obtained from a third party.
- the invention also relates to a method for determining a time reference used for timestamping data exchanged between a plurality of communications servers of a communications network, said plurality comprising a primary server capable of transmitting time information from transmission and at least one secondary server, said method being implemented by F at least one secondary server, and comprising:
- a secondary server intervenes in the synchronization process by itself being able to become a primary server and also by analyzing the time analysis received in relation to a clock, which can be an internal clock or a clock received from a third-party server. Thus, depending on the difference between the calculated value and the value of the clock, it sends an acknowledgment message or not and thus validates or not the time information received.
- a clock which can be an internal clock or a clock received from a third-party server.
- the reception time information is calculated as a function of the data propagation time between the primary server and F at least one secondary server.
- the calculation can advantageously consist of adding the propagation time of the data between the primary server and the secondary server to the time information received, and the determination of the difference then consists of subtracting a clock value from the calculated value. Depending on this difference and the tolerance acceptable to the secondary server, the latter transmits an acknowledgment message or not.
- the method for determining further comprises a comparison of the difference with a tolerance value, and the updating of the local clock with the transmission time information received if the deviation is less than the tolerance value.
- a secondary server can have its own tolerance vis-à-vis the transmission time information received and if this proves to be too different from its local clock, i.e. the difference between the transmission time information and the local clock is too high, then the secondary server may consider that the time information received is not valid. Depending on the number of acknowledgments received, a new primary server may be elected by running a new selection algorithm.
- the invention also relates to a device for synchronizing a plurality of communication servers of a communication network, capable of exchanging timestamped data with the aid of a time reference comprising A sender, able to send to the other communication servers of the plurality, called secondary servers, an initialization message comprising an identifier of the primary server, data resulting from the execution of a server selection algorithm primary among the servers of the plurality, time information for sending the initialization message,
- a receiver capable of receiving from at least one secondary server an acknowledgment message for the initialization message sent
- a recorder capable of validating a synchronization challenge comprising the difference between a recorded transmission time reference and the transmission time information of the initialization message, the transmission time information replacing the recorded time reference for the timestamp of the data exchanged between the servers of the plurality after the validation.
- This device able to implement in all its embodiments the synchronization method described above, is intended to be implemented in a data server, for example instantiated in a virtual machine or a container and/or in a cloud environment of a data network.
- the invention also relates to a device for determining a time reference used for timestamping data exchanged between a plurality of communications servers of a communications network, said plurality comprising a primary server capable of transmitting time information from transmission and at least one secondary server comprising
- a receiver capable of receiving from the primary server, an initialization message comprising an identifier of the primary server, data resulting from the execution of an algorithm for selecting the primary server from among the servers of the plurality, a time information for transmission of the initialization message,
- a determination module capable of determining a difference between reception time information calculated from the transmission time information received and a local clock of F at least one secondary server, - a transmitter, capable of transmitting an acknowledgment message of the initialization message received according to the determined deviation.
- This device capable of implementing in all its embodiments the determination method which has just been described, is intended to be implemented in a data server, for example instantiated in a virtual machine or a container and/ or in a cloud environment of a data network.
- the invention also relates to a system for synchronizing a plurality of communication servers of a communications network, capable of exchanging timestamped data with the aid of a time reference, said system comprising
- a primary server comprising a synchronization device
- At least one secondary server comprising a determination device.
- the invention also relates to a computer program comprising instructions for implementing the steps of the synchronization method which has just been described, when this program is executed by a processor and a recording medium readable by a synchronization on which the computer program is saved.
- the invention also relates to a computer program comprising instructions for implementing the steps of the determination method which has just been described, when this program is executed by a processor and a recording medium readable by a determination on which computer programs are stored.
- These programs may use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in partially compiled form, or in any other desirable form.
- the invention also relates to an information medium readable by a computer, and comprising instructions for computer programs as mentioned above.
- the information medium can be any entity or device capable of storing the programs.
- the medium may comprise a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or even a magnetic recording means, for example on a hard disk.
- the information medium can be a transmissible medium such as an electrical or optical signal, which can be conveyed via an electrical or optical cable, by radio or by other means.
- the programs according to the invention can in particular be downloaded from an Internet-type network.
- the information carrier may be an integrated circuit in which the programs are incorporated, the circuit being adapted to execute or to be used in the execution of the methods in question.
- FIG 1 presents a simplified view of a communications infrastructure comprising a virtual data space in which a synchronization method and a determination method are implemented
- FIG 2 presents an overview of the synchronization method according to a first embodiment of the invention
- FIG 3 presents a method for determining time information used for timestamping data exchanged between a plurality of communications servers of a communications network according to a second embodiment of the invention
- FIG 4 presents an example of the structure of a synchronization device according to another embodiment of the invention.
- FIG 5 presents an example of the structure of a device for determining time information used for timestamping data exchanged between a plurality of communications servers of a communications network according to another embodiment of the 'invention.
- FIG. 1 presents a simplified view of a communications infrastructure comprising a virtual data space in which a synchronization method and a determination method are implemented.
- a set of connectors 10, 20, 30, 40, 50, 100 also called communication servers are interconnected and exchange data in a virtual data space 1000 (in English data-space).
- the number of connectors is not limited and may also be less than the number shown in [Fig 1] as an example.
- the virtual data space 1000 allows a set of actors (companies, network operators, cloud space operators, etc.) to exchange data in a secure manner with the aim of providing a service to a customer.
- Each communication server manages its data and decides which data it wants to share with the other actors participating in the virtual 1000 data space.
- the virtual data space 1000 is deployed on a communication infrastructure, fixed and/or mobile, allowing the various servers 10, 20, 30, 40, 50, 100 to be able to exchange data.
- the exchange of data between the communication servers 10, 20, 30, 40, 50, 100 requires that the servers use the same clock to timestamp the data exchanged between these servers.
- the various communication servers 10, 20, 30, 40, 50, 100 of the virtual data space 1000 carry out a consensus loop aimed at electing a so-called primary server from among the servers 10, 20, 30, 40, 50, 100 communications. It should be noted that it is possible that only part of the communication servers 10, 20, 30, 40, 50, 100 carry out the consensus loop.
- This consensus loop corresponds, according to this embodiment, to the execution of an algorithm for selecting a server from among the servers 10, 20, 30, 40, 50, 100 for communication in the space 1000 of data.
- each communication server 10, 20, 30, 40, 50, 100 to solve a cryptographic problem consisting for example of finding a so-called "nonce" value or a numerical value to solve an equation or an inequality.
- the primary server will be that of the servers 10, 20, 30, 40, 50, 100 having first solved the selection algorithm among the communication servers 10, 20, 30, 40, 50, 100 and which is therefore capable of transmitting data resulting from the execution of the selection algorithm to the other servers.
- the communication server 100 is the first to solve F selection algorithm and therefore transmits the data resulting from the execution of the algorithm to the other servers 10, 20, 30, 40, 50 of the data space.
- the resulting datum may for example be the “nonce” value or else the numerical value indicated above.
- the sending of the data resulting from the execution of the selection algorithm has the advantage, in addition to the fact of indicating to the servers 10, 20, 30, 40, 50 that a master clock will be proposed, to improve the level of security of the data space by guaranteeing that the server 100 has indeed carried out the selection algorithm.
- the servers 10, 20, 30, 40, 50 can in fact check the data received and ensure that it indeed results from the algorithm that these servers will have themselves carried out. The sending of this datum therefore prevents the sending of a clock by an unauthorized communication server or one which has not resolved the selection algorithm.
- step SI corresponding to the consensus loop because the latter includes the election of the server 100 as primary server, it alone having solved the selection algorithm or because he was the first to solve the selection algorithm among the servers in the data space.
- the server 100 called primary sends to the servers 10, 20, 30, 40, 50 called secondary servers, an initialization message comprising an identifier of the server 100, for example an IP address, an identifier FQDN (in English Fully Qualified Domain Name) or any other identifier specific or not to the 1000 data space.
- an identifier of the server 100 for example an IP address, an identifier FQDN (in English Fully Qualified Domain Name) or any other identifier specific or not to the 1000 data space.
- the signature of the frame can be done using the ECDSA protocol (in English “Elliptic Curve Digital Signature Algorithm”), also used on the current implementation of Bitcoin.
- This message also comprises the result of the execution of the selection algorithm, described above, as well as transmission time information for the initialization message transmitted. According to one example, this is the information corresponding to the moment when the message is actually transmitted.
- the server 100 can use a clock retrieved from an external source to define this time information.
- this time information can be formatted according to the definition of the PTP protocol, thus allowing precision of the order of a nanosecond.
- Table 1, presented below, describes an example of information transmitted in the initialization message transmitted by the server 100.
- the “transmission timestamp” corresponds to the transmission time information described above.
- the secondary servers 10, 20, 30, 40, 50 receive these initialization messages comprising the information indicated above. Upon receipt of this initialization message, during a step S3, Upon receipt of this frame, each server 10, 20, 30, 40, 50 will proceed to its verification. The first step of this verification will concern the signature of the primary server 100, as well as the proof (result of the selection algorithm); these two fields making it possible to certify the validity of the server 100.
- the secondary servers 10, 20, 30, 40, 50 determine a difference between the transmission time information received in the initialization message and a local clock of the servers 10, 20, 30, 40, 50 secondaries.
- the secondary servers 10, 20, 30, 40, 50 can have their own local clock or retrieve a clock from a remote server.
- each secondary server 10, 20, 30, 40, 50 involved that is to say having received the initialization message, calculates the corrected time, by adding to the time information of transmission contained in the initialization message, the data propagation delay between the server 100 and the secondary server considered.
- the server 10 will add the transmission time information received to the propagation time, which can be obtained for example from an ICMP (Internet Control Message Protocol) message.
- ICMP Internet Control Message Protocol
- This corrected time will then be compared with the time of reception of the initialization message evaluated from the local clock of the connector.
- the difference between the two hours (the corrected time and the actual reception time) must remain within a certain tolerance.
- the verification of the corrected time is thus left to the free choice of the secondary server, which will be based on its own policy.
- a global policy could be implemented within the data space 1000 to harmonize the rules for validating the initialization messages between the secondary servers 10, 20, 30, 40, 50.
- the secondary server 10, 20, 30, 40, 50 transmits during a step S4 an acknowledgment message for the initialization message received.
- the secondary servers 10, 20, 30 send an acknowledgment message during step S4.
- the other two secondary servers, namely the servers 40, 50 did not send an acknowledgment message because they did not attest to the primary server 100, or because they did not decipher the signature of the latter. ci or because the result of the server selection algorithm 100 has not been validated by these servers 40, 50.
- the difference between the times calculated by these servers 40, 50 is greater than a tolerance value and they therefore do not validate the transmission time information received.
- the servers 10, 20, 30 transmitting an acknowledgment message to the initialization message received, they update their local clock using the transmission time information which becomes the clock value for the exchanges of data between the servers 100, 10, 20, 30.
- the other secondary servers that is to say the servers 40 and 50 do not update their local clock since they do not emit acknowledgment messages and therefore do not validate the transmission time information received.
- the acknowledgment messages received are signed by the secondary servers 10, 20, 30 to authenticate the validity of the issuers of these acknowledgment messages.
- the primary server 100 Upon receipt of the acknowledgment messages from the secondary servers 10, 20, 30 having validated the initialization message received, the primary server 100 records during a step S5 a synchronization challenge in a register 60 of data.
- This synchronization challenge comprises a difference between the transmission time information transmitted and the time information recorded.
- This recorded time information is transmission time information previously transmitted by one of the servers 10, 20, 30, 40, 50, 100 of the space 1000 of data.
- the transmission time information used by servers among the servers 10, 20, 30, 40, 50, 100 of the data space 1000 is regularly updated in accordance with steps S1, S2, S3, S4, S5 described above and replicated repeatedly, the primary server being able to change during these different iterations in accordance with the execution of a selection algorithm which can induce a change of primary server at each iteration.
- the recorded synchronization challenge further comprises, according to an example, the initialization message sent and possibly the acknowledgment messages received from the servers 10, 20, 30.
- An example of a synchronization challenge is presented in Table 2 below. -below.
- the update of the transmission time information which will be used for the timestamping of the data exchanged from the moment the challenge is recorded, is based on the good participation of all the servers 10, 20, 30, 40, 50 and their ability to return signed acknowledgements. It is therefore preferable that the updating of the clock be carried out in a secure environment. However, it is not guaranteed that all the servers of the virtual data space 1000 contribute to this update. According to one option, for the server 100 to validate this new transmission time information, it can consider the number of acknowledgment messages received from the servers 10, 20, 30, 40, 50.
- the primary server 100 having received 3 acknowledgments from the 5 secondary servers 10, 20, 30, 40, 50 of the data space 1000, the primary server 100 can validate the information transmission time transmitted in the initialization message and save it in the data register 60, which would not have been the case if it had only received 2 acknowledgment messages while the minimum rate d acquittals received was 60%. In the latter case, the recorded time information would have continued to be used for timestamping the data exchanged in the 1000 data space.
- the validity of the acknowledgment signatures can also be checked by the primary server 100 when they are received.
- the primary server 100 obtains a reward and this reward characteristic (monetary, token) is possibly recorded in the register 60 of data. This remuneration thus encourages the servers 10, 20, 30, 40, 50, 100 to take part in the synchronization process.
- a penalty may be assigned to the primary 100 server.
- the virtual data space in which a primary server (or connector) and at least one secondary server (or connector) are deployed forms a static topology known to all (for example, they are interconnected via a wired network) .
- the propagation delays between connectors are constant and known to all.
- the connectors each have a local clock, potentially synchronized from an external reference (GNSS, time server, mobile network, etc.).
- the primary connector executes a selection algorithm.
- the primary connector and at least one secondary connector execute this algorithm but only one will be selected to become the primary connector.
- Each connector thus integrates an application certified for example by a regulatory entity, allowing multi-actor synchronization of the connectors.
- the application first integrates a consensus loop (selection algorithm) executed by all, regularly allowing the selection of a primary connector, algorithmically.
- This consensus loop will involve cryptographic mechanisms making it possible to make the process of selecting the primary connector fair between the connectors, while preventing attacks of the Byzantine type, or of the Denial of Service type.
- the use of such a mechanism makes it possible to make the architecture resilient. Indeed, any connector has its chances of being elected.
- the mechanism is thus designed so that if a connector sends an incorrect synchronization frame, the latter can simply be ignored by the others, because another primary connector will be selected by consensus.
- the primary connector acquires a clock, for example from the local clock indicated above. This acquisition step is considered optional since the connector can receive a clock regardless of whether it becomes a primary connector or not.
- the connector elected as primary connector broadcasts a synchronization frame (also called initialization message) to F at least one secondary server of the data space 1000 .
- This framework includes in particular the clock acquired by the primary connector during the "Acquired” step. This clock is intended to become the time reference of the data space until a new time reference is selected.
- a "primary connector" responsible for giving a time reference to the data space, by means of a synchronization frame comprising this time reference, or clock, or transmission time information .
- the primary connector receives the acknowledgments from F at least one secondary connector having effectively accepted and validated the time reference received from the primary connector.
- the number of acknowledgment messages received indicates to the primary connector the level of acceptance of the temporal reference in the data space.
- the primary connector once it has collected the acknowledgments thus broadcast, records during a "Save" step the result of the synchronization process implemented in a trusted register, by means of a transaction.
- This transaction will contain the complete synchronization frame, possibly the acknowledgments collected as well as the time difference between the old and the new time reference of the data space, which can be coded on a 32-bit signed integer.
- FIG 3 an overview is presented of the method for determining time information used for timestamping data exchanged between a plurality of communications servers of a communications network implemented by a server ( indifferently called secondary connector) according to a first embodiment of the invention.
- a secondary connector can try, during an “Algo test” step, to solve the selection algorithm used to select the primary connector. This step is optional because a server is not required to try to solve the algorithm and whether it tries to solve it or does not try, a connector is said to be secondary due to the fact that it did not succeed in solving the algorithm, by default of attempt or following a failure, or because he is not the first to solve said algorithm.
- a secondary connector of the data space implemented on a communication network receives from the primary connector a synchronization frame comprising the clock proposed by the connector primary as well as the proof of the execution of the consensus loop (corresponding to the selection algorithm) and an identifier of the primary connector such as a signature.
- the secondary server On receipt of the synchronization frame, during a “Time stamp” step, the secondary server saves the clock transmitted by the primary connector, this clock being able to be used by the secondary connector if it validates it during a step next.
- the secondary server Before validating this clock, during a "Tests” step, the secondary server ensures that the synchronization frame received actually comes from the primary connector by checking the identifier included in the synchronization frame and verifying that it successfully executed the consensus loop. In the event that the test is negative, i.e. one and/or the other of the information is not compliant (the identifier does not correspond to a server in the data space and /or the data does not result from the execution of the consensus loop), then it ignores during an “Ignor” step the synchronization frame received and does not take into account the information present in this frame.
- the secondary connector determines a difference between the received clock modified to take into account the duration of transmission of this local clock in the synchronization frame routed between the primary connector and the secondary connector and a clock local of the secondary server.
- H1 represents the transmission time information or the clock transmitted in the synchronization frame and H2
- a local clock of the secondary server and the propagation time of the synchronization frame between the primary connector and the secondary connector is Tl
- the secondary server calculates H 1 + Tl.
- the secondary server can use another method or another calculation to compare H1 and H2.
- the secondary server can also consider H2 as valid by comparing H1 and H2 independently of the propagation time.
- the secondary connector compares H2 with H1+T1 during a “Verif” step. If during this "Verif” step, the secondary connector determines that the absolute value of H2 - (Hl+Tl) is less than a tolerance value, then the secondary server validates the H1 clock received and transmits during a step “Sending”, an acknowledgment message for the synchronization frame received. If the secondary connector does not take into account T1, then it compares the values of H1 and H2. Preferably, it transmits the acknowledgment in a message, preferably signed, for example with the protocol ECDSA, with the signature specific to the secondary connector, in accordance with the technical requirements of a virtual data space. If during the “verif” step, the difference between H2 and (H 1 +T1) is too great, then the secondary connector ignores the synchronization frame received during an “Ignor” step.
- the secondary connector can update its local clock with the H1 clock only once it has received a confirmation message received from the primary connector. In particular, this allows a new clock to be used only if the primary connector receives enough acknowledgment messages from the secondary servers, thus guaranteeing that this clock is used by a sufficient number of servers in the data space.
- the synchronization device 400 implements the synchronization method, various embodiments of which have just been described.
- Such a device 400 can be implemented in a data server, for example instantiated in a virtual machine or a container and/or in a cloud environment of a data network.
- the device 400 comprises a processing unit 430, equipped for example with a microprocessor pP, and controlled by a computer program 410, stored in a memory 420 and implementing the determination method according to the invention.
- a computer program 410 stored in a memory 420 and implementing the determination method according to the invention.
- the code instructions of the computer program 410 are for example loaded into a RAM memory, before being executed by the processor of the processing unit 430.
- Such a device 400 comprises:
- a transmitter 401 able to send to the other communication servers of the plurality, called secondary servers, an initialization message Init comprising an identifier of the primary server, data resulting from the execution of a selection algorithm of the primary server among the servers of the plurality, time information for sending the initialization message,
- a receiver 402 capable of receiving from at least one secondary server an Acknowledgment message for the initialization message sent,
- a recorder 403 capable of validating a synchronization challenge comprising the difference between a recorded transmission time reference and the transmission time information of the initialization message, the transmission time information replacing the recorded time reference for the timestamp of the data exchanged between the servers of the plurality after recording.
- FIG 5 an example of the structure of a device for determining a time reference used for timestamping data exchanged between a plurality of communications servers of a communications network according to another is presented. embodiment of the invention.
- the determination device 500 implements the method for determining time information used for timestamping data exchanged between a plurality of communications servers of a communications network, of which various embodiments have just been described.
- Such a device 500 can be implemented in a data server, for example instantiated in a virtual machine or a container and/or in a cloud environment of a data network.
- the device 500 comprises a processing unit 530, equipped for example with a microprocessor pP, and controlled by a computer program 510, stored in a memory 520 and implementing the charging method according to the invention.
- a computer program 510 stored in a memory 520 and implementing the charging method according to the invention.
- the code instructions of the computer program 510 are for example loaded into a RAM memory, before being executed by the processor of the processing unit 530.
- Such a device 500 comprises:
- a receiver 501 capable of receiving from the primary server, an initialization message Init comprising an identifier of the primary server, data resulting from the execution of an algorithm for selecting the primary server from among the servers of the plurality, time information for sending the message initialization,
- a determination module 502 capable of determining a difference between reception time information calculated from the transmission time information received and a local clock of F at least one secondary server, - a transmitter 503, capable of transmitting an Acknowledgment message of acknowledgment of the initialization message received according to the difference determined.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
L'invention concerne un procédé de de synchronisation d'une pluralité de serveurs (10, 20, 30, 40, 50, 100) de communication, aussi appelés connecteurs, d'un réseau (1000) de communications, aptes à s'échanger des données horodatées à l'aide d'une référence temporelle, ledit procédé étant mis en œuvre par un serveur (100) de la pluralité, appelé serveur primaire, et comprenant une émission (S2) à destination des autres serveurs (10, 20, 30, 40, 50) de communication de la pluralité, dits serveurs secondaires, d'un message d'initialisation comprenant un identifiant du serveur (100) primaire, une donnée résultant de l'exécution (S1) d'un algorithme de sélection du serveur primaire parmi les serveurs de la pluralité, une information temporelle d'émission du message d'initialisation, une réception (S4) en provenance d'au moins un serveur (10, 20, 30) secondaire d'un message d'acquittement du message d'initialisation émis, ainsi qu'une validation (S5) d'un défi de synchronisation comprenant la différence entre une référence temporelle d'émission enregistrée et l'information temporelle d'émission du message d'initialisation, l'information temporelle d'émission remplaçant la référence temporelle enregistrée pour l'horodatage des données échangées entre les serveurs (10, 20, 30, 40, 50, 100) de la pluralité après la validation.
Description
DESCRIPTION
Titre de l'invention : Procédé de synchronisation d’une pluralité de serveurs de communications, dispositifs et programmes d’ordinateurs correspondants
1. Domaine technique
L'invention est mise en œuvre dans un espace virtuel de données, par exemple mis en œuvre par une pluralité de partenaires, déployé sur une infrastructure de communications. L’invention est relative à la synchronisation temporelle des serveurs de communication intervenant dans l’élaboration et au traitement des données.
2. Etat de la technique
Le secteur des télécommunications est au cœur d’une transformation digitale qui s’appuie sur des technologies émergentes telles que la virtualisation des fonctions réseaux (VNE - Virtual Network Eunctions), consistant à découpler les fonctions réseau des équipements physiques dédiés pour déployer les fonctions réseau dans des espaces de stockage, ou cloud, plus ou moins distribués et en s’appuyant sur des serveurs génériques.
Cette évolution des réseaux de télécommunications s’appuie en outre sur des technologies émergentes notamment basées sur des registres distribués et sur l’enregistrement des données dans ces registres sans qu’il y ait recours à une autorité de certification. Ainsi, les différentes transactions sont enregistrées dans des registres distribués par des fonctions spécifiques, appelés mineurs, ayant suffisamment de capacité pour résoudre une énigme et ainsi obtenir l’autorisation d’effectuer l’enregistrement des transactions dans les registres.
L’échange et le traitement des données au sein de l’espace virtuel de données requièrent un horodatage. En effet, pour classer, pour authentifier ou plus globalement pour respecter un niveau de sécurité pour les données échangées, il est nécessaire qu’une information temporelle soit ajoutée aux données échangées entre les serveurs de communication, aussi appelés connecteurs, d’un espace virtuel de données. Hors, pour que l’information temporelle puisse être exploitée par les différentes entités intervenant dans l’espace virtuel de données, il convient que la fonction d’horodatage des données utilisée par chaque connecteur pour ajouter l’information temporelle aux données s’appuie sur une horloge partagée entre les différents connecteurs. H est en effet nécessaire que les différents connecteurs utilisent une même référence temporelle pour que les informations d’horodatage ajoutées par chaque connecteur puissent être
exploitées par les autres connecteurs ou par d’autres entités de l’espace virtuel de données.
Un connecteur doit donc comprendre une horloge locale pour pouvoir effectivement ajouter une information d’horodatage aux données échangées dans un espace virtuel de données.
Selon les techniques antérieures, l’horloge locale utilisée par chaque connecteur, est par exemple synchronisée sur une horloge externe de meilleure précision, telle qu’un satellite GNSS (Géolocalisation et Navigation par un Système de Satellites) ou bien un serveur de temps. A ce jour, une pluralité de protocole parmi lesquels
NTP (en anglais Network Time Protocol - IETF RFC5905 -D. Mills et al. - Network Time Protocol version 4 : Protocol and Algorithms Specification) PTP (en anglais Precision Time Protocol - 1588-2008 - IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems)
Timesync - S. Ruffini and B. Giulio. Methods of time synchronisation in communications networks - U.S. Patent No. 9,094,142.28 Jul. 2015
Ces protocoles et techniques utilisées dans les espaces virtuels de données, selon les techniques relevant de l’état de l’art, consistent à utiliser une seule référence temporelle pour tous les connecteurs. D’une part, dans un contexte d’espace virtuel de données où les connecteurs sont possiblement administrés par des entités distinctes, il est possible que diverses sources ou références soient utilisées par les différents connecteurs, ce qui induit que la solution basée sur une référence temporelle unique n’est pas adaptée au contexte d’utilisation dans un espace virtuel de données multi- acteurs. Il est à noter que même dans un espace virtuel de données mono-acteur, il peut être difficile d’un point de vue architectural de se référer à une source temporelle unique. En outre, cette solution n’est pas satisfaisante car si la référence unique est défaillante ou bien compromise, alors la synchronisation par référence unique n’est pas complètement satisfaisante. Par ailleurs, dans le cas d’une attaque ou d’un dysfonctionnement de l’horloge de référence, aussi appelée horloge maître, alors la synchronisation des connecteurs et donc des données échangées entre les connecteurs s’avère au mieux inexacte et au pire inopérante. Il est à noter que dans un cadre multi- acteurs, notamment, il est possible de mettre en œuvre des mécanismes de sécurité tels que spécifiés dans le document IETF RFC 7384 (T. Mizrahi. - Security Requirements
of Time Protocols in Packet Switched Networks) mais ces mécanismes nécessitent la mise en place d’un médiateur à base de tiers de confiance qui peut être coûteux à mettre en œuvre et qui repose sur une entité de confiance, et qui peut s’avérer complexe à mettre en œuvre entre différents acteurs. En outre, le recours à une entité de confiance représente une composante critique en termes de sécurité.
La présente invention a pour objet d’apporter des améliorations par rapport à l’état de la technique.
3. Exposé de l'invention
L'invention vient améliorer la situation à l'aide d'un procédé de synchronisation d’une pluralité de serveurs de communication d’un réseau de communications, aptes à s’échanger des données horodatées à l’aide d’une référence temporelle, ledit procédé étant mis en œuvre par un serveur de la pluralité, appelé serveur primaire, et comprenant :
Une émission à destination des autres serveurs de communication de la pluralité, dits serveurs secondaires, d’un message d’initialisation comprenant un identifiant du serveur primaire, une donnée résultant de l’exécution d’un algorithme de sélection du serveur primaire parmi les serveurs de la pluralité, une information temporelle d’émission du message d’initialisation,
Une réception en provenance d’au moins un serveur secondaire d’un message d’acquittement du message d’initialisation émis,
Une validation d’un défi de synchronisation comprenant la différence entre une référence temporelle d’émission enregistrée et l’information temporelle d’émission du message d’initialisation, l’information temporelle d’émission remplaçant la référence temporelle enregistrée pour l’horodatage des données échangées entre les serveurs de la pluralité après la validation.
La synchronisation par un des serveurs de communication, aussi appelés connecteurs, dans un réseau de communications, tel qu’un espace virtuel de données, est mise en œuvre suite au processus de sélection d’un serveur, dit serveur primaire, parmi les serveurs du centre de données. En transmettant un message d’initialisation comprenant une donnée résultant de l’exécution d’un algorithme de sélection, les autres serveurs du réseau de communications, aussi appelés serveurs secondaires, peuvent ainsi vérifier que le serveur transmettant le message d’initialisation est bien autorisé à transmettre une information temporelle. En effet, une pluralité de serveurs de l’espace
de données exécute l’algorithme de sélection, et un parmi ceux-ci exécute plus rapidement ou est le seul à pouvoir exécuter l’algorithme et devient pour une période donnée le serveur de référence pour la détermination de l’horloge utilisée pour l’horodatage des données échangées entre les différents connecteurs dans le réseau de communications. L’information temporelle d’émission correspondant au moment où le message d’initialisation est effectivement transmis aux autres connecteurs est ensuite utilisée par les autres connecteurs pour vérifier que l’information temporelle peut effectivement être utilisée comme référence de synchronisation. La réception d’un message d’acquittement permet d’une part de vérifier l’identité du connecteur secondaire transmettant le message d’acquittement et d’autre part de déterminer que l’information temporelle d’émission a été validée par le connecteur secondaire. De façon incidente, la non réception d’un tel message en provenance d’un serveur secondaire indique que le serveur secondaire ne valide pas l’information temporelle transmise. La validation et l’enregistrement du défi de synchronisation comprenant l’information temporelle d’émission permet de pouvoir récupérer l’information de synchronisation lors d’une future analyse des données échangées entre les connecteurs. La chronologie des échanges entre les connecteurs ainsi que les périodes de validité de clés de sécurité par exemple sont pertinentes par rapport à une information temporelle qu’il est possible de retrouver dans les données enregistrées. Le procédé permet ainsi de pouvoir mettre en œuvre une sélection fiable de la référence temporelle dans un espace de données, des connecteurs différents de l’espace de données étant susceptibles de déterminer successivement une information temporelle de référence à utiliser par les autres connecteurs. De façon préférentielle, seuls les serveurs secondaires ayant effectivement transmis un message d’acquittement et le serveur primaire utilise l’information temporelle d’émission comme horloge.
Selon un aspect de l'invention, les étapes du procédé sont réitérées selon un intervalle de temps propre au réseau de communications.
Le procédé de synchronisation peut avantageusement être mis en œuvre conformément à une valeur fréquentielle donnée. Ainsi, le serveur primaire peut être différent dans le temps améliorant ainsi la fiabilité de la détermination de l’information temporelle utilisée pour la synchronisation des données dans le réseau de communications.
Selon un autre aspect de l’invention, dans le procédé de synchronisation, la donnée résulte de la résolution d’un problème crypto graphique.
Le procédé est d’autant plus fiable qu’il est difficile de déterminer la donnée résultant de l’exécution d’un algorithme de sélection du serveur primaire de façon que le serveur résolvant la résolution du problème cryptographique puisse changer dans le temps ou que les risques liés à ce qu’un serveur malveillant transmette une information temporelle à d’autres serveurs soient réduits. La résolution requérant des ressources informatiques et des capacités de calcul, la probabilité pour qu’un unique serveur de communication résolve l’algorithme est moindre.
Selon un autre aspect de l’invention, dans le procédé de synchronisation, la validation du défi de synchronisation est relative au nombre de messages d’acquittements reçus. Parmi la pluralité de serveurs présents dans le réseau de communications, certains serveurs secondaires déterminent que l’information temporelle peut être utilisée ou non, conformément au procédé de détermination mis en œuvre par les serveurs secondaires. Le serveur primaire peut selon un exemple comparer le nombre de messages d’acquittements reçus par rapport au nombre de serveurs secondaires sollicité pour valider ou non l’information temporelle d’émission et consécutivement, pour enregistrer le défi de synchronisation.
Selon un autre aspect de l’invention, dans le procédé de synchronisation, la validation d’un défi de synchronisation comprend en outre F au moins un message d’acquittement reçu.
L’enregistrement des messages d’acquittement reçus permet d’identifier les serveurs ayant effectivement validé l’information temporelle d’émission et donc de pouvoir déterminer l’horloge utilisée notamment pour l’horodatage des données émises par les serveurs ayant émis ces messages d’acquittement.
Selon un autre aspect de l’invention, le procédé de synchronisation comprend en outre l’enregistrement d’une caractéristique de récompense du serveur primaire si le nombre de messages d’acquittement reçus est supérieur à un seuil de confiance.
Dans le but d’encourager les serveurs de communication à résoudre l’algorithme de sélection pour être désigné serveur primaire, et pour augmenter les chances qu’une information temporelle d’émission soit effectivement validée, le serveur primaire est récompensé. Par exemple, un serveur primaire ayant émis une information temporelle qui est par la suite effectivement validée par un nombre suffisant de serveurs
secondaires, alors ce serveur primaire est récompensé. Cette récompense peut être prise en compte dans l’algorithme de sélection lors des prochaines mises en œuvre du procédé et/ou l’entité en charge du serveur peut se voir rétribuer en fonction de cette caractéristique de récompense. Le procédé repose sur une confiance et sur une participation des différents serveurs de la pluralité. S’il s’avère que l’information temporelle d’émission n’est pas validée par un nombre suffisant de serveurs secondaires, c’est-à-dire sous un seuil dit de confiance du serveur primaire, alors le serveur primaire est pénalisé. Le seuil de confiance est possiblement pris en compte dans le processus de sélection du serveur primaire dans la pluralité pour améliorer le mécanisme de consensus pour la validation de l’information temporelle d’émission.
Selon un autre aspect de l’invention, le procédé de synchronisation comprend en outre l’acquisition préalable de l’information temporelle d’émission auprès d’une source externe.
L’information temporelle d’émission, considérée comme l’horloge de référence pendant une période de temps avant qu’une autre information temporelle d’émission soit proposée par le même serveur primaire ou un autre serveur primaire sélectionné parmi la pluralité, est avantageusement obtenue auprès d’une entité tierce.
Les différents aspects du procédé de synchronisation qui viennent d'être décrits peuvent être mis en œuvre indépendamment les uns des autres ou en combinaison les uns avec les autres.
L’invention concerne également un procédé de détermination d’une référence temporelle utilisée pour l’horodatage de données échangées entre une pluralité de serveurs de communications d’un réseau de communications, ladite pluralité comprenant un serveur primaire apte à émettre une information temporelle d’émission et au moins un serveur secondaire, ledit procédé étant mis en œuvre par F au moins un serveur secondaire, et comprenant :
- une réception en provenance du serveur primaire, d’un message d’initialisation comprenant un identifiant du serveur primaire, une donnée résultant de l’exécution d’un algorithme de sélection du serveur primaire parmi les serveurs de la pluralité, une information temporelle d’émission du message d’initialisation,
- une détermination d’un écart entre une information temporelle de réception calculée à partir de l’information temporelle d’émission reçue et une horloge locale de l’au moins un serveur secondaire,
- une émission d’un message d’acquittement du message d’initialisation reçu en fonction de l’écart déterminé.
Un serveur secondaire intervient dans le procédé de synchronisation en pouvant lui- même devenir serveur primaire et également en analysant l’analyse temporelle reçue par rapport à une horloge, qui peut être une horloge interne ou une horloge reçue d’un serveur tiers. Ainsi, en fonction de l’écart entre la valeur calculée et la valeur de l’horloge, il émet un message d’acquittement ou non et valide ainsi ou non l’information temporelle reçue.
Selon un autre aspect de l’invention, dans le procédé de détermination, l’information temporelle de réception est calculée en fonction du temps de propagation de données entre le serveur primaire et F au moins un serveur secondaire.
Le calcul peut avantageusement consister à ajouter le temps de propagation des données entre le serveur primaire et le serveur secondaire à l’information temporelle reçue, et la détermination de l’écart consiste alors à soustraire à la valeur calculée une valeur d’horloge. En fonction de cet écart et de la tolérance acceptable par le serveur secondaire, celui-ci transmet ou non un message d’acquittement.
Selon un autre aspect de l’invention, le procédé de détermination comprend en outre une comparaison de l’écart avec une valeur de tolérance, et la mise à jour de l’horloge locale avec l’information temporelle d’émission reçue si l’écart est inférieur à la valeur de tolérance.
Un serveur secondaire peut avoir sa propre tolérance vis-à-vis de l’information temporelle d’émission reçue et si celle-ci s’avère être trop différente de son horloge locale, c’est-à-dire que l’écart entre l’information temporelle d’émission et l’horloge locale est trop important, alors le serveur secondaire peut considérer que l’information temporelle reçue n’est pas valide. En fonction du nombre d’acquittements reçus, un nouveau serveur primaire pourra être élu par l’exécution d’un nouvel algorithme de sélection.
Les différents aspects du procédé de détermination qui viennent d'être décrits peuvent être mis en œuvre indépendamment les uns des autres ou en combinaison les uns avec les autres.
L’invention concerne également un dispositif de de synchronisation d’une pluralité de serveurs de communication d’un réseau de communications, aptes à s’échanger des données horodatées à l’aide d’une référence temporelle comprenant
Un émetteur, apte à émettre à destination des autres serveurs de communication de la pluralité, dits serveurs secondaires, d’un message d’initialisation comprenant un identifiant du serveur primaire, une donnée résultant de l’exécution d’un algorithme de sélection du serveur primaire parmi les serveurs de la pluralité, une information temporelle d’émission du message d’initialisation,
Un récepteur, apte à recevoir en provenance d’au moins un serveur secondaire d’un message d’acquittement du message d’initialisation émis,
Un enregistreur, apte à valider un défi de synchronisation comprenant la différence entre une référence temporelle d’émission enregistrée et l’information temporelle d’émission du message d’initialisation, l’information temporelle d’émission remplaçant la référence temporelle enregistrée pour l’horodatage des données échangées entre les serveurs de la pluralité après la validation.
Ce dispositif, apte à mettre en œuvre dans tous ses modes de réalisation le procédé de synchronisation décrit ci-dessus, est destiné à être mis en œuvre dans un serveur de données, par exemple instancié dans une machine virtuelle ou un conteneur et/ou dans un environnement cloud d’un réseau de données.
L’invention concerne également un dispositif de détermination d’une référence temporelle utilisée pour l’horodatage de données échangées entre une pluralité de serveurs de communications d’un réseau de communications, ladite pluralité comprenant un serveur primaire apte à émettre une information temporelle d’émission et au moins un serveur secondaire comprenant
Un récepteur, apte à recevoir en provenance du serveur primaire, d’un message d’initialisation comprenant un identifiant du serveur primaire, une donnée résultant de l’exécution d’un algorithme de sélection du serveur primaire parmi les serveurs de la pluralité, une information temporelle d’émission du message d’initialisation,
- Un module de détermination, apte à déterminer un écart entre une information temporelle de réception calculée à partir de l’information temporelle d’émission reçue et une horloge locale de F au moins un serveur secondaire,
- un émetteur, apte à émettre un message d’acquittement du message d’initialisation reçu en fonction de l’écart déterminé.
Ce dispositif, apte à mettre en œuvre dans tous ses modes de réalisation le procédé de détermination qui vient d'être décrit, est destiné à être mis en œuvre dans un serveur de données, par exemple instancié dans une machine virtuelle ou un conteneur et/ou dans un environnement cloud d’un réseau de données.
L’invention concerne aussi un système de synchronisation d’une pluralité de serveurs de communication d’un réseau de communications, aptes à s’échanger des données horodatées à l’aide d’une référence temporelle, ledit système comprenant
- un serveur primaire comprenant un dispositif de synchronisation,
- au moins un serveur secondaire comprenant un dispositif de détermination.
L'invention concerne aussi un programme d'ordinateur comprenant des instructions pour la mise en œuvre des étapes du procédé de synchronisation qui vient d'être décrit, lorsque ce programme est exécuté par un processeur et un support d’enregistrement lisible par un dispositif de synchronisation sur lequel est enregistré le programme d’ordinateur.
L'invention concerne aussi un programme d'ordinateur comprenant des instructions pour la mise en œuvre des étapes du procédé de détermination qui vient d'être décrit, lorsque ce programme est exécuté par un processeur et un support d’enregistrement lisible par un dispositif de détermination sur lequel est enregistré le programmes d’ordinateur.
Ces programmes peuvent utiliser n’importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n’importe quelle autre forme souhaitable.
L’invention vise aussi un support d'informations lisible par un ordinateur, et comportant des instructions des programmes d'ordinateur tel que mentionnés ci- dessus.
Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker les programmes. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple sur un disque dur.
D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Les programmes selon l'invention peuvent être en particulier téléchargés sur un réseau de type Internet.
Alternativement, le support d'informations peut être un circuit intégré dans lequel les programmes sont incorporés, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution des procédés en question.
4. Brève description des dessins
D’autres caractéristiques et avantages de l’invention apparaîtront plus clairement à la lecture de la description suivante de modes de réalisation particuliers, donnés à titre de simples exemples illustratifs et non limitatifs, et des dessins annexés, parmi lesquels : La [Fig 1] présente une vue simplifiée d’une infrastructure de communications comprenant un espace virtuel de données dans lequel un procédé de synchronisation et un procédé de détermination sont mis en œuvre,
La [Fig 2] présente un aperçu du procédé de synchronisations selon un premier mode de réalisation de l’invention,
La [Fig 3] présente un procédé de détermination d’une information temporelle utilisée pour l’horodatage de données échangées entre une pluralité de serveurs de communications d’un réseau de communications selon un deuxième mode de réalisation de l’invention,
La [Fig 4] présente un exemple de structure d’un dispositif de synchronisation selon un autre mode de réalisation de l’invention,
La [Fig 5] présente un exemple de structure d’un dispositif de détermination d’une information temporelle utilisée pour l’horodatage de données échangées entre une pluralité de serveurs de communications d’un réseau de communications selon un autre mode de réalisation de l’invention.
5. Description des modes de réalisation
Dans la suite de la description, on présente des modes de réalisation de l'invention dans une infrastructure de communication. Cette infrastructure peut être mise en œuvre pour acheminer des données de communications à destination de terminaux fixes ou mobiles et l’invention peut être destinée à installer des fonctions virtualisées utilisées pour l’acheminement et/ou le traitement de données de clientèle résidentielle ou d’entreprises.
On se réfère tout d’abord à la [Fig 1] qui présente une vue simplifiée d’une infrastructure de communications comprenant un espace virtuel de données dans lequel un procédé de synchronisation et un procédé de détermination sont mis en œuvre.
Dans cette [Fig 1], un ensemble de connecteurs 10, 20, 30, 40, 50, 100 aussi appelés serveurs de communication sont interconnectés et s’échangent des données dans un espace 1000 virtuel de données (en anglais data- space). Le nombre de connecteurs n’est pas limité et peut également être inférieurs au nombre présenté sur la [Fig 1] à titre d’exemple. L’espace 1000 virtuel de données permet qu’un ensemble d’acteurs (entreprises, opérateurs de réseau, opérateurs d’espace cloud...) s’échangent des données de façon sécurisée dans le but de fournir un service à un client. Chaque serveur de communication gère ses données et décide des données qu’il veut partager avec les autres acteurs participant à l’espace 1000 virtuel de données. L’espace 1000 virtuel de données est déployé sur une infrastructure de communication, fixe et/ou mobile, permettant aux différents serveurs 10, 20, 30, 40, 50, 100 de pouvoir échanger des données. L’échange de données entre les serveurs 10, 20, 30, 40, 50, 100 de communication requiert que les serveurs utilisent une même horloge pour horodater les données échangées entre ces serveurs. Lors d’une première étape, les différents serveurs 10, 20, 30, 40, 50, 100 de communication de l’espace 1000 virtuel de données effectuent une boucle de consensus visant à élire un serveur dit primaire parmi les serveurs 10, 20, 30, 40, 50, 100 de communication. H est à noter qu’il est possible qu’une partie seulement des serveurs 10, 20, 30, 40, 50, 100 de communication effectuent la boucle de consensus. Cette boucle de consensus correspond, selon ce mode de réalisation, à l’exécution d’un algorithme de sélection d’un serveur parmi les serveurs 10, 20, 30, 40, 50, 100 de communication de l’espace 1000 de données. Selon un exemple, il s’agit par exemple pour chaque serveur 10, 20, 30, 40, 50, 100 de communication de résoudre un problème cryptographique consistant par exemple à trouver une valeur dite « nonce » ou une valeur numérique devant résoudre une équation ou une inéquation. Selon un exemple, le serveur primaire sera celui des serveurs 10, 20, 30, 40, 50, 100 ayant résolu en premier l’algorithme de sélection parmi les serveurs 10, 20, 30, 40, 50, 100 de communication et qui est donc capable de transmettre une donnée résultant de l’exécution de l’algorithme de sélection aux autres serveurs. Selon ce mode de réalisation, le serveur 100 de communication est le premier
à résoudre F algorithme de sélection et transmet donc la donnée résultant de l’exécution de l’algorithme aux autres serveurs 10, 20, 30, 40, 50 de l’espace de données. La donnée résultant pourra par exemple être la valeur « nonce » ou bien la valeur numérique indiquée ci-dessus. Il est à noter que l’envoi de la donnée résultant de l’exécution de l’algorithme de sélection présente l’intérêt, outre le fait d’indiquer aux serveurs 10, 20, 30, 40, 50 qu’une horloge maître sera proposée, d’améliorer le niveau de sécurité de l’espace de données en garantissant que le serveur 100 a bien effectué l’algorithme de sélection. Les serveurs 10, 20, 30, 40, 50 peuvent en effet vérifier la donnée reçue et s’assurer qu’elle résulte bien de l’algorithme que ces serveurs auront eux-mêmes effectué. L’envoi de cette donnée empêche donc l’envoi d’une horloge par un serveur de communication non autorisé ou n’ayant pas résolu l’algorithme de sélection. Sur la [Fig 1], il est indiqué que seul le serveur 100 exécute l’étape SI correspondant à la boucle de consensus car celle-ci comprend l’élection du serveur 100 comme serveur primaire, lui seul ayant résolu l’algorithme de sélection ou bien parce qu’il a été le premier à résoudre l’algorithme de sélection parmi les serveurs de l’espace de données.
Lors d’une étape S2, le serveur 100 dit primaire émet à destination des serveurs 10, 20, 30, 40, 50 dits serveurs secondaires, d’un message d’initialisation comprenant un identifiant du serveur 100, par exemple une adresse IP, un identifiant FQDN (en anglais Fully Qualified Domain Name) ou tout autre identifiant spécifique ou non à l’espace 1000 de données. Selon un exemple, la signature de la trame peut se faire grâce au protocole ECDSA (en anglais « « Elliptic Curve Digital Signature Algorithm »), également utilisé sur l'implémentation actuelle du Bitcoin. Ce message comprend également le résultat de l’exécution de l’algorithme de sélection, décrit ci-avant, ainsi qu’une information temporelle d’émission du message d’initialisation émis. Selon un exemple, il s’agit de l’information correspondant au moment où le message est effectivement émis. Selon un exemple, le serveur 100 peut utiliser une horloge récupérée auprès d’une source externe pour définir cette information temporelle. Selon un exemple, cette information temporelle peut être formatée selon la définition du protocole PTP, permettant ainsi une précision de l’ordre de la nanoseconde. Le tableau 1, présenté ci-dessous, décrit un exemple d’informations transmises dans le message d’initialisation transmis par le serveur 100. Le « Timestamp émission » correspond à l’information temporelle d’émission décrite ci-dessus.
Les serveurs 10, 20, 30, 40, 50 secondaires reçoivent ces messages d’initialisation comprenant les informations indiquées ci-dessus. A la réception de ce message d’initialisation, lors d’une étape S3, À la réception de cette trame, chaque serveur 10, 20, 30, 40, 50 procédera à sa vérification. La première étape de cette vérification concernera la signature du serveur primaire 100, ainsi que la preuve (résultat de l’algorithme de sélection) ; ces deux champs permettant d'attester de la validité du serveur 100.
Lors de cette étape S3, les serveurs 10, 20, 30, 40, 50 secondaires déterminent un écart entre l’information temporelle d’émission reçue dans le message d’initialisation et une horloge locale des serveurs 10, 20, 30, 40, 50 secondaires. Les serveurs 10, 20, 30, 40, 50 secondaires peuvent avoir leur propre horloge locale ou bien récupérer une horloge depuis un serveur distant. Selon un exemple, Ensuite, chaque serveur 10, 20, 30, 40, 50 secondaire impliqué, c’est-à-dire ayant reçu le message d’initialisation, calcule l'heure corrigée, en ajoutant à l’information temporelle d'émission contenue dans le message d’initialisation, le délai de propagation de données entre le serveur 100 et le serveur secondaire considéré. Par exemple, le serveur 10 ajoutera à l’information temporelle d’émission reçue le temps de propagation, qui peut être par exemple obtenu à partir d’un message ICMP (en anglais Internet Control Message Protocol). Cette heure corrigée sera ensuite comparée à l'heure de réception du message d’initialisation évaluée à partir de l'horloge locale du connecteur. Ainsi, le décalage entre les deux
heures (l’heure corrigée et l’heure effective de réception) devra rester dans une certaine tolérance. La vérification du temps corrigé est ainsi laissée au libre choix du serveur secondaire, qui se basera sur sa propre politique. Une politique globale pourra être mise en œuvre au sein de l’espace 1000 de données pour harmoniser les règles de validation des messages d’initialisation entre les serveurs 10, 20, 30, 40, 50 secondaires.
Si le décalage, c’est-à-dire l’écart entre les deux heures, est inférieur à une valeur de tolérance, propre au serveur 10, 20, 30, 40, 50 secondaire ou à l’espace de données 1000, alors le serveur 10, 20, 30, 40, 50 secondaire émet lors d’une étape S4 un message d’acquittement du message d’initialisation reçu. Dans la [Fig 1], seuls les serveurs 10, 20, 30 secondaires émettent un message d’acquittement lors de l’étape S4. Les deux autres serveurs secondaires, à savoir les serveurs 40, 50 n’ont pas émis de message d’acquittement car ils n’ont pas attesté le serveur primaire 100, soit parce qu’ils n’ont pas déchiffré la signature de celui-ci ou bien parce que le résultat de l’algorithme de sélection du serveur 100 n’a pas été validé par ces serveurs 40, 50. Selon une autre option, et de façon alternative ou complémentaires, l’écart entre les heures calculées par ces serveurs 40, 50 est supérieur à une valeur de tolérance et ils ne valident donc pas l’information temporelle d’émission reçue.
Selon une option, les serveurs 10, 20, 30 transmettant un message d’acquittement au message d’initialisation reçu, ils mettent à jour leur horloge locale en utilisant l’information temporelle d’émission qui devient la valeur d’horloge pour les échanges de données entre les serveurs 100, 10, 20, 30. Les autres serveurs secondaires, c’est-à- dire les serveurs 40 et 50 ne mettent pas à jour leur horloge locale puisqu’ils n’émettent pas de messages d’acquittement et ne valident donc pas l’information temporelle d’émission reçue.
Selon un exemple, les messages d’acquittement reçus sont signés par les serveurs 10, 20, 30 secondaires pour authentifier la validité des émetteurs de ces messages d’acquittement.
A la réception des messages d’acquittement en provenance des serveurs 10, 20, 30 secondaires ayant validé le message d’initialisation reçu, le serveur 100 primaire enregistre lors d’une étape S5 un défi de synchronisation dans un registre 60 de données. Ce défi de synchronisation comprend une différence entre l’information temporelle d’émission transmise et l’information temporelle enregistrée. Cette
information temporelle enregistrée, selon un exemple, est une information temporelle d’émission précédemment transmise par un des serveurs 10, 20, 30, 40, 50, 100 de l’espace 1000 de données. Ainsi, l’information temporelle d’émission utilisée par des serveurs parmi les serveurs 10, 20, 30, 40, 50, 100 de l’espace 1000 de données est régulièrement mise à jour conformément aux étapes SI, S2, S3, S4, S5 décrites ci- dessus et répliquées de façon répétée, le serveur primaire pouvant changer lors de ces différentes itérations conformément à l’exécution d’un algorithme de sélection qui peut induire un changement de serveur primaire à chaque itération. Le défi de synchronisation enregistré comprend en outre, selon un exemple, le message d’initialisation émis et possiblement les messages d’acquittements reçus en provenance des serveurs 10, 20, 30. Un exemple de défi de synchronisation est présenté dans le Tableau 2 ci-dessous.
La mise à jour de l’information temporelle d’émission, qui sera utilisée pour l’horodatage des données échangées à partir du moment où le défi sera enregistré, repose sur la bonne participation de tous les serveurs 10, 20, 30, 40, 50 et leur capacité à renvoyer des acquittements signés. H est donc préférable que la mise à jour de l’horloge s'exécute dans un environnement sécurisé. H n’est cependant pas garanti que tous les serveurs de l’espace 1000 virtuel de données contribuent à cette mise à jour. Selon une option, pour que le serveur 100 valide cette nouvelle information temporelle d’émission, il peut considérer le nombre de messages d’acquittement reçus des serveurs 10, 20, 30, 40, 50. En particulier, pour que l’information temporelle d’émission soit validée, c’est-à-dire pour que l'enregistrement du défi sur le registre 60 de données soit accepté, donc transmis au registre 60 de données, il faut que le nombre d'acquittements soit au-delà d'un seuil défini au préalable (par exemple 60% des serveurs de l’espace 1000 de données) ou un nombre fixé. Par exemple, dans la [Fig 1], le serveur 100 primaire ayant reçu 3 acquittements en provenance des 5 serveurs 10, 20, 30, 40, 50 secondaires de l’espace 1000 de données, le serveur 100 primaire peut valider l’information temporelle d’émission transmise dans le message d’initialisation et l’enregistrer dans le registre 60 de données, ce qui n’aurait pas été le cas s’il n’avait reçu que 2 messages d’acquittement alors que le taux minimal d’acquittements reçus était de 60 %. Dans ce dernier cas, l’information temporelle enregistrée aurait continué d’être utilisée pour l’horodatage des données échangées dans l’espace 1000 de données. La validité des signatures des acquittements pourra également être contrôlée par le serveur 100 primaire lors de leur réception.
Selon une option, dans le cas où le nombre (ou le ratio) de messages d’acquittements reçus (par rapport au nombre de serveurs secondaires de l’espace 1000 de données) est supérieur à une valeur (ou à un ratio) dit de confiance, alors le serveur 100 primaire obtient une récompense et cette caractéristique de récompense (monétaire, jeton) est possiblement enregistrée dans le registre 60 de données. Cette rétribution incite ainsi les serveurs 10, 20, 30, 40, 50, 100 à prendre part au procédé de synchronisation. Inversement, dans le cas où le nombre de messages d’acquittements reçus est inférieur à la valeur de confiance ou si le ratio nombre de messages d’acquittements reçus / nombre de serveurs secondaires dans l’espace 1000 de données est inférieur à un ratio de confiance, une pénalité peut être attribuée au serveur 100 primaire.
En relation avec la [Fig 2], on présente un aperçu du procédé de synchronisation mis en œuvre par un serveur (indifféremment appelé connecteur) primaire selon un premier mode de réalisation de l’invention.
L’espace virtuel de données dans lequel sont déployés un serveur (ou connecteur) primaire et au moins un serveur (ou connecteur) secondaire forme une topologie statique et connue de tous (par exemple ils sont interconnectés par le biais d'un réseau filaire). Ainsi, les délais de propagation entre connecteurs sont constants et connus de tous. Les connecteurs possèdent chacun une horloge locale, potentiellement synchronisée à partir d'une référence externe (GNSS, serveur de temps, réseau mobile, ...).
Lors d’une première étape « algo », le connecteur primaire exécute un algorithme de sélection. En fait, le connecteur primaire et F au moins un connecteur secondaire exécutent cet algorithme mais un seul va être sélectionné pour devenir connecteur primaire. Chaque connecteur intègre ainsi une application certifiée par exemple par une entité de régulation, permettant la synchronisation multi-acteur des connecteurs. L'application intègre tout d'abord une boucle de consensus (algorithme de sélection) exécutée par tous, permettant régulièrement la sélection d'un connecteur primaire, de manière algorithmique. Cette boucle de consensus impliquera des mécanismes cryptographiques permettant de rendre le processus de sélection du connecteur primaire équitable entre les connecteurs, tout en prévenant les attaques de type Byzantines, où de type Déni de Service. L'utilisation d'un tel mécanisme permet de rendre l'architecture résiliente. En effet, n'importe quel connecteur possède ses chances d'être élu. Le mécanisme est ainsi conçu pour que si un connecteur envoie une trame de synchronisation incorrecte, cette dernière pourra simplement être ignorée par les autres, car un autre connecteur primaire sera sélectionné par consensus.
Une fois le connecteur primaire sélectionné, lors d’une étape « Acquis », celui-ci acquiert une horloge par exemple à partir de l’horloge locale indiquée ci-dessus. Cette étape d’acquisition est considérée comme optionnelle puisque le connecteur peut recevoir une horloge indépendamment du fait qu’il devienne connecteur primaire ou non.
Lors d’une étape « Diffus », le connecteur élu comme connecteur primaire diffuse une trame de synchronisation (aussi appelée message d’initialisation) à F au moins un serveur secondaire de l’espace 1000 de données. Cette trame comprend notamment
l’horloge acquise par le connecteur primaire lors de l’étape «Acquis». Cette horloge est destinée à devenir la référence temporelle de l’espace de données jusqu’à ce qu’une nouvelle référence temporelle soit sélectionnée. Ainsi, il est possible de sélectionner à intervalle régulier un « connecteur primaire » chargé de donner une référence temporelle à l’espace de données, au moyen d'une trame de synchronisation comprenant cette référence temporelle, ou horloge, ou information temporelle d’émission.
Lors d’une étape « Récep », le connecteur primaire reçoit les acquittements de F au moins un connecteur secondaire ayant effectivement accepté et validé la référence temporelle reçue du connecteur primaire. Le nombre de messages d’acquittements reçus indique au connecteur primaire le niveau d’acceptation de la référence temporelle dans l’espace de données.
Le connecteur primaire, une fois qu’il a collecté les acquittements ainsi diffusés, enregistre lors d’une étape « Enreg » le résultat du processus de synchronisation mis en œuvre dans un registre de confiance, au moyen d'une transaction. Cette transaction contiendra la trame de synchronisation complète, possiblement les acquittements collectés ainsi que la différence de temps entre l'ancienne et la nouvelle référence temporelle de l’espace de données, pouvant être codée sur un entier signé de 32 bits.
En relation avec la [Fig 3], on présente un aperçu du procédé de détermination d’une information temporelle utilisée pour l’horodatage de données échangées entre une pluralité de serveurs de communications d’un réseau de communications mis en œuvre par un serveur (indifféremment appelé connecteur) secondaire selon un premier mode de réalisation de l’invention.
Un connecteur secondaire, de façon optionnelle, peut essayer, lors d’une étape « Essai algo », de résoudre l’algorithme de sélection permettant de sélectionner le connecteur primaire. Cette étape est optionnelle car un serveur n’est pas obligé d’essayer de résoudre l’algorithme et, qu’il essaye de le résoudre ou qu’il n’essaye pas, un connecteur est dit secondaire en raison du fait qu’il n’a pas réussi à résoudre l’algorithme, par défaut de tentative ou suite à une non réussite, ou bien parce qu’il n’est pas le premier à résoudre ledit algorithme.
Lors d’une étape « Recept », un connecteur secondaire de l’espace de données mis en œuvre sur un réseau de communication, reçoit en provenance du connecteur primaire une trame de synchronisation comprenant l’horloge proposée par le connecteur
primaire ainsi que la preuve de l'exécution de la boucle de consensus (correspondant à l’algorithme de sélection) et un identifiant du connecteur primaire tel qu’une signature. A la réception de la trame de synchronisation, lors d’une étape « Horodat », le serveur secondaire enregistre l’horloge transmise par le connecteur primaire, cette horloge pouvant être utilisée par le connecteur secondaire s’il la valide lors d’une étape suivante.
Avant de valider cette horloge, lors d’une étape « Tests », le serveur secondaire s’assure que la trame de synchronisation reçue provient effectivement du connecteur primaire en contrôlant l’identifiant compris dans la trame de synchronisation et en vérifiant que celui-ci a bien exécuté avec succès la boucle de consensus. Dans le cas où le test est négatif, c’est-à-dire que l’une et/ou l’autre des informations n’est pas conforme (l’identifiant ne correspond pas à un serveur de l’espace de données et/ou la donnée ne résulte pas de l’exécution de la boucle de consensus), alors il ignore lors d’une étape « Ignor » la trame de synchronisation reçue et ne prend pas en compte les informations présentes dans cette trame.
Lors d’une phase « Calculs », le connecteur secondaire détermine un écart entre l’horloge reçue modifiée pour prendre en compte la durée de transmission de cette horloge locale dans la trame de synchronisation acheminée entre le connecteur primaire et le connecteur secondaire et une horloge locale du serveur secondaire. Ainsi, si H1 représente l’information temporelle d’émission ou l’horloge transmise dans la trame de synchronisation et H2, une horloge locale du serveur secondaire et que le temps de propagation de la trame de synchronisation entre le connecteur primaire et le connecteur secondaire est Tl, alors le serveur secondaire calcule H 1 + Tl. Il est à noter que le serveur secondaire peut utiliser une autre méthode ou un autre calcul pour comparer H1 et H2. Selon une alternative, le serveur secondaire peut également considérer H2 comme valide en comparant H1 et H2 indépendamment du temps de propagation. Ensuite il compare H2 à H1 + Tl lors d’une étape « Verif ». Si lors de cette étape « Verif », le connecteur secondaire détermine que la valeur absolue de H2 - (Hl+Tl) est inférieure à une valeur de tolérance, alors le serveur secondaire valide l’horloge H1 reçue et transmet lors d’une étape « Envoi », un message d’acquittement de la trame de synchronisation reçue. Si le connecteur secondaire ne prend pas en compte Tl, il compare alors les valeurs de H1 et H2. De préférence, il transmet l’acquittement dans un message, de préférence signé, par exemple avec le protocole
ECDSA, avec la signature propre au connecteur secondaire, conformément aux exigences techniques d’un espace virtuel de données. Si lors de l’étape « verif », l’écart entre H2 et (H 1 + Tl) est trop important, alors le connecteur secondaire ignore la trame de synchronisation reçue lors d’une étape « Ignor ».
S’il valide l’horloge reçue, il met alors lors d’une étape « MaJ » sa propre horloge locale avec l’horloge Hl, garantissant ainsi que les données qu’il émettra et qu’il recevra à partir de ce moment-là sont horodatées avec l’horloge effectivement proposée par le connecteur primaire. H est à noter que le connecteur secondaire, selon une option, peut mettre à jour son horloge locale avec l’horloge Hl qu’une fois qu’il a reçu un message de confirmation reçu en provenance du connecteur primaire. Cela permet notamment qu’une nouvelle horloge ne soit utilisée que si le connecteur primaire reçoit suffisamment de messages d’acquittement des serveurs secondaires, garantissant ainsi que cette horloge est utilisée par un nombre suffisant de serveurs de l’espace de données.
En relation avec la [Fig 4], on présente un exemple de structure d'un dispositif de synchronisation selon un autre mode de réalisation de l’invention.
Le dispositif 400 de synchronisation met en œuvre le procédé de synchronisation, dont différents modes de réalisation viennent d'être décrits.
Un tel dispositif 400 peut être mis en œuvre dans un serveur de données, par exemple instancié dans une machine virtuelle ou un conteneur et/ou dans un environnement cloud d’un réseau de données.
Par exemple, le dispositif 400 comprend une unité de traitement 430, équipée par exemple d'un microprocesseur pP, et pilotée par un programme d'ordinateur 410, stocké dans une mémoire 420 et mettant en œuvre le procédé de détermination selon l'invention. A l’initialisation, les instructions de code du programme d’ordinateur 410 sont par exemple chargées dans une mémoire RAM, avant d’être exécutées par le processeur de l’unité de traitement 430.
Un tel dispositif 400 comprend :
Un émetteur 401, apte à émettre à destination des autres serveurs de communication de la pluralité, dits serveurs secondaires, d’un message Init d’initialisation comprenant un identifiant du serveur primaire, une donnée résultant de l’exécution d’un algorithme de sélection du serveur primaire parmi
les serveurs de la pluralité, une information temporelle d’émission du message d’initialisation,
Un récepteur 402, apte à recevoir en provenance d’au moins un serveur secondaire d’un message Acquit d’acquittement du message d’initialisation émis,
Un enregistreur 403, apte à valider un défi de synchronisation comprenant la différence entre une référence temporelle d’émission enregistrée et l’information temporelle d’émission du message d’initialisation, l’information temporelle d’émission remplaçant la référence temporelle enregistrée pour l’horodatage des données échangées entre les serveurs de la pluralité après l’enregistrement.
En relation avec la [Fig 5], on présente un exemple de structure d'un dispositif de détermination d’une référence temporelle utilisée pour l’horodatage de données échangées entre une pluralité de serveurs de communications d’un réseau de communications selon un autre mode de réalisation de l’invention.
Le dispositif 500 de détermination met en œuvre le procédé de détermination d’une information temporelle utilisée pour l’horodatage de données échangées entre une pluralité de serveurs de communications d’un réseau de communications, dont différents modes de réalisation viennent d'être décrits.
Un tel dispositif 500 peut être mis en œuvre dans un serveur de données, par exemple instancié dans une machine virtuelle ou un conteneur et/ou dans un environnement cloud d’un réseau de données.
Par exemple, le dispositif 500 comprend une unité de traitement 530, équipée par exemple d'un microprocesseur pP, et pilotée par un programme d'ordinateur 510, stocké dans une mémoire 520 et mettant en œuvre le procédé de taxation selon l'invention. A l’initialisation, les instructions de code du programme d’ordinateur 510 sont par exemple chargées dans une mémoire RAM, avant d’être exécutées par le processeur de l’unité de traitement 530.
Un tel dispositif 500 comprend :
- un récepteur 501, apte à recevoir en provenance du serveur primaire, d’un message Init d’initialisation comprenant un identifiant du serveur primaire, une donnée résultant de l’exécution d’un algorithme de sélection du serveur primaire parmi les serveurs de la pluralité, une information temporelle d’émission du message
d’initialisation,
- un module 502 de détermination, apte à déterminer un écart entre une information temporelle de réception calculée à partir de l’information temporelle d’émission reçue et une horloge locale de F au moins un serveur secondaire, - un émetteur 503, apte à émettre un message Acquit d’acquittement du message d’initialisation reçu en fonction de l’écart déterminé.
Claims
23
REVENDICATIONS Procédé de synchronisation d’une pluralité de serveurs (10, 20, 30, 40, 50, 100) de communication d’un réseau (1000) de communications, aptes à s’échanger des données horodatées à l’aide d’une référence temporelle, ledit procédé étant mis en œuvre par un serveur (100) de la pluralité, appelé serveur primaire, et comprenant :
Une émission (S2) à destination des autres serveurs (10, 20, 30, 40, 50) de communication de la pluralité, dits serveurs secondaires, d’un message Init d’initialisation comprenant un identifiant du serveur (100) primaire, une donnée résultant de l’exécution d’un algorithme de sélection (SI) du serveur primaire (100) parmi les serveurs (10, 20, 30, 40, 50, 100) de la pluralité, une information temporelle d’émission du message Init d’initialisation,
Une réception (S4) en provenance d’au moins un serveur secondaire (10, 20, 30) d’un message Acquit d’acquittement du message d’initialisation émis,
Une validation (S5) d’un défi de synchronisation comprenant la différence entre une référence temporelle d’émission enregistrée et l’information temporelle d’émission du message d’initialisation, l’information temporelle d’émission remplaçant la référence temporelle enregistrée pour l’horodatage des données échangées entre les serveurs (10, 20, 30, 100) de la pluralité après la validation. Procédé de synchronisation, selon la revendication 1, où les étapes du procédé sont réitérées selon un intervalle de temps propre au réseau de communications. Procédé de synchronisation, selon la revendication 1 ou la revendication 2, où la donnée résulte de la résolution d’un problème crypto graphique. Procédé de synchronisation, selon l’une des revendications 1 à 3, où la validation du défi de synchronisation est relative au nombre de messages Acquit d’acquittements reçus. Procédé de synchronisation, selon l’une des revendications 1 à 4, où la validation d’un défi de synchronisation comprend en outre F au moins un message Acquit d’acquittement reçu. Procédé de synchronisation, selon l’une des revendications 1 à 5, comprenant en outre l’enregistrement d’une caractéristique de récompense du serveur (100) primaire si le nombre de messages Acquit d’acquittement reçus est supérieur à un seuil de confiance. Procédé de synchronisation, selon l’une des revendications 1 à 6, comprenant en outre l’acquisition préalable de l’information temporelle d’émission auprès d’une source externe.
Procédé de détermination d’une référence temporelle utilisée pour l’horodatage de données échangées entre une pluralité de serveurs (10, 20, 30, 40, 50, 100) de communications d’un réseau (1000) de communications, ladite pluralité comprenant un serveur (100) primaire apte à émettre une information temporelle d’émission et au moins un serveur (10, 20, 30, 40, 50) secondaire, ledit procédé étant mis en œuvre par l’au moins un serveur (10, 20, 30, 40, 50) secondaire, et comprenant :
- une réception (S2) en provenance du serveur (100) primaire, d’un message Init d’initialisation comprenant un identifiant du serveur (100) primaire, une donnée résultant de l’exécution d’un algorithme de sélection du serveur (100) primaire parmi les serveurs (10, 20, 30, 40, 50, 100) de la pluralité, une information temporelle d’émission du message Init d’initialisation,
- une détermination (S3) d’un écart entre une information temporelle de réception calculée à partir de l’information temporelle d’émission reçue et une horloge locale de l’au moins un serveur secondaire,
- une émission (S4) à destination du serveur (100) primaire d’un message Acquit d’acquittement du message Init d’initialisation reçu en fonction de l’écart déterminé. Procédé de détermination, selon la revendication 8, où l’information temporelle de réception est calculée en fonction du temps de propagation de données entre le serveur primaire et l’au moins un serveur secondaire. Procédé de détermination, selon la revendication 8 ou la revendication 9, comprenant en outre une comparaison de l’écart avec une valeur de tolérance, et la mise à jour de l’horloge locale avec l’information temporelle d’émission reçue si l’écart est inférieur à la valeur de tolérance. Dispositif (400) de synchronisation d’une pluralité de serveurs (10, 20, 30, 40, 50, 100) de communication d’un réseau (1000) de communications, aptes à s’échanger des données horodatées à l’aide d’une référence temporelle, comprenant
Un émetteur (401), apte à émettre à destination des autres serveurs de communication de la pluralité, dits serveurs secondaires, d’un message Init d’initialisation comprenant un identifiant du serveur (100) primaire, une donnée résultant de l’exécution d’un algorithme de sélection du serveur primaire parmi les serveurs de la pluralité, une information temporelle d’émission du message d’initialisation,
Un récepteur (402), apte à recevoir en provenance d’au moins un serveur (10, 20, 30, 40, 50) secondaire d’un message Acquit d’acquittement du message d’initialisation Init émis,
Un enregistreur (403), apte à valider un défi de synchronisation comprenant la différence entre une référence temporelle d’émission enregistrée et l’information temporelle d’émission du message d’initialisation, l’information temporelle d’émission remplaçant la référence temporelle enregistrée pour l’horodatage des données échangées entre les serveurs (10, 20, 30, 40, 50, 100) de la pluralité après la validation. Dispositif (500) de détermination d’une référence temporelle utilisée pour l’horodatage de données échangées entre une pluralité de serveurs (10, 20, 30, 40, 50, 100) de communications d’un réseau de communications, ladite pluralité comprenant un serveur (100) primaire apte à émettre une information temporelle d’émission et au moins un serveur (10, 20, 30, 40, 50) secondaire, ledit dispositif comprenant :
Un récepteur (501), apte à recevoir en provenance du serveur (100) primaire, d’un message Init d’initialisation comprenant un identifiant du serveur (100) primaire, une donnée résultant de l’exécution d’un algorithme de sélection du serveur (100) primaire parmi les serveurs (10, 20, 30, 40, 50, 100) de la pluralité, une information temporelle d’émission du message Init d’initialisation,
- Un module (502) de détermination, apte à déterminer un écart entre une information temporelle de réception calculée à partir de l’information temporelle d’émission reçue et une horloge locale de l’au moins un serveur (10, 20, 30, 40, 50) secondaire,
- un émetteur (503), apte à émettre un message Acquit d’acquittement du message Init d’initialisation reçu en fonction de l’écart déterminé. Système de synchronisation d’une pluralité de serveurs (10, 20, 30, 40, 50, 100) de communication d’un réseau (1000) de communications, aptes à s’échanger des données horodatées à l’aide d’une référence temporelle, ledit système comprenant :
- un serveur primaire (100) comprenant un dispositif (400) de synchronisation selon la revendication 11,
- au moins un serveur secondaire (10, 20, 30, 40, 50) comprenant un dispositif (500) de détermination selon la revendication 12.
26 Programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de synchronisation selon l'une quelconque des revendications 1 à 7, lorsque le programme est exécuté par un processeur. Programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de détermination selon l'une quelconque des revendications 8 à 10, lorsque le programme est exécuté par un processeur.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21798414.5A EP4222632B1 (fr) | 2020-09-29 | 2021-09-24 | Procédé de synchronisation d'une pluralité de serveurs de communications, dispositifs et programmes d'ordinateurs correspondants |
US18/246,958 US20230388035A1 (en) | 2020-09-29 | 2021-09-24 | Method for synchronizing a plurality of communication servers, and corresponding computer devices and programs |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2009880A FR3114712A1 (fr) | 2020-09-29 | 2020-09-29 | Procédé de synchronisation d’une pluralité de serveurs de communications, dispositifs et programmes d’ordinateurs correspondants |
FRFR2009880 | 2020-09-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022069818A1 true WO2022069818A1 (fr) | 2022-04-07 |
Family
ID=74125369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FR2021/051642 WO2022069818A1 (fr) | 2020-09-29 | 2021-09-24 | Procede de synchronisation d'une pluralite de serveurs de communications, dispositifs et programmes d'ordinateurs correspondants |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230388035A1 (fr) |
EP (1) | EP4222632B1 (fr) |
FR (1) | FR3114712A1 (fr) |
WO (1) | WO2022069818A1 (fr) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8392709B1 (en) * | 2009-04-28 | 2013-03-05 | Adobe Systems Incorporated | System and method for a single request—single response protocol with mutual replay attack protection |
US20140281037A1 (en) * | 2013-03-15 | 2014-09-18 | Broadcom Corporation | Fault Tolerant Clock Network |
US9094142B2 (en) | 2011-02-15 | 2015-07-28 | Telefonaktiebolaget L M Ericsson (Publ) | Methods of time sychronisation in communications networks |
WO2018057322A1 (fr) * | 2016-09-23 | 2018-03-29 | Kwourz Research Llc | Synchronisation temporelle de réseau |
-
2020
- 2020-09-29 FR FR2009880A patent/FR3114712A1/fr active Pending
-
2021
- 2021-09-24 EP EP21798414.5A patent/EP4222632B1/fr active Active
- 2021-09-24 US US18/246,958 patent/US20230388035A1/en active Pending
- 2021-09-24 WO PCT/FR2021/051642 patent/WO2022069818A1/fr active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8392709B1 (en) * | 2009-04-28 | 2013-03-05 | Adobe Systems Incorporated | System and method for a single request—single response protocol with mutual replay attack protection |
US9094142B2 (en) | 2011-02-15 | 2015-07-28 | Telefonaktiebolaget L M Ericsson (Publ) | Methods of time sychronisation in communications networks |
US20140281037A1 (en) * | 2013-03-15 | 2014-09-18 | Broadcom Corporation | Fault Tolerant Clock Network |
WO2018057322A1 (fr) * | 2016-09-23 | 2018-03-29 | Kwourz Research Llc | Synchronisation temporelle de réseau |
Non-Patent Citations (4)
Title |
---|
D. MILLS ET AL., NETWORK TIME PROTOCOL VERSION 4 : PROTOCOL AND ALGORITHMS SPECIFICATION |
IEEE STANDARD FOR A PRÉCISION CLOCK SYNCHRONIZATION PROTOCOL FOR NETWORKED MEASUREMENT AND CONTROL SYSTEMS |
J-C TOURNIER ET AL: "Strategies to secure the IEEE 1588 protocol in digital substation automation", CRITICAL INFRASTRUCTURES, 2009. CRIS 2009. FOURTH INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 27 March 2009 (2009-03-27), pages 1 - 8, XP031472841, ISBN: 978-1-4244-4636-0 * |
T. MIZRAHI, SECURITY REQUIREMENTS OF TIME PROTOCOLS IN PACKET SWITCHED NETWORKS |
Also Published As
Publication number | Publication date |
---|---|
EP4222632B1 (fr) | 2024-08-21 |
EP4222632A1 (fr) | 2023-08-09 |
US20230388035A1 (en) | 2023-11-30 |
FR3114712A1 (fr) | 2022-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3409054B1 (fr) | Procede de synchronisation pour un noeud dans un réseau cellulaire | |
US7702909B2 (en) | Method and system for validating timestamps | |
US11582333B2 (en) | Methods and devices in a blockchain network | |
US20220012726A1 (en) | Method and System for a Network Device to Obtain a Trusted State Representation of the State of the Distributed Ledger Technology Network | |
WO2018130796A1 (fr) | Procédés et dispositifs de vérification de la validité d'une délégation de diffusion de contenus chiffrés | |
EP3568966B1 (fr) | Procédés et dispositifs de délégation de diffusion de contenus chiffrés | |
Fontugne et al. | Rpki time-of-flight: Tracking delays in the management, control, and data planes | |
EP4222632B1 (fr) | Procédé de synchronisation d'une pluralité de serveurs de communications, dispositifs et programmes d'ordinateurs correspondants | |
JP3963315B2 (ja) | 時刻認証方法、時刻認証要求プログラムおよび時刻認証要求装置 | |
FR3066342A1 (fr) | Singularisation de trames a emettre par un objet connecte et blocage de trames reemises sur un reseau de communication sans-fil basse consommation | |
EP3785403B1 (fr) | Procédé d'élaboration de données d'utilisation de relais utilisés au cours d'une communication entre deux appareils, de recherche desdites données, et appareils associés | |
EP2014057A2 (fr) | Identification de noeuds dans un reseau | |
WO2022254117A1 (fr) | Procede de gestion d'un registre local d'un noeud appartenant a un ensemble de noeuds contribuant a un registre distribue | |
EP1677486A1 (fr) | Procédé d'authentification d'un terminal | |
Morigaki et al. | An analysis of detailed electronic time-stamping using digital TV | |
Chandid | Empirical Use of Network Time Protocol in Internet of Things Devices: Vulnerabilities and Security Measures | |
FR3141020A1 (fr) | Procédé de mise en œuvre d’un service d’une chaîne de services et dispositif électronique associé | |
CN116186725A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
WO2021260327A1 (fr) | Procede de controle d'acces a un contenu mis en œuvre par un serveur cache | |
FR3145253A1 (fr) | Procédé de révocation d’un jeton de certification permettant d’authentifier l’établissement d’une connexion entre deux équipements de communication, dispositifs et programmes d’ordinateur correspondants | |
FR3141021A1 (fr) | Procédé de mise en œuvre d’un service d’une chaîne de services et dispositif électronique associé | |
Di Sarno et al. | D5. 1.2-Preliminary Defense Services and Protocols | |
FR2902260A1 (fr) | Verification et correction d'erreurs de donnees d'enregistrement dans un systeme de nommage | |
FR3065552A1 (fr) | Procede et systeme d’authentification et de non-repudiation | |
FR3057420A1 (fr) | Procede et systeme de synchronisation d’une heure d’un calculateur d’un vehicule avec celle d’un serveur distant |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21798414 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 18246958 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2021798414 Country of ref document: EP Effective date: 20230502 |