WO2024105111A1 - Method for distributing session keys in a telecommunication network, associated methods for processing in a client and a server, and associated client module and servers - Google Patents

Method for distributing session keys in a telecommunication network, associated methods for processing in a client and a server, and associated client module and servers Download PDF

Info

Publication number
WO2024105111A1
WO2024105111A1 PCT/EP2023/081926 EP2023081926W WO2024105111A1 WO 2024105111 A1 WO2024105111 A1 WO 2024105111A1 EP 2023081926 W EP2023081926 W EP 2023081926W WO 2024105111 A1 WO2024105111 A1 WO 2024105111A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
servers
client
clients
master server
Prior art date
Application number
PCT/EP2023/081926
Other languages
French (fr)
Inventor
Olivier Gilles
David José Faura
Daniel GRACIA PEREZ
Original Assignee
Thales
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thales filed Critical Thales
Publication of WO2024105111A1 publication Critical patent/WO2024105111A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/043Key management, e.g. using generic bootstrapping architecture [GBA] using a trusted network node as an anchor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Definitions

  • Method for distributing session keys in a telecommunications network associated processing methods in a client and a server, client module and associated servers.
  • the invention is in the field of key distribution in a telecommunications network comprising key distribution servers and client modules using these keys to communicate with each other.
  • “Session keys” means all the cryptographic data making it possible to ensure the confidentiality and/or integrity of communications between several clients, regardless of the type of encryption used. These keys are valid for a predefined period, and therefore subject to periodic renewal. For example, they include symmetric or asymmetric keys, used to encrypt or sign data.
  • the transport and higher layer protocols in the OSI model seem particularly suited to providing security, in particular the DDS, MQTT, CoaP and OPC UA protocols.
  • the "PubSub” model dissociates the client (called publisher) which sends a particular message, to which subscribing clients (called subscribers) have access.
  • a third actor known to both the publisher and the subscriber, filters all incoming messages from publishers and distributes them accordingly to subscribers (or notifies them of the availability of new data accessible from the broker) by depending on the type of message, subject or content and criteria indicated by subscribers. Consequently, the publisher does not know the list of subscribers called to receive the data that the publisher sends to the broker. It is important to note that authentication and key distribution may fall under other paradigms, for example client/server.
  • MQTT and CoaP are very lightweight communication protocols that do not natively incorporate any security.
  • MQTT a secure version called MQTT-S (or MQTT-SN), in the form of encryption with TLS with decryption/encryption of messages at the broker level.
  • MQTT-S or MQTT-SN
  • TLS Transmission Layer Security
  • MITM Man In The Middle
  • DDS offers a distributed architecture (DDS Security version 1.1, OMG) allowing the different communicating actors to exchange encryption keys between them.
  • Key server functions can be implemented in any actor.
  • the solution proposed by DDS is heavy in terms of exchanges generated at each connection and therefore not very compatible with the constraints of many critical embedded and/or real-time systems. In addition, no specific solution is proposed to ensure key server resilience.
  • OPC UA PUBSUB OPC Unified Architecture Specificiations part 14, version 1.04, OPC Foundation
  • OPC UA PUBSUB OPC Unified Architecture Specificiations part 14, version 1.04, OPC Foundation
  • SKS encryption key service
  • OPC UA defines two operating modes for the redundancy mechanisms of generic servers: transparent and non-transparent.
  • Transparent mode implements a proxy located between clients and servers, which is responsible for redirecting client requests depending on server availability.
  • Non-transparent mode gives the client the responsibility of choosing a server from the set of redundant servers.
  • Hot and duplicated clients are only connected to one server, which maintains on the other servers a copy of the sessions that clients open with it. In case of failover, clients do not have to create a new (strongly synchronized) session context.
  • SKS Securing a key (or a set of keys) whose illegitimate consultation calls into question the security of the system.
  • they have an asymmetric behavior by nature, because of the source of entropy necessary for key generation.
  • Two SKS having the same entries will have different behaviors (ie will generate different keys). This is why it must not be possible to have two clients subscribed to different SKS - otherwise they will not be able to communicate with each other. This mode of This operation excludes warm failovers, which are based on the determinism of server behaviors.
  • Solutions replicating data would make it possible to remount a server having the current encryption key, which would introduce a vulnerability (a remounted SKS would immediately have to proceed with a new key generation, because the key of the faulty SKS should be considered potentially compromised). Furthermore, these solutions involve multiplying the number of connections in the system by the number of existing SKS, which is very heavy in terms of impact on performance. This solution is therefore not desirable.
  • the cold failover mode does not involve additional communication, but relies on a direct connection with the server to detect the failure of the latter.
  • This hypothesis falls in the case of OPC UA PUBSUB, because of the presence of the broker and the disconnected nature of the protocol (general case of producer-consumer paradigms).
  • the question of SKS choice is only addressed in the standard from the perspective of load balancing, and can lead, in the case of unstable networks, to customers choosing different SKS, which would call into question question the availability of the system.
  • a set of keys of size K greater than 1 that is to say the set of keys comprises at least K keys associated with successive validity periods, the K keys therefore being intended to succeed one another over time
  • a group of clients the electronic object of publisher or subscriber type is in fact a client vis-à-vis the SKS server, which issues it secret keys
  • security against a statistical attack against the session keys used to encrypt/decrypt the data published by the publisher is preserved (since the keys change), but security against the compromise of a client of the group is reduced by a factor equal to the size of the set of keys: in fact, if the set of keys is obtained by an attacker, then the entire group is compromised for an even longer period. This is a consequence of reducing the frequency of secure key distribution.
  • the SKS server distributes the set of session keys to the Publisher and the Subscriber, of size K.
  • the first secret key is used for encryption by the Publisher of the M1 messages, which it then sends to the Broker, who forwards them to the Subscribers who decrypt the M1 messages with the first secret key.
  • the attacker maliciously obtains the set of session keys, for example by reading the physical memory of the Publisher.
  • a second phase ⁇ p2 begins (until the date, T2, of expiration of the second secret key), where the second secret key is used for encryption by the Publisher of M2 messages, which it then sends to the Broker, who forwards them to the Subscribers who decrypt the M2 messages with the second secret key; the attacker also publishes messages encrypted by the second secret key which reach subscribers via the broker, and this intrusion can last as long as the set of secret keys remains valid, ie until the validity of the Kth expires. key.
  • the platform hosting the SKS may be the victim of a breakdown, induced by an attack or accidental. In both cases, the HoT network will continue to operate until the keys in the set of keys currently in use expire, then stop for lack of a new set. As the failure of the SKS may very well be the result of a compromise of the SKS, and the keys stored in the SKS are now known to the attacker, this continuity of activity is a secondary vulnerability (we then return to risk 1).
  • the present invention describes a method for distributing session keys in a telecommunications network comprising a set of N session key distribution servers, N being strictly greater than 1, clients comprising clients of type “publishers” and clients of type “subscribers”, and an intermediate communication module of the “broker” type, said servers, clients and broker being interconnected by telecommunications links; according to which a publisher client delivers to the broker module encrypted information based on at least one secret encryption key stored in the publisher client, at least one subscriber client associated with the publisher client then obtains said consultable information via the broker intermediate communication module and decrypts, and/or verifies, said information based on a decryption key associated with said encryption key; and each server is adapted to generate and distribute session keys to clients, including encryption, decryption and/or signature keys; said method being characterized in that: only any one of the servers, at any time considered, has the role of master server of the servers, and only the master server is authorized to distribute session keys to clients; each server and
  • such a method will also include at least one of the following characteristics:
  • the election operation triggered by said server upon receipt of a search request for a new master server comprises the steps consisting of:
  • the new keys intended to replace the session keys are generated by the master server at the time of its election from a new generation seed that it generates randomly;
  • the ordered list is an ordered loop, where after the server of rank N, we return to the server of rank 1;
  • a synchronization mechanism between the servers includes the synchronization of the list of servers indicating the current master server, no synchronization of the keys distributed by the servers and/or of the entropy source of the servers having to take place.
  • the invention describes a processing method, implemented in a client, for obtaining session keys, in a telecommunications network comprising a set of N session key distribution servers , N being strictly greater than 1, clients comprising clients of the “publishers” type and clients of the “subscribers” type, and an intermediate communication module of the “broker” type, said servers, clients and broker being interconnected by links telecommunications; according to which a publisher client delivers to the broker module encrypted information based on at least one secret encryption key stored in the publisher client, at least one subscriber client associated with the publisher client then obtains said consultable information via the broker intermediate communication module and decrypts, and/or verifies, said information based on a decryption key associated with said encryption key; and each server is adapted to generate and distribute session keys to clients, including encryption, decryption and/or signature keys; said method being characterized in that, the client having stored an ordered list with a view to the election of a new master, from rank 1 associated with the maximum priority to
  • the client monitors that it receives, according to a predefined minimum periodicity, periodic messages of a first predefined type (heartbeat) from the current master server indicated in the ordered list of servers; and when it detects that a message of the first type has not been received in accordance with said minimum periodicity, the client sends a search request for a new master server to the server of rank n+1 which follows the current master server of rank n in the ordered list of servers; the client receives, from a new master server, new session keys to replace the previous session keys.
  • a predefined minimum periodicity periodic messages of a first predefined type (heartbeat) from the current master server indicated in the ordered list of servers
  • a first predefined type heartbeat
  • the invention describes a client in a telecommunications network comprising a set of N session key distribution servers, N being strictly greater than 1, clients comprising clients of the “publishers” type and “subscriber” type clients, each subscriber client being associated with a publisher client, and an intermediate “broker” type communication module, said servers, clients and broker being adapted to be interconnected by telecommunications links; a publisher client being adapted to deliver to the broker module encrypted information as a function of at least one secret encryption key stored in the publisher client, at least one subscriber client associated with the publisher client being adapted to then obtain, via the communication module intermediate broker, said information can be consulted and decrypt, and/or verify, said information according to a decryption key associated with said encryption key; and each server is adapted to generate and distribute session keys to clients, including encryption, decryption and/or signature keys; said client being an electronic device characterized in that, the client having stored an ordered list with a view to the election of a new master, from rank 1 associated with the maximum
  • the invention describes a session key distribution server in a telecommunications network comprising a set of N session key distribution servers, N being strictly greater than 1, clients comprising clients of type “publishers” and clients of type “subscribers”, and a module of intermediate communication of the “broker” type, said servers, clients and broker being interconnected by telecommunications links; according to which a publisher client delivers to the broker module encrypted information based on at least one secret encryption key stored in the publisher client, at least one subscriber client associated with the publisher client then obtains, via the broker intermediate communication module, said searchable information and decrypts, and/or verifies, said information according to a decryption key associated with said encryption key; and each server is adapted to generate and distribute session keys to clients, including encryption, decryption and/or signature keys; said server being characterized in that it is adapted to respect the following rule: only any one of the servers, at any time considered, has the role of master server of the servers, and only the master server is authorized to distribute session keys to customers
  • Figure 1 represents an information producer-information consumer type communication system in one embodiment of the invention
  • FIG. 2 shows the steps for detecting an SKS server failure
  • Figure 3 represents the steps of an election of master server of SKS servers
  • FIG. 4 is a diagram of the architecture of a system implementing the invention in the railway field
  • Figure 5 illustrates a situation of compromise of a client in the prior art.
  • Figure 1 represents a distributed and secure resilient communication communication system for the exchange of session keys in one embodiment of the invention.
  • Telecommunications links 4 comprising for example wireless links, interconnect the SKS servers, the clients and the broker, which are adapted to communicate via said links 4.
  • clients are publisher clients and clients. subscribers and the transmission of messages from a publisher to one or more subscribers is done via broker 3.
  • a publisher and the subscribers having access to the publisher's messages constitute a group; session keys, specific to the group (in particular the broker does not obtain these keys), are distributed to them for the encryption by the publisher of the messages it sends to the broker and the decryption by the subscribers of the messages delivered by the broker of the publisher.
  • the encryption key is for example a symmetric key, or a pair of asymmetric keys.
  • the encryption complies with the AES 256 standard for example.
  • the architecture is specified in Figure 1 for server 1_1, and each server has the same architecture as that of server 1_1.
  • each client has the same architecture as that of client 2_1.
  • the embodiment described here relates to a system which integrates the invention on the basis of the OPC UA PUBSUB protocol, but the invention can of course be implemented using another communication protocol using the communication paradigm by group (e.g. MQTT).
  • group e.g. MQTT
  • the session key distribution function is redundant by the presence of N key servers.
  • the key servers are for example computer servers addressable, via the communication links 4, from all points of the network, and their network address is known to all present and future clients.
  • Each key server 1_1, 1_2, ...1_N comprises, in addition to a calculator and telecommunication means via the links 4:
  • an electronic module 13 for generating keys for example of the OPC UA PUBSUB type on the SKS side making it possible to (1) generate new session keys at the expiration of the life of the previous ones or at the end of the election a new master server and (2) transmit these keys to the clients concerned; as well as the four additional modules implemented in one embodiment of the invention:
  • an electronic election module 14 adapted to implement the steps of the master server elections (see below);
  • an electronic presence signaling module 15 adapted to send messages allowing SKS failure detection by customers (see below);
  • an electronic key renewal module 16 adapted to implement the distribution of keys at the initiative of the SKS during the election as master server of the key server (see below) and in addition to the expiration of the validity period of the keys that were generated by the key server;
  • Each key server 1_1, 1_2, includes a memory storing: the list 11 of servers 1_1, 1_2, ...1_N as well as a cursor on the current master SKS; in list 11, the servers are ordered according to an order of priority assigned to each of the servers; here for example the highest priority is assigned to server 1_1 and the lowest priority to server 1_N.
  • the order of priority is for example arbitrary or a function of the capacity of the servers or their geographical position. Note that the objective of redundancy is to ensure resilience, and not performance - the invention therefore does not apply to redundancy applied for load balancing;
  • - list 12 identifying the clients, listing for each client of the system 1, in particular its network address, such as for example an IP address and a TCP/IP port;
  • Each client 2_1, ..., 2_P, whether of publisher or subscriber type, comprises, in addition to a calculator and means of telecommunications via links 4:
  • an electronic module 22 for publication/subscription and management of session keys received from an SKS (for example of the OPC UA PUBSUB type on the client side, in one embodiment),
  • an electronic module 24 for secure authentication adapted to implement the security of the authentication used in the distribution of keys (see below).
  • Each client includes a memory storing the list 21 of key servers 1_1, ..., 1_N ordered according to the order of priority assigned to each of the servers, as well as their network address in order to carry out the physical routing of the frames, such as an IP address and a TCP/IP port.
  • Each key server synchronizes with the other key servers and with all the clients the ordered list of SKS, as well as the cursor on the current master SKS. Each key server synchronizes the list of clients with the other key servers.
  • Synchronization between key servers is carried out in a loose manner: ie it is deliberately limited to two elements: the ordered list of SKS (also containing a pointer to the master SKS) and the list of clients.
  • the synchronization of the SKS list is a convergent property of the election of the master server (see below). This synchronization is called laxis because it excludes a certain number of data including replication would be a source of vulnerabilities.
  • no synchronization of the keys (nor their expiration date) distributed by the servers to the clients is carried out between the key servers, nor of the entropy source (mechanism and seed).
  • the electronic modules in the clients, respectively the servers are produced in the form of software modules comprising software instructions which, when executed on a computer of the client, respectively of the server, implement the steps described below and incumbent on the client, respectively the server.
  • Each key server 1_1, 1_2, ...1_N is adapted to operate as a master server or as a slave server depending on whether it is the last elected master server or not.
  • a key server is the master server, then its electronic presence signaling module 15 sends to each client, at the network address indicated in the client list 12, a message of a first type, called here “heartbeat” message, at regular intervals, according to a predefined period or a cyclical profile defined and known to customers.
  • the objective of this message is to indicate that the transmitting SKS is operational.
  • the malfunction detection module 23 in each client 2_1, ..., 2_P monitors that it receives, according to said predefined periodicity, the heartbeat messages coming from the current master server as indicated by the cursor in the ordered list servers 21; and when it detects that the heartbeat message has not been received in accordance with said predefined periodicity (or in embodiments, that the number of messages not received according to this periodicity is greater than a fixed threshold, greater than or equal to 2 ), the detection module 23 of the client detects a malfunction and sends a search request (Master Request type message) from a new master server to the server of rank n+1 which follows the current master server (of rank n in the list) in the ordered list of servers.
  • a search request Master Request type message
  • the heartbeat type message is, in the case considered, for example parameterized by renewal, which defines the number of missed messages triggering a change of key server, and period, which defines the frequency of sending the heartbeat.
  • This periodicity value is typically the maximum duration during which message losses are operationally acceptable, divided by renewal.
  • FIG. 2 illustrates the sequence of these previous steps implemented in a situation of detection of failure of the master SKS server by a client (here publisher).
  • Each module 14 for election of each key server, excluding the previous master server, upon receipt by said key server of a Master Request type message sent by a client 2_i, I 1 to P , sends to all the other servers in list 11 of servers a message requesting an election, here called Master Claim message, with the server identifier. It waits a predefined time (delay called timeout equal to at least twice the latency of the message, taking the sending of its own Master Claim as a reference). During this period, it may receive one or more Master Claim messages from other key servers. At the end of the wait:
  • the server becomes the current master key server, it then generates new session keys and the module 16 for renewing the keys of the key server responds to the client having requested it by the Master Request message with a SetSecurityKey (with immediate key renewal regardless of the expiration date of its key) and more generally to each client in its client list .
  • SetSecurityKey is a set of protocol exchanges initiated by an SKS and intended for a client, and has the function of sending new session keys to the client. These exchanges include the mutual authentication of the interlocutors, the creation of a secure channel between them and the transmission of session keys in this channel. A possible and effective implementation solution would be to use the homonymous function defined in OPC UA PUBSUB.
  • a Publisher 2_i client I e 1,..., Q, Q ⁇ P
  • master server here server 1_1
  • Slave server 1_2 sends a Master Claim message to each of servers 1_1 and 1_3.
  • slave server 1_2 received a Master Request from a client. He is therefore the only one to issue a Master Claim. It therefore proceeds to send a SetSecurityKey after expiry of the timeout to client 2_i.
  • the client if the client has not received any feedback (SetSecurityKey message) after the expiration of a predefined period (typically equal to timeout times two) following the sending of its Master Request message , the client then sends a Master Request message to the next server in its list, and so on.
  • a predefined period typically equal to timeout times two
  • server 1_N in the list of servers has been reached, the client loops back to the first server 1_1, incrementing the duration between each cycle, until obtaining a response.
  • a mechanism external to the excluded master server ensures that it is not compromised before reintroducing it into the list of SKS servers eligible for the position of master server.
  • Redundancy is called cyclic because, after exhausting the list of key servers (by failure of all of them) without receiving a message indicating that its request has been taken into account, the client will return to the first server, and so on, until one of the key servers finally responds.
  • Redundancy is said to be adaptable because an arbitrary number N of servers can be provisioned, depending on the needs of the system in terms of availability.
  • the conservation of private keys is carried out, for each interlocutor (Client and SKS), in “Secure Elements” (SE) present in their respective hosts, for example according to the standard TPM2 (https://trustedcomputinggroup.org/resource/tpm-library-specification/), or the Embedded Secure Element from Gemalto (https://www.thalesgroup.com/en/markets/digital-identity-and-security/ mobile/secure-elements/embedded-secure-element).
  • TPM2 https://trustedcomputinggroup.org/resource/tpm-library-specification/
  • Embedded Secure Element https://www.thalesgroup.com/en/markets/digital-identity-and-security/ mobile/secure-elements/embedded-secure-element.
  • SE Secure Element
  • the client's certificate is generated (cryptographic signature) by the OS without the private key being extracted from it;
  • the SKS certificate is also generated using the OS.
  • phase 4 The decryption of the SKS challenge (phase 4) is carried out in the Client's OS;
  • step 7 The calculation of the temporary secret key SK1 (step 7) is carried out by the client's OS;
  • step 8 The calculation of the temporary secret key SK2 (step 8) is carried out by the SE of the SKS;
  • a client tries all the key servers (in decreasing order of priority in the list, from rank 1 to rank N) until finding one that responds. It then establishes a secure connection and receives the session keys.
  • the key server associates its network identifiers with the new client (in a format depending on the protocol used, e.g. IP address and IP listening port). This association can be implemented in a table indexed by the client identifier.
  • key renewal in one embodiment of the invention is imposed by the master key server and not by the clients individually.
  • the master key server and not the slave servers uses its Client List to broadcast a SetSecurityKey message affecting the new keys in all known clients.
  • a gap between key assignments to clients is always possible due to routing hazards, but this will be much smaller than that linked to a faulty time source. Risk 2 is therefore mixed.
  • the SKS also provides its own identifier to customers.
  • session keys distributed by the key servers according to the invention may include keys other than those for encryption or decryption (different in the case of asymmetric encryption), for example signature keys used, or expiration date of these keys.
  • This solution addresses or mitigates the risks mentioned in the OPC UA PUBSUB key distribution and more generally in group communication paradigms; it proposes mechanisms to ensure the secure resilience of the distribution and use of session keys by lax synchronization in producer-consumer type communication paradigms while providing the following benefits:
  • - integrity of the secret key a potentially compromised secret key is subject to minimal use by the producers and consumers of the group associated with this key.
  • - communications security communications are better protected against confidentiality or integrity attacks thanks to the additional guarantee concerning the integrity of the secret key.
  • the impact on performance is minimal in terms of network throughput (between the key servers, or between the key servers and the clients), calculation time (in the key servers or in the clients), latency (for receipt of a valid key by a client) and memory footprint (on key servers).
  • the compromised keys are only the last keys distributed by the key server.
  • set size 1
  • not lists of keys makes it possible to reduce the duration of compromised exchanges.
  • the invention makes it possible to deploy key servers on heterogeneous architectures (different software libraries, operating systems and/or hardware architectures). In this way, protection is provided against not yet discovered vulnerabilities (0-day) which would be present in these elements, at least if they are used to obtain a denial of service (DoS).
  • heterogeneous architectures different software libraries, operating systems and/or hardware architectures.
  • DoS denial of service
  • the proposed lax synchronization mechanism ensures that, in the event of a detectable compromise of a server (i.e. involving an interruption of service), the keys present on the compromised server are very quickly invalidated. , and an new generation seed is randomly generated by another key server, before being used to generate a new key (and subsequent keys generated by this server) which will then be broadcast to clients. Data exposure is time-limited and calculable. We assume the existence of random generation means having a satisfactory entropy on each SKS.
  • a secure producer-consumer communication protocol implementing the invention is implemented in this system, to provide security while maintaining the availability of information.
  • an extension of the OPC UA PUBSUB protocol is created to implement the invention.
  • GetSecurityKey not modified from the OPC-UA PUBSUB standard.
  • SetSecurityKey modified from the OPC-UA PUBSUB standard. Added master SKS server ID to information sent to client.
  • HeartBeat new. Informs a client of the availability of the master SKS. Parameters: renewal, period.
  • Master Claim new. Informs an SKS of the candidacy of another SKS for the election of the master. Parameters: identifier, priority.
  • Master Request new. Informs an SKS of a request for a new master server by a client. Parameters: identifier.
  • Another variant would be to implement it through a new layer of secure communication protocol which would be located above the OPC UA PUBSUB protocol.
  • This variant is a solution which limits the development effort, and allows both to benefit from the OPC UA protocol and to be independent of OPC UA so that our invention can be used on top of any what other producer-consumer communication protocol.
  • three key servers as described above are instantiated, with key renewal carried out daily at 4 a.m. 500 instances of connected sensors (producers) were deployed, measuring the physical tension of the catenaries.
  • Two consumers were deployed: one for the visualization and analysis center, and one for the command center. Other producers and consumers may be added during the life cycle of the system (for example for supervision by civil authorities), in accordance with the dynamic nature of the architectures covered by the invention.
  • Heartbeat 1 minute
  • Renewal 3 Heartbeat messages missing
  • Timeout 30 seconds.
  • the latency of a client-SKS communication is estimated (after operational measurements) to be around 1 second, and the availability of a server is estimated at 99%.
  • the SKS does not send a set of keys, but only individual keys. Risk 1 is thus mitigated.
  • the cost of this measure is that of a secure connection (in terms of network throughput), with a periodicity equal to the lifespan of the key (expiration date minus creation date). This measure is only feasible if the bandwidth during the cryptographic lifetime of the symmetric key is greater than the cost of this connection. This is valid in the vast majority of cases, and in particular in the proposed case study.
  • the worst waiting time to receive a key following a request will be equal to 32 seconds (SKS election timeout plus twice the latency of SKS-client communication).
  • the maximum time for using a potentially invalid key i.e. key coming from a faulty key server) will be 3 minutes.
  • the invention comprises the following elements (or at least some of the elements according to the embodiments):
  • This invention is particularly useful in critical industrial fields based on a set of distributed or even geodistributed calculators or calculation elements supporting the client-server environment and having a communication system by exchange of producer-consumer type messages with presence of a mediating agent between transmitters and receivers (“broker”) requiring a high level of Cybersecurity. It makes it possible to increase the confidentiality, integrity and availability of communications between the different components of the industrial system sensors, computers and actuators, from end to end (from the transmitting application to the receiving application) while having a low impact on performance.
  • the industrial fields likely to deploy our invention to secure their communication systems include in particular any field relating to industry 4.0, and any field of the type: HoT (Industrial Internet of Things), smart city, space, aeronautics, automobile , naval, railway (infrastructure, train, tramway), military (connected battlefield).
  • HoT Industrial Internet of Things
  • smart city smart city
  • space space
  • aeronautics automobile
  • naval railway (infrastructure, train, tramway)
  • military connected battlefield

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer And Data Communications (AREA)

Abstract

The invention relates to a method for distributing session keys in a telecommunication network (1) comprising N servers (1_1, 1_2) and "publisher" or "subscriber" clients (2_1, 2_2) which exchange, using session keys (3), encrypted information, wherein: each server (1_1, 1_2), when acting as the master server, which is alone in being authorized to distribute session keys, sends the clients (2_1, 2_2), with a predefined minimum periodicity, a predefined message; each client (2_1, 2_2), when it detects that the predefined message has not been received in accordance with the periodicity, sends a request to search for a new master server over the server, of rank n+1, which follows the current master server of rank n in an ordered list of the servers; each server (1_1, 1_2), as soon as it receives such a request, triggers a selection operation for selecting a new master server from among the servers; the master server selected by the selection operation triggers, as soon as it is selected, replacement of the valid session keys with the clients (2_1, 2_2).

Description

DESCRIPTION DESCRIPTION
Procédé de distribution de clefs de session dans un réseau de télécommunication, procédés associés de traitement dans un client et un serveur, module client et serveurs associés. Method for distributing session keys in a telecommunications network, associated processing methods in a client and a server, client module and associated servers.
Domaine technique : Technical area :
[0001] L’invention se situe dans le domaine de la distribution des clefs dans un réseau de télécommunication comportant des serveurs de distribution de clefs et des modules clients utilisant ces clefs pour communiquer entre eux. [0001] The invention is in the field of key distribution in a telecommunications network comprising key distribution servers and client modules using these keys to communicate with each other.
[0002] Elle est particulièrement utile dans les systèmes embarqués et/ou temps-réel critiques. [0002] It is particularly useful in critical embedded and/or real-time systems.
[0003] On désigne par « clefs de session » l’ensemble des données cryptographiques permettant d’assurer la confidentialité et/ou l’intégrité des communications entre plusieurs clients, quel que soit le type de chiffrement utilisé. Ces clefs sont valables pendant une durée prédéfinie, et donc soumises à renouvellement périodiques. Elles comportent par exemple des clefs symétriques ou asymétriques, utilisées pour chiffrer ou signer des données. [0003] “Session keys” means all the cryptographic data making it possible to ensure the confidentiality and/or integrity of communications between several clients, regardless of the type of encryption used. These keys are valid for a predefined period, and therefore subject to periodic renewal. For example, they include symmetric or asymmetric keys, used to encrypt or sign data.
Technique antérieure Prior art
[0004] L’augmentation notable des performances des communications sans fil ainsi que le développement de protocoles standards rend possible l’utilisation massive d’objets connectés en contexte industriel (HoT) ou grand public (loT). [0004] The notable increase in the performance of wireless communications as well as the development of standard protocols makes possible the massive use of connected objects in an industrial (HoT) or general public (loT) context.
[0005] Malgré les avantages qu’ils apportent en termes de flexibilité et de connectivité, l’utilisation de ces systèmes composés majoritairement d’objets connectés de type loT/lloT, sont un facteur d’exposition à des risques nouveaux qui peuvent impacter fortement la cyber- sécurité et, par suite, la sûreté de fonctionnement. En effet, la dernière décade a été également marquée par l’avènement d’attaques de plus en plus complexes sur les systèmes industriels (Stuxnet en 2010, Black Energy en 2017...), ayant causé des dégâts considérables à leurs victimes. [0005] Despite the advantages they provide in terms of flexibility and connectivity, the use of these systems composed mainly of connected objects of the loT/lloT type, are a factor of exposure to new risks which can significantly impact cyber security and, consequently, operational safety. Indeed, the last decade has also been marked by the advent of increasingly complex attacks on industrial systems (Stuxnet in 2010, Black Energy in 2017, etc.), having caused considerable damage to their victims.
[0006] Parmi les nombreux protocoles de communication pour l'IoT et l'IloT, les protocoles des couches transport et supérieures dans le modèle OSI semblent particulièrement aptes à porter la sécurité, notamment les protocoles DDS, MQTT, CoaP et OPC UA. Ceux-ci supportent, pour la communication opérationnelle, des paradigmes producteur- consommateurs : le modèle publish/subscribe (PubSub) est une alternative au modèle "Client/Serveur" traditionnel. Le modèle "PubSub" dissocie le client (appelé publisher) qui envoie un message particulier, auquel les clients abonnés (appelés subscribers) ont accès. Un troisième acteur, appelé le broker, connu à la fois par le publisher et le subscriber, filtre tous les messages entrants provenant des publishers et les distribue en conséquence aux subscribers (ou les notifie de la disponibilité de nouvelles données accessibles depuis le broker) en fonction du type de message, du sujet ou du contenu et de critères indiqués par les subscribers. En conséquence, le publisher ne connaît pas la liste des subscribers appelés à recevoir les données que le publisher envoie au broker. Il est important de noter que l’authentification et la distribution des clefs peuvent relever d’autres paradigmes, par exemple client/ serveur. [0006] Among the numerous communication protocols for IoT and IloT, the transport and higher layer protocols in the OSI model seem particularly suited to providing security, in particular the DDS, MQTT, CoaP and OPC UA protocols. These support, for operational communication, producer-consumer paradigms: the publish/subscribe (PubSub) model is an alternative to the traditional “Client/Server” model. The "PubSub" model dissociates the client (called publisher) which sends a particular message, to which subscribing clients (called subscribers) have access. A third actor, called the broker, known to both the publisher and the subscriber, filters all incoming messages from publishers and distributes them accordingly to subscribers (or notifies them of the availability of new data accessible from the broker) by depending on the type of message, subject or content and criteria indicated by subscribers. Consequently, the publisher does not know the list of subscribers called to receive the data that the publisher sends to the broker. It is important to note that authentication and key distribution may fall under other paradigms, for example client/server.
[0007] MQTT et CoaP sont des protocoles de communication très légers n'incorporant nativement aucune sécurité. Dans le cas de MQTT, une version sécurisée nommée MQTT-S (ou MQTT-SN), sous la forme d'un chiffrement avec TLS avec déchiffrement/chiffrement des messages au niveau du broker. Cette solution n'est pas satisfaisante sur un réseau public, car le broker peut être compromis, exposant toutes les communications à des attaques de type Man In The Middle (MITM). [0007] MQTT and CoaP are very lightweight communication protocols that do not natively incorporate any security. In the case of MQTT, a secure version called MQTT-S (or MQTT-SN), in the form of encryption with TLS with decryption/encryption of messages at the broker level. This solution is not satisfactory on a public network, because the broker can be compromised, exposing all communications to Man In The Middle (MITM) attacks.
[0008] DDS propose une architecture distribuée (DDS Security version 1.1 , OMG) permettant aux différents acteurs communicants d'échanger des clefs de chiffrement entre eux. Les fonctions de serveurs de clefs (KeyFactory) peuvent être implémentées dans tout acteur. La solution proposée par DDS est lourde en termes d'échanges générés à chaque connexion et donc peu compatible avec les contraintes de beaucoup de systèmes embarqués et/ou temps-réel critiques. De plus, aucune solution spécifique n’est proposée pour assurer la résilience de serveur de clefs. [0008] DDS offers a distributed architecture (DDS Security version 1.1, OMG) allowing the different communicating actors to exchange encryption keys between them. Key server functions (KeyFactory) can be implemented in any actor. The solution proposed by DDS is heavy in terms of exchanges generated at each connection and therefore not very compatible with the constraints of many critical embedded and/or real-time systems. In addition, no specific solution is proposed to ensure key server resilience.
[0009] OPC UA PUBSUB (OPC Unified Architecture Specificiations part 14, version 1.04, OPC Foundation) est une variante du protocole OPC UA. Elle propose entre autre une solution de chiffrement bout-à-bout où la distribution des clefs est centralisée, mais reste compatible avec OPC UA. Les clefs de chiffrement sont distribuées à tous les acteurs par un service spécifique, le service de clef de chiffrement (SKS). Cette solution est efficace en terme de communication réseau, et résistante aux attaques MITM, mais pose problème du point de vue de la sûreté de fonctionnement, en introduisant un point de vulnérabilité unique : le SKS. [0009] OPC UA PUBSUB (OPC Unified Architecture Specificiations part 14, version 1.04, OPC Foundation) is a variant of the OPC UA protocol. It offers, among other things, an end-to-end encryption solution where key distribution is centralized, but remains compatible with OPC UA. The encryption keys are distributed to all actors by a specific service, the encryption key service (SKS). This solution is efficient in terms of network communication, and resistant to MITM attacks, but poses a problem from the point of view of operational safety, by introducing a single point of vulnerability: the SKS.
[0010] Les mécanismes permettant d’assurer la redondance des SKS ne sont pas décrits explicitement dans la partie de la spécification décrivant OPC UA PUBSUB. Cependant, en PUBSUB, la distribution des clefs est faite en OPC UA Client-Serveur, où le SKS est implémenté dans un serveur OPC UA, tandis que le publisher ou subscriber est implémenté dans un client OPC UA - et la spécification OPC UA décrit une solution pour la redondance des serveurs (OPC Unified Architecture Specifications, part 4, version 1.04, section 6.6.2, OPC Foundation). [0010] The mechanisms making it possible to ensure the redundancy of the SKS are not described explicitly in the part of the specification describing OPC UA PUBSUB. However, in PUBSUB, key distribution is done in OPC UA Client-Server, where the SKS is implemented in an OPC UA server, while the publisher or subscriber is implemented in an OPC UA client - and the OPC UA specification describes a solution for the server redundancy (OPC Unified Architecture Specifications, part 4, version 1.04, section 6.6.2, OPC Foundation).
[0011] OPC UA définit deux modes de fonctionnement pour les mécanismes de redondance des serveurs génériques : transparent et non-transparent. Le mode transparent implémente un proxy situé entre les clients et les serveurs, qui se charge de rediriger les demandes des clients selon la disponibilité des serveurs. Le mode non-transparent donne au client la responsabilité de choisir un serveur au sein de l'ensemble de serveurs redondés. [0011] OPC UA defines two operating modes for the redundancy mechanisms of generic servers: transparent and non-transparent. Transparent mode implements a proxy located between clients and servers, which is responsible for redirecting client requests depending on server availability. Non-transparent mode gives the client the responsibility of choosing a server from the set of redundant servers.
[0012] Dans le mode non-transparent, il y a quatre catégories de basculement, correspondant à divers degrés de synchronisation des SKS : [0012] In the non-transparent mode, there are four switching categories, corresponding to varying degrees of synchronization of the SKS:
- Froid : seul le serveur actif est fonctionnel, les autres sont éteints. Aucune information n'est donc synchronisée entre les serveurs, et le client doit maintenir en local les informations relatives aux serveurs inactifs (non-synchronisé) ; - Cold: only the active server is functional, the others are turned off. No information is therefore synchronized between the servers, and the client must maintain local information relating to inactive servers (non-synchronized);
- Tiède : tous les serveurs sont démarrés, et sont en écoute des différents clients, mais seul le serveur actif peut émettre vers un client. Les serveurs partagent donc les informations reçues des clients (synchronisés) ; - Lukewarm: all servers are started, and are listening to the different clients, but only the active server can transmit to a client. The servers therefore share the information received from clients (synchronized);
- Chaud : tous les clients sont connectés à tous les serveurs, et reçoivent les informations de ces derniers en parallèle. Le client est chargé de gérer les flux redondés ; - Hot: all clients are connected to all servers, and receive information from them in parallel. The client is responsible for managing the redundant flows;
- Chaud et dupliqué : les clients ne sont connectés qu'à un serveur, qui maintient sur les autres serveurs une copie des sessions que les clients ouvrent avec lui. En cas de basculement, les clients n'ont pas à créer de nouveau contexte de session (fortement synchronisés). - Hot and duplicated: clients are only connected to one server, which maintains on the other servers a copy of the sessions that clients open with it. In case of failover, clients do not have to create a new (strongly synchronized) session context.
[0013] Analyse de l’application de la redondance OPC UA à la distribution de clef dans PUBSUB : [0013] Analysis of the application of OPC UA redundancy to key distribution in PUBSUB:
[0014] Déterminisme de la génération des clefs [0014] Determinism of key generation
[0015] La spécificité des SKS est de détenir une clef (ou un jeu de clefs) dont la consultation illégitime remet en question la sécurité du système. De plus, ils ont un comportement asymétrique par nature, à cause de la source d'entropie nécessaire à la génération de clef. Deux SKS ayant les mêmes entrées auront des comportements différents (i.e. généreront des clefs différentes). C'est pourquoi il ne doit pas être possible d'avoir deux clients abonnés à des SKS différents - sans quoi ils ne pourront communiquer entre eux. Ce mode de fonctionnement exclut les basculements tièdes, qui sont basés sur le déterminisme des comportements des serveurs. [0015] The specificity of SKS is to hold a key (or a set of keys) whose illegitimate consultation calls into question the security of the system. In addition, they have an asymmetric behavior by nature, because of the source of entropy necessary for key generation. Two SKS having the same entries will have different behaviors (ie will generate different keys). This is why it must not be possible to have two clients subscribed to different SKS - otherwise they will not be able to communicate with each other. This mode of This operation excludes warm failovers, which are based on the determinism of server behaviors.
[0016] Synchronisation et vulnérabilité [0016] Synchronization and vulnerability
[0017] Les solutions répliquant les données (typiquement tiède et au-delà) permettraient de remonter un serveur possédant la clef de chiffrement courante, ce qui introduirait une vulnérabilité (un SKS remonté devrait immédiatement procéder à une nouvelle génération de clef, car la clef du SKS défaillant doit être considérée comme potentiellement compromise). Par ailleurs ces solutions impliquent de multiplier le nombre de connexions dans le système par le nombre de SKS existants, ce qui est très lourd en terme d'impact sur les performances. Cette solution n'est donc pas souhaitable. [0017] Solutions replicating data (typically lukewarm and beyond) would make it possible to remount a server having the current encryption key, which would introduce a vulnerability (a remounted SKS would immediately have to proceed with a new key generation, because the key of the faulty SKS should be considered potentially compromised). Furthermore, these solutions involve multiplying the number of connections in the system by the number of existing SKS, which is very heavy in terms of impact on performance. This solution is therefore not desirable.
[0018] Le mode de basculement froid n'implique pas de communication supplémentaire, mais se repose sur une connexion directe avec le serveur pour détecter la défaillance de ce dernier. Cette hypothèse tombe dans le cas d'OPC UA PUBSUB, à cause de la présence du broker et de la nature déconnectée du protocole (cas général des paradigmes producteurs- consommateurs). Par ailleurs, la question du choix SKS n'est traitée dans la norme que dans l'optique de l'équilibrage de charge, et peut mener dans le cas de réseaux instables à ce que des clients choisissent des SKS différents, ce qui remettrait en question la disponibilité du système. [0018] The cold failover mode does not involve additional communication, but relies on a direct connection with the server to detect the failure of the latter. This hypothesis falls in the case of OPC UA PUBSUB, because of the presence of the broker and the disconnected nature of the protocol (general case of producer-consumer paradigms). Furthermore, the question of SKS choice is only addressed in the standard from the perspective of load balancing, and can lead, in the case of unstable networks, to customers choosing different SKS, which would call into question question the availability of the system.
[0019] Détail des vulnérabilités de l’échange de clef : les trois risques résiduels présents lors de l’utilisation des techniques présentées dans l’état de l’art sont explicités ci-dessous dans le contexte de OPC UA PUBSUB pour l’exemple. [0019] Details of key exchange vulnerabilities: the three residual risks present when using the techniques presented in the state of the art are explained below in the context of OPC UA PUBSUB for the example .
[0020] Risque 1 : Compromission du client [0020] Risk 1: Customer compromise
[0021] En cas d’utilisation d’un jeu de clefs de taille K supérieure à 1 (c’est-à-dire le jeu de clefs comprend au moins K clefs associées à des périodes de validité qui se succèdent, les K clefs étant donc prévues pour se succéder au fil du temps) et propre à un groupe de clients (l’objet électronique de type publisher ou subscriber est en effet un client vis-à-vis du serveur SKS, qui lui délivre des clefs secrètes), la sécurité face à une attaque statistique contre les clefs session utilisées pour chiffrer/déchiffrer les données publiées par le publisher est conservée (puisque les clefs changent), mais la sécurité face à la compromission d’un client du groupe est diminuée d’un facteur égal à la taille du jeu de clefs : en effet, si le jeu de clefs est obtenu par un attaquant, alors le groupe tout entier est compromis pour une durée d’autant plus grande. C’est une conséquence du fait de diminuer la fréquence de la distribution des clefs sécurisées. [0021] In the event of use of a set of keys of size K greater than 1 (that is to say the set of keys comprises at least K keys associated with successive validity periods, the K keys therefore being intended to succeed one another over time) and specific to a group of clients (the electronic object of publisher or subscriber type is in fact a client vis-à-vis the SKS server, which issues it secret keys), security against a statistical attack against the session keys used to encrypt/decrypt the data published by the publisher is preserved (since the keys change), but security against the compromise of a client of the group is reduced by a factor equal to the size of the set of keys: in fact, if the set of keys is obtained by an attacker, then the entire group is compromised for an even longer period. This is a consequence of reducing the frequency of secure key distribution.
[0022] Une telle situation est représentée en figure 5. Tout d’abord le serveur SKS distribue le jeu de clefs de session au Publisher et au Subscriber, de taille K. Dans une première phase cp1 , la première clef secrète est utilisée pour le chiffrement par le Publisher des messages M1 , qu’il envoie ensuite au Broker, lequel les fait suivre aux Subscribers qui déchiffrent les messages M1 avec la première clef secrète. Au cours de cette phase <p1 , l’attaquant obtient de façon malveillante le jeu de clefs de session, par exemple en lisant la mémoire physique du Publisher. Après la date, T1 , d’expiration de la première clef secrète, commence une deuxième phase <p2 (jusqu’à la date, T2, d’expiration de la deuxième clef secrète), où la deuxième clef secrète est utilisée pour le chiffrement par le Publisher des messages M2, qu’il envoie ensuite au Broker, lequel les fait suivre aux Subscribers qui déchiffrent les messages M2 avec la deuxième clef secrète ; l’attaquant lui aussi publie des messages chiffrés par la deuxième clef secrète qui parviennent aux subscribers via le broker, et cette intrusion peut durer tant que le jeu de clefs secrètes reste valide, i.e jusqu’à l’expiration de la validité de la Kième clef. [0022] Such a situation is represented in Figure 5. First of all, the SKS server distributes the set of session keys to the Publisher and the Subscriber, of size K. In a first phase cp1, the first secret key is used for encryption by the Publisher of the M1 messages, which it then sends to the Broker, who forwards them to the Subscribers who decrypt the M1 messages with the first secret key. During this <p1 phase, the attacker maliciously obtains the set of session keys, for example by reading the physical memory of the Publisher. After the date, T1, of expiration of the first secret key, a second phase <p2 begins (until the date, T2, of expiration of the second secret key), where the second secret key is used for encryption by the Publisher of M2 messages, which it then sends to the Broker, who forwards them to the Subscribers who decrypt the M2 messages with the second secret key; the attacker also publishes messages encrypted by the second secret key which reach subscribers via the broker, and this intrusion can last as long as the set of secret keys remains valid, ie until the validity of the Kth expires. key.
[0023] Risque 2 : Disponibilité au renouvellement [0023] Risk 2: Availability for renewal
[0024] Les dates précises des demandes de renouvellement des clefs par les clients dépendent de leur source de temps. Si l’un d’entre eux est en retard par rapport au SKS, il pourra recevoir des messages chiffrés avec une clef secrète qu’il ne possède pas encore, et perdra donc ces messages. Selon le contexte d’emploi de l’IloT, cela peut être un problème important, car les objets connectés peuvent être situés dans des réseaux ne disposant pas d’accès à des sources de temps fiables. [0024] The precise dates of key renewal requests by customers depend on their time source. If one of them is late compared to the SKS, it may receive messages encrypted with a secret key that it does not yet possess, and will therefore lose these messages. Depending on the context of use of the IoT, this can be a significant problem, because connected objects can be located in networks that do not have access to reliable time sources.
[0025] Risque 3 : Défaillance du SKS [0025] Risk 3: Failure of the SKS
[0026] La plateforme hébergeant le SKS peut être victime d’une panne, induite par une attaque ou accidentelle. Dans les deux cas, le réseau HoT continuera de fonctionner jusqu’à expiration des clefs du jeu de clefs en cours d’usage, puis s’arrêtera faute de nouveau jeu. Comme la défaillance du SKS peut très bien être le résultat d’une compromission du SKS, et les clefs conservées dans le SKS être à présent connues de l’attaquant, cette continuité d’activité est en une vulnérabilité secondaire (on revient alors au risque 1). The platform hosting the SKS may be the victim of a breakdown, induced by an attack or accidental. In both cases, the HoT network will continue to operate until the keys in the set of keys currently in use expire, then stop for lack of a new set. As the failure of the SKS may very well be the result of a compromise of the SKS, and the keys stored in the SKS are now known to the attacker, this continuity of activity is a secondary vulnerability (we then return to risk 1).
[0027] Il existe donc un besoin d’améliorer la résilience et la cyber-sécurité dans les communications des systèmes répartis dans un contexte de système embarqué. [0027] There is therefore a need to improve resilience and cyber security in the communications of distributed systems in an embedded system context.
Résumé de l’invention : Summary of the invention:
[0028] A cet effet, suivant un premier aspect, la présente invention décrit un procédé de distribution de clefs de session dans un réseau de télécommunication comportant un ensemble de N serveurs de distribution de clefs de session, N étant strictement supérieur à 1 , des clients comportant des clients de type « publishers » et des clients de type « subscribers », et un module de communication intermédiaire de type « broker », lesdits serveurs, clients et broker étant interconnectés par des liaisons de télécommunication ; selon lequel un client publisher délivre au module broker des informations chiffrées en fonction d’au moins une clef secrète de chiffrement stockée dans le client publisher, au moins un client subscriber associé au client publisher obtient ensuite via le module de communication intermédiaire broker lesdites informations consultables et déchiffre, et/ou vérifie, lesdites informations en fonction d’une clef de déchiffrement associée à ladite clef de chiffrement ; et chaque serveur est adapté pour générer et distribuer des clefs de session aux clients, comprenant les clefs de chiffrement, déchiffrement et /ou signature ; ledit procédé étant caractérisé en ce que : un seul quelconque des serveurs, à tout instant considéré, a le rôle de serveur maître des serveurs, et seul le serveur maître est autorisé à distribuer des clefs de session aux clients ; chaque serveur et chaque client stockent une même liste ordonnée en vue de l’élection d’un nouveau maître, du rang 1 associé à la priorité maximale au rang N associé à la priorité minimale, des serveurs de l’ensemble de serveurs, ladite liste ordonnée des serveurs indiquant en outre quel est le serveur maître actuel, chaque serveur stockant une liste des clients auxquels des clefs de session en cours de validité ont été distribuées par le serveur maître actuel et les serveurs maîtres précédents ; chaque serveur, quand il a le rôle de serveur maître, envoie aux clients, selon au moins une périodicité minimale prédéfinie, un message périodique d’un premier type prédéfini (heartbeat) ; chaque client surveille qu’il reçoit selon ladite périodicité prédéfinie, les messages du premier type en provenance du serveur maître actuel indiqué dans la liste ordonné des serveurs ; et lorsqu’il détecte qu’un message du premier type n’a pas été reçu conformément à ladite périodicité minimale, le client envoie une requête de recherche d’un nouveau serveur maître au serveur de rang n+1 qui suit le serveur maître actuel de rang n dans la liste ordonnée des serveurs ; chaque serveur de l’ensemble des serveurs, dès qu’il reçoit une requête de recherche d’un nouveau serveur maître, déclenche une opération d’élection d’un nouveau serveur maître auprès des serveurs de l’ensemble de serveurs ; le serveur maître élu par ladite opération d’élection déclenche, dès son élection, auprès des clients de sa liste de clients, un remplacement des clefs de session valides indiquées dans la liste des clients et qui leur ont été attribuées. [0029] L’invention assure une résilience sécurisée de la distribution des clefs de session et accroît la sécurité des communications. To this end, according to a first aspect, the present invention describes a method for distributing session keys in a telecommunications network comprising a set of N session key distribution servers, N being strictly greater than 1, clients comprising clients of type “publishers” and clients of type “subscribers”, and an intermediate communication module of the “broker” type, said servers, clients and broker being interconnected by telecommunications links; according to which a publisher client delivers to the broker module encrypted information based on at least one secret encryption key stored in the publisher client, at least one subscriber client associated with the publisher client then obtains said consultable information via the broker intermediate communication module and decrypts, and/or verifies, said information based on a decryption key associated with said encryption key; and each server is adapted to generate and distribute session keys to clients, including encryption, decryption and/or signature keys; said method being characterized in that: only any one of the servers, at any time considered, has the role of master server of the servers, and only the master server is authorized to distribute session keys to clients; each server and each client store the same ordered list for the election of a new master, from rank 1 associated with the maximum priority to rank N associated with the minimum priority, of the servers of the set of servers, said list ordinate of servers further indicating which is the current master server, each server storing a list of clients to whom valid session keys have been distributed by the current master server and previous master servers; each server, when it has the role of master server, sends clients, according to at least a predefined minimum periodicity, a periodic message of a first predefined type (heartbeat); each client monitors that it receives, according to said predefined periodicity, messages of the first type coming from the current master server indicated in the ordered list of servers; and when it detects that a message of the first type has not been received in accordance with said minimum periodicity, the client sends a search request for a new master server to the server of rank n+1 which follows the current master server of rank n in the ordered list of servers; each server of all the servers, as soon as it receives a search request for a new master server, triggers an operation to elect a new master server from the servers of the set of servers; the master server elected by said election operation triggers, upon its election, with the clients of its list of clients, a replacement of the valid session keys indicated in the list of clients and which have been allocated to them. [0029] The invention ensures secure resilience of the distribution of session keys and increases the security of communications.
[0030] Dans des modes de réalisation, un tel procédé comprendra en outre l’une au moins des caractéristiques suivantes : [0030] In embodiments, such a method will also include at least one of the following characteristics:
- à l’expiration d’un délai prédéfini après qu’un client a envoyé une requête de recherche d’un nouveau serveur sans que le client ait reçu un message en provenance d’un serveur élu maître serveur, ledit client envoie une requête de recherche d’un nouveau serveur maître au serveur de rang n+2 dans la liste ordonnée de serveurs ; - at the expiration of a predefined period after a client has sent a search request for a new server without the client having received a message from a server elected as master server, said client sends a search request for a new server search for a new master server at the server of rank n+2 in the ordered list of servers;
- l’opération d’élection déclenchée par ledit serveur dès réception d’une requête de recherche d’un nouveau serveur maître comprend les étapes consistant à : - the election operation triggered by said server upon receipt of a search request for a new master server comprises the steps consisting of:
- envoyer à tous autres serveurs de la liste ordonnée des serveurs un message d’un deuxième type prédéfini, indiquant qu’un serveur maître est à élire, et identifiant le serveur envoyant ledit message ; - send to all other servers in the ordered list of servers a message of a second predefined type, indicating that a master server is to be elected, and identifying the server sending said message;
- après une temporisation déterminée : - after a specific time delay:
- si ledit serveur a reçu pendant ladite temporisation un ou des messages du deuxième type en provenance de serveur(s) et que, d’après la liste ordonnée, sa priorité est inférieure à la priorité des serveurs ayant envoyé lesdits messages du deuxième type, il n’est pas le serveur maître élu par ladite opération d’élection ; - if said server received during said delay one or more messages of the second type from server(s) and that, according to the ordered list, its priority is lower than the priority of the servers having sent said messages of the second type, it is not the master server elected by said election operation;
- si ledit serveur n’a reçu pendant ladite temporisation aucun message du deuxième type en provenance de serveur(s) ou s’il en a reçu et que, d’après la liste ordonnée, sa priorité est supérieure à la priorité des serveurs ayant envoyé lesdits messages du deuxième type, il est le serveur maître élu par ladite opération d’élection ; - if said server has not received during said delay any message of the second type from server(s) or if it has received any and that, according to the ordered list, its priority is greater than the priority of the servers having sent said messages of the second type, it is the master server elected by said election operation;
- les nouvelles clefs destinées à remplacer les clefs de session sont générées par le serveur maître au moment de son élection à partir d’une nouvelle graine de génération qu’il génère aléatoirement ; - the new keys intended to replace the session keys are generated by the master server at the time of its election from a new generation seed that it generates randomly;
- la liste ordonnée est une boucle ordonnée, où après le serveur de rang N, on revient sur le serveur de rang 1 ; - the ordered list is an ordered loop, where after the server of rank N, we return to the server of rank 1;
- lors d’une demande de clef de session par un client, ledit client envoie une requête de clef au serveur de rang I dans la liste, en commençant par I = 1 , et en l’absence de réponse revendiquant le statut de serveur maître de la part dudit serveur, incrémente la valeur de i, i = i+1 , et itère ledit envoi de requête ; - un mécanisme de synchronisation entre les serveurs comprend la synchronisation de la liste des serveurs indiquant le serveur maître actuel, aucune synchronisation des clefs distribuées par les serveurs et/ou de la source d’entropie des serveurs ne devant avoir lieu. - during a request for a session key by a client, said client sends a key request to the server of rank I in the list, starting with I = 1, and in the absence of a response claiming the status of master server on the part of said server, increments the value of i, i = i+1, and iterates said request sending; - a synchronization mechanism between the servers includes the synchronization of the list of servers indicating the current master server, no synchronization of the keys distributed by the servers and/or of the entropy source of the servers having to take place.
[0031] Suivant un autre aspect, l’invention décrit un procédé de traitement, mis en œuvre dans un client, pour l’obtention de clefs de session, dans un réseau de télécommunication comportant un ensemble de N serveurs de distribution de clefs de session, N étant strictement supérieur à 1 , des clients comportant des clients de type « publishers » et des clients de type « subscribers », et un module de communication intermédiaire de type « broker », lesdits serveurs, clients et broker étant interconnectés par des liaisons de télécommunication ; selon lequel un client publisher délivre au module broker des informations chiffrées en fonction d’au moins une clef secrète de chiffrement stockée dans le client publisher, au moins un client subscriber associé au client publisher obtient ensuite via le module de communication intermédiaire broker lesdites informations consultables et déchiffre, et/ou vérifie, lesdites informations en fonction d’une clef de déchiffrement associée à ladite clef de chiffrement ; et chaque serveur est adapté pour générer et distribuer des clefs de session aux clients, comprenant les clefs de chiffrement, déchiffrement et /ou signature ; ledit procédé étant caractérisé en ce que, le client ayant stocké une liste ordonnée en vue de l’élection d’un nouveau maître, du rang 1 associé à la priorité maximale au rang N associé à la priorité minimale, des serveurs de l’ensemble de serveurs, ladite liste ordonnée des serveurs indiquant en outre quel est le serveur maître actuel, un seul quelconque des serveurs, à tout instant considéré, ayant le rôle de serveur maître des serveurs, et seul le serveur maître étant autorisé à distribuer des clefs de session aux clients : le client surveille qu’il reçoit selon une périodicité minimale prédéfinie, des messages périodiques d’un premier type prédéfini (heartbeat) en provenance du serveur maître actuel indiqué dans la liste ordonné des serveurs ; et lorsqu’il détecte qu’un message du premier type n’a pas été reçu conformément à ladite périodicité minimale, le client envoie une requête de recherche d’un nouveau serveur maître au serveur de rang n+1 qui suit le serveur maîtreactuel de rang n dans la liste ordonnée des serveurs ; le client reçoit, depuis un nouveau maître serveur, de nouvelles clefs de session pour remplacement des précédentes clefs de session. [0032] Suivant un autre aspect, l’invention décrit un client dans un réseau de télécommunication comportant un ensemble de N serveurs de distribution de clefs de session, N étant strictement supérieur à 1 , des clients comportant des clients de type « publishers » et des clients de type « subscribers », chaque client subscriber étant associé à un client publisher, et un module de communication intermédiaire de type « broker », lesdits serveurs, clients et broker étant adaptés pour être interconnectés par des liaisons de télécommunication ; un client publisher étant adapté pour délivrer au module broker des informations chiffrées en fonction d’au moins une clef secrète de chiffrement stockée dans le client publisher, au moins un client subscriber associé au client publisher étant adapté pour ensuite obtenir, via le module de communication intermédiaire broker, lesdites informations consultables et déchiffrer, et/ou vérifier, lesdites informations en fonction d’une clef de déchiffrement associée à ladite clef de chiffrement ; et chaque serveur est adapté pour générer et distribuer des clefs de session aux clients, comprenant les clefs de chiffrement, déchiffrement et /ou signature ; ledit client étant un dispositif électronique caractérisé en ce que, le client ayant stocké une liste ordonnée en vue de l’élection d’un nouveau maître, du rang 1 associé à la priorité maximale au rang N associé à la priorité minimale, des serveurs de l’ensemble de serveurs, ladite liste ordonnée des serveurs indiquant en outre quel est le serveur maître actuel, un seul quelconque des serveurs, à tout instant considéré, ayant le rôle de serveur maître des serveurs, et seul le serveur maître étant autorisé à distribuer des clefs de session aux clients : le client est adapté pour surveiller qu’il reçoit selon une périodicité minimale prédéfinie, des messages périodiques d’un premier type prédéfini (heartbeat) en provenance du serveur maître actuel indiqué dans la liste ordonné des serveurs ; et le client est adapté pour, lorsqu’il détecte qu’un message du premier type n’a pas été reçu conformément à ladite périodicité minimale, envoyer une requête de recherche d’un nouveau serveur maître au serveur de rang n+1 qui suit le serveur maître actuel de rang n dans la liste ordonnée des serveurs et pour recevoir, depuis un nouveau maître serveur, de nouvelles clefs de session pour remplacement de clefs de session valides précédemment attribuées au client. [0031] According to another aspect, the invention describes a processing method, implemented in a client, for obtaining session keys, in a telecommunications network comprising a set of N session key distribution servers , N being strictly greater than 1, clients comprising clients of the “publishers” type and clients of the “subscribers” type, and an intermediate communication module of the “broker” type, said servers, clients and broker being interconnected by links telecommunications; according to which a publisher client delivers to the broker module encrypted information based on at least one secret encryption key stored in the publisher client, at least one subscriber client associated with the publisher client then obtains said consultable information via the broker intermediate communication module and decrypts, and/or verifies, said information based on a decryption key associated with said encryption key; and each server is adapted to generate and distribute session keys to clients, including encryption, decryption and/or signature keys; said method being characterized in that, the client having stored an ordered list with a view to the election of a new master, from rank 1 associated with the maximum priority to rank N associated with the minimum priority, of the servers of the set of servers, said ordered list of servers further indicating which is the current master server, only any one of the servers, at any time considered, having the role of master server of the servers, and only the master server being authorized to distribute security keys. session to clients: the client monitors that it receives, according to a predefined minimum periodicity, periodic messages of a first predefined type (heartbeat) from the current master server indicated in the ordered list of servers; and when it detects that a message of the first type has not been received in accordance with said minimum periodicity, the client sends a search request for a new master server to the server of rank n+1 which follows the current master server of rank n in the ordered list of servers; the client receives, from a new master server, new session keys to replace the previous session keys. According to another aspect, the invention describes a client in a telecommunications network comprising a set of N session key distribution servers, N being strictly greater than 1, clients comprising clients of the “publishers” type and “subscriber” type clients, each subscriber client being associated with a publisher client, and an intermediate “broker” type communication module, said servers, clients and broker being adapted to be interconnected by telecommunications links; a publisher client being adapted to deliver to the broker module encrypted information as a function of at least one secret encryption key stored in the publisher client, at least one subscriber client associated with the publisher client being adapted to then obtain, via the communication module intermediate broker, said information can be consulted and decrypt, and/or verify, said information according to a decryption key associated with said encryption key; and each server is adapted to generate and distribute session keys to clients, including encryption, decryption and/or signature keys; said client being an electronic device characterized in that, the client having stored an ordered list with a view to the election of a new master, from rank 1 associated with the maximum priority to rank N associated with the minimum priority, servers of the set of servers, said ordered list of servers further indicating which is the current master server, only any one of the servers, at any time considered, having the role of master server of the servers, and only the master server being authorized to distribute session keys to clients: the client is adapted to monitor that it receives, according to a predefined minimum periodicity, periodic messages of a first predefined type (heartbeat) coming from the current master server indicated in the ordered list of servers; and the client is adapted to, when it detects that a message of the first type has not been received in accordance with said minimum periodicity, send a search request for a new master server to the server of rank n+1 which follows the current master server of rank n in the ordered list of servers and to receive, from a new master server, new session keys to replace valid session keys previously assigned to the client.
[0033] Suivant un autre aspect, l’invention décrit un serveur de distribution de clefs de session dans un réseau de télécommunication comportant un ensemble de N serveurs de distribution de clefs de session, N étant strictement supérieur à 1 , des clients comportant des clients de type « publishers » et des clients de type « subscribers », et un module de communication intermédiaire de type « broker », lesdits serveurs, clients et broker étant interconnectés par des liaisons de télécommunication ; selon lequel un client publisher délivre au module broker des informations chiffrées en fonction d’au moins une clef secrète de chiffrement stockée dans le client publisher, au moins un client subscriber associé au client publisher obtient ensuite, via le module de communication intermédiaire broker, lesdites informations consultables et déchiffre, et/ou vérifie, lesdites informations en fonction d’une clef de déchiffrement associée à ladite clef de chiffrement ; et chaque serveur est adapté pour générer et distribuer des clefs de session aux clients, comprenant les clefs de chiffrement, déchiffrement et /ou signature ; ledit serveur étant caractérisé en ce qu’il est adapté pour respecter la règle suivante : un seul quelconque des serveurs, à tout instant considéré, a le rôle de serveur maître des serveurs, et seul le serveur maître est autorisé à distribuer des clefs de session aux clients ; le serveur stockant une liste ordonnée en vue de l’élection d’un nouveau maître, du rang 1 associé à la priorité maximale au rang N associé à la priorité minimale, des serveurs de l’ensemble de serveurs, ladite liste ordonnée des serveurs indiquant en outre quel est le serveur maître actuel, et le serveur stockant une liste des clients auxquels des clefs de session en cours de validité ont été distribuées par le serveur maître actuel et les serveurs maîtres précédents ; le serveur est adapté pour, quand il a le rôle de serveur maître, envoyer aux clients, selon au moins une périodicité minimale prédéfinie, un message périodique d’un premier type prédéfini (heartbeat) ; le serveur est adapté pour, quand il reçoit une requête de recherche d’un nouveau serveur maître depuis un client, déclenche une opération d’élection d’un nouveau serveur maître auprès des serveurs de l’ensemble de serveurs ; le serveur est adapté, s’il est élu le serveur maître par ladite opération d’élection déclencher, dès son élection, auprès des clients de sa liste de clients, un remplacement des clefs de session valides indiquées dans la liste des clients et qui leur ont été attribuées. According to another aspect, the invention describes a session key distribution server in a telecommunications network comprising a set of N session key distribution servers, N being strictly greater than 1, clients comprising clients of type “publishers” and clients of type “subscribers”, and a module of intermediate communication of the “broker” type, said servers, clients and broker being interconnected by telecommunications links; according to which a publisher client delivers to the broker module encrypted information based on at least one secret encryption key stored in the publisher client, at least one subscriber client associated with the publisher client then obtains, via the broker intermediate communication module, said searchable information and decrypts, and/or verifies, said information according to a decryption key associated with said encryption key; and each server is adapted to generate and distribute session keys to clients, including encryption, decryption and/or signature keys; said server being characterized in that it is adapted to respect the following rule: only any one of the servers, at any time considered, has the role of master server of the servers, and only the master server is authorized to distribute session keys to customers ; the server storing an ordered list for the election of a new master, from rank 1 associated with the maximum priority to rank N associated with the minimum priority, of the servers of the set of servers, said ordered list of servers indicating furthermore which is the current master server, and the server storing a list of clients to which valid session keys have been distributed by the current master server and previous master servers; the server is adapted to, when it has the role of master server, send to clients, according to at least a predefined minimum periodicity, a periodic message of a first predefined type (heartbeat); the server is adapted to, when it receives a search request for a new master server from a client, trigger an operation to elect a new master server from the servers of the set of servers; the server is suitable, if it is elected the master server by said election operation trigger, upon its election, with the clients of its list of clients, a replacement of the valid session keys indicated in the list of clients and which to them were assigned.
Brève description des figures : Brief description of the figures:
[0034] L’invention sera mieux comprise et d’autres caractéristiques, détails et avantages apparaîtront mieux à la lecture de la description qui suit, donnée à titre non limitatif, et grâce aux figures annexées, données à titre d’exemple. [0035] [Fig. 1] La figure 1 représente un système de communication de type producteurs d’information-consommateurs d’information dans un mode de réalisation de l’invention ; The invention will be better understood and other characteristics, details and advantages will appear better on reading the description which follows, given on a non-limiting basis, and thanks to the appended figures, given by way of example. [0035] [Fig. 1] Figure 1 represents an information producer-information consumer type communication system in one embodiment of the invention;
[0036] [Fig. 2] La figure 2 représente les étapes de détection d’une panne de serveur SKS ; [0036] [Fig. 2] Figure 2 shows the steps for detecting an SKS server failure;
[0037] [Fig. 3] La figure 3 représente les étapes d’une élection de serveur maître des serveurs SKS ; [0037] [Fig. 3] Figure 3 represents the steps of an election of master server of SKS servers;
[0038] [Fig. 4] La figure 4 est un schéma de l’architecture d’un système mettant en œuvre l’invention dans le domaine ferroviaire ; [0038] [Fig. 4] Figure 4 is a diagram of the architecture of a system implementing the invention in the railway field;
[0039] [Fig. 5] La figure 5 illustre une situation de compromission d’un client dans l’art antérieur. [0039] [Fig. 5] Figure 5 illustrates a situation of compromise of a client in the prior art.
[0040] Des références identiques peuvent être utilisées dans des figures différentes lorsqu’elles désignent des éléments identiques ou comparables. Identical references can be used in different figures when they designate identical or comparable elements.
Description détaillée : Detailed description :
[0041] La figure 1 représente un système de communication de communication résiliente répartie et sécurisée pour l’échange de clefs de session dans un mode de réalisation de l’invention. [0041] Figure 1 represents a distributed and secure resilient communication communication system for the exchange of session keys in one embodiment of the invention.
[0042] Dans le mode de réalisation considéré en référence à la figure 1 , le système de communication 1 comprend un nombre P de dispositifs électroniques clients 2_1, 2_2, ..., 2_P, par exemple des ordinateurs ou des smartphones (P nombre quelconque, supérieur ou égal à 2), un nombre N de serveurs de clefs secrètes (N supérieur ou égal à 2 et dans le cas représenté, N = 3) 1_1, 1_2, ... 1_N, nommés ici serveurs SKS, et un dispositif broker 3, typiquement un ordinateur. [0042] In the embodiment considered with reference to Figure 1, the communication system 1 comprises a number P of client electronic devices 2_1, 2_2, ..., 2_P, for example computers or smartphones (P any number , greater than or equal to 2), a number N of secret key servers (N greater than or equal to 2 and in the case shown, N = 3) 1_1, 1_2, ... 1_N, here called SKS servers, and a device broker 3, typically a computer.
[0043] Des liaisons de télécommunication 4, comprenant par exemple des liaisons sans fil, interconnectent entre eux les serveurs SKS, les clients et le broker, qui sont adaptés pour communiquer via lesdites liaisons 4. Parmi les clients figurent des clients publishers et des clients subscribers et la transmission de messages depuis un publisher vers un ou des subscribers se fait via le broker 3. [0043] Telecommunications links 4, comprising for example wireless links, interconnect the SKS servers, the clients and the broker, which are adapted to communicate via said links 4. Among the clients are publisher clients and clients. subscribers and the transmission of messages from a publisher to one or more subscribers is done via broker 3.
[0044] Un publisher et les subscribers ayant accès aux messages du publisher constituent un groupe ; des clefs de session, propres au groupe (notamment le broker n’obtient pas ces clefs), leur sont distribuées pour le chiffrement par le publisher des messages qu’il envoie au broker et le déchiffrement par les subscribers des messages délivrés par le broker issu du publisher. La clef de chiffrement est par exemple une clef symétrique, ou alors une paire de clefs asymétriques. Le chiffrement est conforme à la norme AES 256 par exemple. [0045] L’architecture est précisée en figure 1 pour le serveur 1_1, et chaque serveur présente la même architecture que celle du serveur 1_1. [0044] A publisher and the subscribers having access to the publisher's messages constitute a group; session keys, specific to the group (in particular the broker does not obtain these keys), are distributed to them for the encryption by the publisher of the messages it sends to the broker and the decryption by the subscribers of the messages delivered by the broker of the publisher. The encryption key is for example a symmetric key, or a pair of asymmetric keys. The encryption complies with the AES 256 standard for example. The architecture is specified in Figure 1 for server 1_1, and each server has the same architecture as that of server 1_1.
[0046] Similairement, l’architecture est précisée en figure 1 pour le client 2_1 , et chaque client présente la même architecture que celle du client 2_1. [0046] Similarly, the architecture is specified in Figure 1 for client 2_1, and each client has the same architecture as that of client 2_1.
[0047] Le mode de réalisation décrit ici est relatif à un système qui intègre l’invention sur la base du protocole OPC UA PUBSUB, mais l’invention peut bien sûr être implémentée en utilisant un autre protocole de communication utilisant le paradigme de communication par groupe (e.g. MQTT). [0047] The embodiment described here relates to a system which integrates the invention on the basis of the OPC UA PUBSUB protocol, but the invention can of course be implemented using another communication protocol using the communication paradigm by group (e.g. MQTT).
[0048] La fonction de distribution de clefs de session est redondée par la présence de N serveurs de clefs. [0048] The session key distribution function is redundant by the presence of N key servers.
[0049] Les serveurs de clefs sont par exemple des serveurs informatiques adressables, via les liaisons de communication 4, depuis tous les points du réseau, et leur adresse réseau est connue de tous les clients présents et futurs. The key servers are for example computer servers addressable, via the communication links 4, from all points of the network, and their network address is known to all present and future clients.
[0050] Chaque serveur de clefs 1_1 , 1_2, ...1_N comprend, outre un calculateur et des moyens de télécommunication via les liaisons 4 : [0050] Each key server 1_1, 1_2, ...1_N comprises, in addition to a calculator and telecommunication means via the links 4:
- un module électronique 13 de génération de clefs, par exemple de type OPC UA PUBSUB côté SKS permettant de (1) générer de nouvelles clefs de session à l’expiration de la durée de vie des précédentes ou à l’issue de l’élection d’un nouveau serveur maître et (2) de transmettre ces clefs aux clients concernés ; ainsi que les quatre modules additionnels mis en œuvre dans un mode de réalisation de l’invention : - an electronic module 13 for generating keys, for example of the OPC UA PUBSUB type on the SKS side making it possible to (1) generate new session keys at the expiration of the life of the previous ones or at the end of the election a new master server and (2) transmit these keys to the clients concerned; as well as the four additional modules implemented in one embodiment of the invention:
- un module électronique 14 d’élection, adapté pour mettre en œuvre les étapes des élections de serveur maître (cf. ci-dessous) ; - an electronic election module 14, adapted to implement the steps of the master server elections (see below);
- un module électronique 15 de signalisation de présence adapté pour envoyer des messages permettant la détection de panne de SKS par les clients de (cf. ci- dessous) ; - an electronic presence signaling module 15 adapted to send messages allowing SKS failure detection by customers (see below);
- un module électronique 16 de renouvellement des clefs, adapté pour mettre en œuvre la distribution des clefs à l’initiative du SKS lors de l’élection en tant que serveur maître du serveur de clefs (cf. ci-dessous) et en outre à l’expiration de la période de validité des clefs qui ont été générées par le serveur de clefs ; - an electronic key renewal module 16, adapted to implement the distribution of keys at the initiative of the SKS during the election as master server of the key server (see below) and in addition to the expiration of the validity period of the keys that were generated by the key server;
- un module électronique 17 d’authentification sécurisée adapté pour mettre en œuvre la sécurisation de l’authentification utilisée dans la distribution de clefs (cf. ci- dessous) ; [0051] Chaque serveur de clefs 1_1 , 1_2, comprend une mémoire stockant : la liste 11 des serveurs 1_1, 1_2, ...1_N ainsi qu’un curseur sur le SKS maître actuel ; dans la liste 11 , les serveurs sont ordonnés selon un ordre de priorité affecté à chacun des serveurs ; ici par exemple la plus grande priorité est affectée au serveur 1_1 et la plus faible priorité au serveur 1_N. L’ordre de priorité est par exemple arbitraire ou fonction de la capacité des serveurs ou de leur position géographique. On notera que l’objectif de la redondance est de permettre d’assurer la résilience, et non la performance - l’invention ne s’applique donc pas à la redondance appliquée pour l’équilibrage de charge ; - an electronic module 17 for secure authentication adapted to implement the security of the authentication used in the distribution of keys (see below); [0051] Each key server 1_1, 1_2, includes a memory storing: the list 11 of servers 1_1, 1_2, ...1_N as well as a cursor on the current master SKS; in list 11, the servers are ordered according to an order of priority assigned to each of the servers; here for example the highest priority is assigned to server 1_1 and the lowest priority to server 1_N. The order of priority is for example arbitrary or a function of the capacity of the servers or their geographical position. Note that the objective of redundancy is to ensure resilience, and not performance - the invention therefore does not apply to redundancy applied for load balancing;
- la liste 12 identifiant les clients, listant pour chaque client du système 1 , notamment son adresse réseau, comme par exemple une adresse IP et un port en TCP/IP ;- list 12 identifying the clients, listing for each client of the system 1, in particular its network address, such as for example an IP address and a TCP/IP port;
- la date d’expiration des clefs que ledit serveur a distribué en association avec l’identifiant des clients destinataires de ces clefs. - the expiration date of the keys that said server has distributed in association with the identifier of the clients receiving these keys.
[0052] Chaque client 2_1 , ..., 2_P, qu’il soit de type publisher ou subscriber, comprend, outre un calculateur et des moyens de télécommunication via les liaisons 4 : [0052] Each client 2_1, ..., 2_P, whether of publisher or subscriber type, comprises, in addition to a calculator and means of telecommunications via links 4:
- un module électronique 22 de publication/abonnement et de gestion des clefs de session reçue d’un SKS (par exemple de type OPC UA PUBSUB côté client, dans un mode de réalisation), - an electronic module 22 for publication/subscription and management of session keys received from an SKS (for example of the OPC UA PUBSUB type on the client side, in one embodiment),
- un module électronique 23 de détection de dysfonctionnement du SKS maître ; - an electronic module 23 for detecting malfunction of the master SKS;
- un module électronique 24 d’authentification sécurisée adapté pour mettre en œuvre la sécurisation de l’authentification utilisée dans la distribution de clefs (cf. ci- dessous). - an electronic module 24 for secure authentication adapted to implement the security of the authentication used in the distribution of keys (see below).
[0053] Chaque client comprend une mémoire stockant la liste 21 des serveurs de clefs 1_1 , ..., 1_N ordonnés selon l’ordre de priorité affecté à chacun des serveurs, ainsi que leur adresse réseau en vue d’effectuer le routage physique des trames, comme par exemple une adresse IP et un port en TCP/IP. [0053] Each client includes a memory storing the list 21 of key servers 1_1, ..., 1_N ordered according to the order of priority assigned to each of the servers, as well as their network address in order to carry out the physical routing of the frames, such as an IP address and a TCP/IP port.
[0054] Chaque serveur de clefs synchronise avec les autres serveurs de clefs et avec tous les clients la liste ordonnée des SKS, ainsi que le curseur sur le SKS maître actuel. Chaque serveur de clefs synchronise avec les autres serveurs de clefs la liste 12 des clients. [0054] Each key server synchronizes with the other key servers and with all the clients the ordered list of SKS, as well as the cursor on the current master SKS. Each key server synchronizes the list of clients with the other key servers.
[0055] La synchronisation entre serveurs de clefs est effectuée de façon laxe : i.e. elle est volontairement limitée à deux éléments : la liste ordonnée des SKS (contenant également un pointeur vers le SKS maître) et la liste des clients. La synchronisation de la liste des SKS est une propriété convergente de l’élection du serveur maître (cf. ci-après). Cette synchronisation est dite laxe car elle exclue un certain nombre de données dont la réplication serait une source de vulnérabilités. En particulier, aucune synchronisation des clefs (ni de leur date d’expiration) distribuées par les serveurs aux clients n’est effectuée entre les serveurs de clefs, pas plus que de la source d’entropie (mécanisme et graine). [0055] Synchronization between key servers is carried out in a loose manner: ie it is deliberately limited to two elements: the ordered list of SKS (also containing a pointer to the master SKS) and the list of clients. The synchronization of the SKS list is a convergent property of the election of the master server (see below). This synchronization is called laxis because it excludes a certain number of data including replication would be a source of vulnerabilities. In particular, no synchronization of the keys (nor their expiration date) distributed by the servers to the clients is carried out between the key servers, nor of the entropy source (mechanism and seed).
[0056] Dans un mode de réalisation, les modules électroniques dans les clients, respectivement les serveurs sont réalisés sous forme de modules logiciels comprenant des instructions logicielles qui lorsqu’elles sont exécutées sur un calculateur du client, respectivement du serveur, mettent en œuvre les étapes décrites ci-dessous et incombant au client, respectivement au serveur. [0056] In one embodiment, the electronic modules in the clients, respectively the servers, are produced in the form of software modules comprising software instructions which, when executed on a computer of the client, respectively of the server, implement the steps described below and incumbent on the client, respectively the server.
[0057] Chaque serveur de clefs 1_1 , 1_2, ...1_N est adapté pour fonctionner en serveur maître ou en serveur esclave selon qu’il est le dernier élu serveur maître ou non. [0057] Each key server 1_1, 1_2, ...1_N is adapted to operate as a master server or as a slave server depending on whether it is the last elected master server or not.
[0058] Si et seulement si un serveur de clef est le serveur maître, alors son module électronique 15 de signalisation de présence envoie à chaque client, à l’adresse réseau indiquée dans la liste clients 12, un message d’un premier type, nommé ici message « heartbeat », à intervalles réguliers, selon une période prédéfinie ou un profil cyclique défini et connu des clients. L’objectif de ce message est de signifier le fait que le SKS émetteur est opérationnel. [0058] If and only if a key server is the master server, then its electronic presence signaling module 15 sends to each client, at the network address indicated in the client list 12, a message of a first type, called here “heartbeat” message, at regular intervals, according to a predefined period or a cyclical profile defined and known to customers. The objective of this message is to indicate that the transmitting SKS is operational.
[0059] Le module de détection de dysfonctionnement 23 dans chaque client 2_1 , ..., 2_P, surveille qu’il reçoit, selon ladite périodicité prédéfinie, les messages heartbeat en provenance du serveur maître actuel tel indiqué par le curseur dans la liste ordonné des serveurs 21 ; et lorsqu’il détecte que le message heartbeat n’a pas été reçu conformément à ladite périodicité prédéfinie (ou dans des modes de réalisation, que le nombre de messages non reçus selon cette périodicité est supérieur à un seuil fixé, supérieur ou égal à 2), le module de détection 23 du client détecte un dysfonctionnement et envoie une requête de recherche (message de type Master Request) d’un nouveau serveur maître au serveur de rang n+1 qui suit le serveur maître actuel (de rang n dans la liste) dans la liste ordonnée des serveurs. [0059] The malfunction detection module 23 in each client 2_1, ..., 2_P, monitors that it receives, according to said predefined periodicity, the heartbeat messages coming from the current master server as indicated by the cursor in the ordered list servers 21; and when it detects that the heartbeat message has not been received in accordance with said predefined periodicity (or in embodiments, that the number of messages not received according to this periodicity is greater than a fixed threshold, greater than or equal to 2 ), the detection module 23 of the client detects a malfunction and sends a search request (Master Request type message) from a new master server to the server of rank n+1 which follows the current master server (of rank n in the list) in the ordered list of servers.
[0060] Le message de type heartbeat est, dans le cas considéré, par exemple paramétré par renewal, qui définit le nombre de messages manqués déclenchant un changement de serveur de clef, et period, qui définit la périodicité de l’envoi du heartbeat. Cette valeur de périodicité est typiquement la durée maximale pendant laquelle des pertes de messages sont acceptables du point de vue opérationnel, divisée par renewal. The heartbeat type message is, in the case considered, for example parameterized by renewal, which defines the number of missed messages triggering a change of key server, and period, which defines the frequency of sending the heartbeat. This periodicity value is typically the maximum duration during which message losses are operationally acceptable, divided by renewal.
[0061] La figure 2 illustre le déroulé de ces précédentes étapes mises en œuvre dans une situation de détection de de panne du serveur SKS maître par un client (ici publisher). [0062] Chaque module 14 d’élection de chaque serveur de clef, à l’exclusion du serveur maître précédent, dès réception par ledit serveur de clefs d’un message de type Master Request envoyé par un client 2_i, I = 1 à P, envoie à tous les autres serveurs de la liste 11 des serveurs un message requérant une élection, nommé ici message Master Claim, avec l’identifiant du serveur. Il attend un temps prédéfini (délai nommé timeout égal au minimum deux fois la latence du message en prenant comme référence l’envoi de son propre Master Claim). Il peut recevoir pendant cette période un ou des messages Master Claim venant d’autres serveurs de clef. A la fin de l’attente : [0061] Figure 2 illustrates the sequence of these previous steps implemented in a situation of detection of failure of the master SKS server by a client (here publisher). [0062] Each module 14 for election of each key server, excluding the previous master server, upon receipt by said key server of a Master Request type message sent by a client 2_i, I = 1 to P , sends to all the other servers in list 11 of servers a message requesting an election, here called Master Claim message, with the server identifier. It waits a predefined time (delay called timeout equal to at least twice the latency of the message, taking the sending of its own Master Claim as a reference). During this period, it may receive one or more Master Claim messages from other key servers. At the end of the wait:
- si la priorité du serveur de clef auquel appartient le module d’élection 14 est inférieure à celles d’autres Master Claim reçus, il se considère comme serveur esclave, et ne répond pas au client ; - if the priority of the key server to which the election module 14 belongs is lower than those of other Master Claims received, it considers itself a slave server, and does not respond to the client;
- dans le cas contraire, c’est-à-dire s’il n’a reçu aucun message Master Claim, le serveur devient le serveur de clef maître courant, il génère alors de nouvelles clefs de session et le module 16 de renouvellement des clefs du serveur de clef répond au client l’ayant sollicité par le message Master Request par un SetSecurityKey (avec un renouvellement de clef immédiat quelle que soit la date d’expiration de sa clef) et plus globalement à chaque client de sa liste de clients. - in the opposite case, that is to say if it has not received any Master Claim message, the server becomes the current master key server, it then generates new session keys and the module 16 for renewing the keys of the key server responds to the client having requested it by the Master Request message with a SetSecurityKey (with immediate key renewal regardless of the expiration date of its key) and more generally to each client in its client list .
Il met en outre à jour le curseur dans sa liste des serveurs 11 et par synchronisation, la liste des serveurs dans les autres serveurs et dans les clients est mise à jour également. It further updates the cursor in its list of servers 11 and by synchronization, the list of servers in the other servers and in the clients is updated as well.
[0063] SetSecurityKey est un ensemble d’échanges protocolaires initié par un SKS et à destination d’un client, et a pour fonction d’envoyer de nouvelles clefs de session au client. Ces échanges incluent l’authentification réciproque des interlocuteurs, la création d’un canal sécurisé entre ceux-ci et la transmission des clefs de session dans ce canal. Une solution d’implémentation possible et efficace serait d’utiliser la fonction homonyme définie dans OPC UA PUBSUB. [0063] SetSecurityKey is a set of protocol exchanges initiated by an SKS and intended for a client, and has the function of sending new session keys to the client. These exchanges include the mutual authentication of the interlocutors, the creation of a secure channel between them and the transmission of session keys in this channel. A possible and effective implementation solution would be to use the homonymous function defined in OPC UA PUBSUB.
[0064] La figure 3 illustre une élection de serveur SKS maître dans le système 1, après un dysfonctionnement détecté par exemple comme illustré en figure 2, avec N=3. Dans le scénario illustré, un client Publisher 2_i (I e 1 ,..., Q, Q<P) a détecté une défaillance du serveur alors maître (ici le serveur 1_1) ; il envoie comme décrit précédemment un message Master Request au serveur esclave 1_2. Le serveur esclave 1_2 émet un message Master Claim à destination de chacun des serveurs 1_1 et 1_3. Ici seul le serveur esclave 1_2 a reçu un Master Request d’un client. Il est donc le seul à émettre une Master Claim. Il procède donc à l’envoi d’un SetSecurityKey après expiration du timeout à destination du client 2_i. [0065] Dans un mode de réalisation, si le client n’a pas eu de retour (message SetSecurityKey) après l’expiration d’un délai prédéfini (typiquement égale à timeout fois deux) suite à l’envoi de son message Master Request, le client envoie alors un message Master Request au serveur suivant dans sa liste, et ainsi de suite. Une fois le Nième serveur, le serveur 1_N, de la liste des serveurs atteint, le client reboucle sur le premier serveur 1_1 , en incrémentant la durée entre chaque cycle, jusqu’à obtenir une réponse. Un mécanisme extérieur au serveur maître exclu permet de s’assurer de sa non-compromission avant de le réintroduire dans la liste des serveurs SKS éligibles à la position de serveur maître. [0064] Figure 3 illustrates an election of master SKS server in system 1, after a malfunction detected for example as illustrated in Figure 2, with N=3. In the illustrated scenario, a Publisher 2_i client (I e 1,..., Q, Q<P) detected a failure of the then master server (here server 1_1); as described previously, it sends a Master Request message to slave server 1_2. Slave server 1_2 sends a Master Claim message to each of servers 1_1 and 1_3. Here only slave server 1_2 received a Master Request from a client. He is therefore the only one to issue a Master Claim. It therefore proceeds to send a SetSecurityKey after expiry of the timeout to client 2_i. [0065] In one embodiment, if the client has not received any feedback (SetSecurityKey message) after the expiration of a predefined period (typically equal to timeout times two) following the sending of its Master Request message , the client then sends a Master Request message to the next server in its list, and so on. Once the Nth server, server 1_N, in the list of servers has been reached, the client loops back to the first server 1_1, incrementing the duration between each cycle, until obtaining a response. A mechanism external to the excluded master server ensures that it is not compromised before reintroducing it into the list of SKS servers eligible for the position of master server.
[0066] La redondance est dite cyclique car, après épuisement de la liste des serveurs de clef (par défaillance de la totalité d’entre eux) sans réception d’un message indiquant la prise en compte de sa requête, le client va repartir sur le premier serveur, et ainsi de suite, jusqu’à ce qu’un des serveurs de clefs réponde finalement. [0066] Redundancy is called cyclic because, after exhausting the list of key servers (by failure of all of them) without receiving a message indicating that its request has been taken into account, the client will return to the first server, and so on, until one of the key servers finally responds.
[0067] La redondance est dite adaptable car un nombre arbitraire N de serveurs peut être provisionné, en fonction des besoins du système en termes de disponibilité. [0067] Redundancy is said to be adaptable because an arbitrary number N of servers can be provisioned, depending on the needs of the system in terms of availability.
[0068] Le risque 3 mentionné plus haut est évité, puisque le serveur de clefs est redondé sans limites théoriques. Les clefs de session éventuellement compromises ne le seront que pendant une durée maximale égale à period fois renewal (plus le temps d’élection du serveur maître, très généralement extrêmement court). [0068] Risk 3 mentioned above is avoided, since the key server is redundant without theoretical limits. Any session keys that may be compromised will only be compromised for a maximum duration equal to period times renewal (plus the master server election time, which is very generally extremely short).
[0069] On notera que la transmission des clefs de session est effectuée selon le standard OPC UA PUBSUB, dans le mode de réalisation considéré et donc selon les étapes suivantes : [0069] It will be noted that the transmission of the session keys is carried out according to the OPC UA PUBSUB standard, in the embodiment considered and therefore according to the following steps:
1 . Envoi par le client 2_i (i e 1 ,..., P) de ses certificats (contenant en particulier leur clef publique de chiffrement) au serveur SKS maître 1_n (n e 1 ,..., N); 1. Sending by the client 2_i (i e 1,..., P) of its certificates (containing in particular their public encryption key) to the master SKS server 1_n (n e 1,..., N);
2. Vérification du certificat par le serveur SKS maître (signature par une autorité légitime et date d’expiration) ; 2. Verification of the certificate by the master SKS server (signature by a legitimate authority and expiration date);
3. Réponse du serveur SKS par l’envoi d’un message non prévisible chiffré avec la clef publique du client (challenge); 3. Response from the SKS server by sending an unpredictable message encrypted with the client's public key (challenge);
4. Déchiffrement par le client du challenge en utilisant sa propre clef privée ; 4. Decryption by the client of the challenge using its own private key;
5. Réponse du client au challenge par un message contenant le même texte, chiffré avec la clef publique du SKS ; 5. Client response to the challenge with a message containing the same text, encrypted with the SKS public key;
6. Déchiffrement par le SKS du message reçu du client (réponse au challenge) ; 6. Decryption by the SKS of the message received from the client (response to the challenge);
7. Calcul par le client d’une clef secrète temporaire SK1 utilisant la clef publique du SKS et sa clef privée ; 8. Calcul par le SKS d’une clef secrète temporaire SK2 utilisant la clef publique du client et sa clef privée (par construction SK1 = SK2); 7. Calculation by the client of a temporary secret key SK1 using the public key of the SKS and its private key; 8. Calculation by the SKS of a temporary secret key SK2 using the client's public key and its private key (by construction SK1 = SK2);
9. Envoi par le SKS de la clef de session (ou clef de groupe) chiffrée avec SK2 par le SKS ; 9. Sending by the SKS of the session key (or group key) encrypted with SK2 by the SKS;
10. Déchiffrement par le client de la clef de session avec SK1 . 10. Decryption by the client of the session key with SK1.
[0070] Dans un mode de réalisation de l’invention, la conservation des clefs privées est effectuée, pour chaque interlocuteur (Client et SKS), dans des « Secure Elements » (SE) présents dans leurs hôtes respectifs, par exemple suivant le standard TPM2 (https://trustedcomputinggroup.org/resource/tpm-library-specification/), ou le Embedded Secure Element de Gemalto (https://www.thalesgroup.com/en/markets/digital-identity-and- security/mobile/secure-elements/embedded-secure-element). [0070] In one embodiment of the invention, the conservation of private keys is carried out, for each interlocutor (Client and SKS), in “Secure Elements” (SE) present in their respective hosts, for example according to the standard TPM2 (https://trustedcomputinggroup.org/resource/tpm-library-specification/), or the Embedded Secure Element from Gemalto (https://www.thalesgroup.com/en/markets/digital-identity-and-security/ mobile/secure-elements/embedded-secure-element).
Dans ce mode de réalisation, l’échange des clefs de session est sécurisé en ajoutant les étapes suivantes : In this embodiment, the exchange of session keys is secured by adding the following steps:
En phase de provisionnement : In the provisioning phase:
- La clef privée de chaque client est conservée dans un « Secure Element » (SE) ;- The private key of each client is kept in a “Secure Element” (SE);
- Le certificat du client est généré (signature cryptographique) par le SE sans que la clef privée soit extraite de celui-ci ; - The client's certificate is generated (cryptographic signature) by the OS without the private key being extracted from it;
- La clef privée de chaque SKS est conservée dans le SE présent dans son hôte ;- The private key of each SKS is kept in the OS present in its host;
- Le certificat du SKS est également généré en utilisant le SE. - The SKS certificate is also generated using the OS.
En phase opérationnelle (distribution de clef) : In the operational phase (key distribution):
- Le déchiffrement du challenge SKS (phase 4) est effectué dans le SE du Client ;- The decryption of the SKS challenge (phase 4) is carried out in the Client's OS;
- Le déchiffrement de la réponse au challenge par le Client (phase 6) est effectué dans le SE du SKS ; - The decryption of the response to the challenge by the Client (phase 6) is carried out in the SKS OS;
- Le calcul de la clef secrète temporaire SK1 (étape 7) est effectué par le SE du client ;- The calculation of the temporary secret key SK1 (step 7) is carried out by the client's OS;
- Le calcul de la clef secrète temporaire SK2 (étape 8) est effectué par le SE du SKS ;- The calculation of the temporary secret key SK2 (step 8) is carried out by the SE of the SKS;
Comme les clefs privées ne quittent jamais le SKS (ou le client), et grâce aux propriétés de non-lisibilité du SE, un accès physique à la machine ne permet pas simplement de les obtenir, et il n’est donc pas possible à un attaquant ne disposant pas de moyens très conséquents de compromettre l’intégrité ou la confidentialité du système en insérant un nœud illégitime. As the private keys never leave the SKS (or the client), and thanks to the non-readable properties of the OS, physical access to the machine does not simply allow them to be obtained, and it is therefore not possible for a attacker who does not have very substantial means of compromising the integrity or confidentiality of the system by inserting an illegitimate node.
[0071] A l’issue de ces étapes de transmission de clef entre un publisher et un SKS implémentant ces principes, le publisher a reçu une clef de session chiffrée, ainsi que la clef temporaire (SK1) qui permet de déchiffrer cette clef secrète. A aucun moment la clef de session n’a été transmise en clair, et une clef privée légitime (signée par une autorité de certification connue du SKS) est nécessaire pour calculer une clef temporaire. Un attaquant n’a aucun moyen simple d’obtenir une clef privée légitime, puisque celles-ci sont protégées par des SE. [0071] At the end of these key transmission steps between a publisher and an SKS implementing these principles, the publisher received an encrypted session key, as well as the key temporary (SK1) which allows this secret key to be decrypted. At no time was the session key transmitted in the clear, and a legitimate private key (signed by a certification authority known to the SKS) is necessary to calculate a temporary key. An attacker has no easy way to obtain a legitimate private key, since these are protected by SEs.
[0072] Lors d’une demande de clef initiale, un client essaye tous les serveurs de clef (dans l’ordre de priorité décroissant de la liste, du rang 1 au rang N) jusqu’à en trouver un qui réponde. Il établit alors une connexion sécurisée et reçoit les clefs de session. A la différence de ce qui se passe dans la version actuelle du protocole OPC UA PUBSUB, le serveur de clef associe au nouveau client ses identifiants réseau (au format dépendant du protocole utilisé, e.g. adresse IP et port d’écoute en IP). Cette association peut être implémentée dans un tableau indexé par l’identifiant du client. [0072] During an initial key request, a client tries all the key servers (in decreasing order of priority in the list, from rank 1 to rank N) until finding one that responds. It then establishes a secure connection and receives the session keys. Unlike what happens in the current version of the OPC UA PUBSUB protocol, the key server associates its network identifiers with the new client (in a format depending on the protocol used, e.g. IP address and IP listening port). This association can be implemented in a table indexed by the client identifier.
[0073] En cas de clef expirée, le renouvellement de clef dans un mode de réalisation de l’invention est imposé par le serveur de clef maître et non par les clients individuellement. A l’expiration de la clef, le serveur de clef maître et pas les serveurs esclaves, exploite sa Client List pour diffuser un message SetSecurityKey affectant les nouvelles clefs dans tous les clients connus. Un décalage entre les assignations de clefs aux clients est toujours possible à cause des aléas du routage, mais celui-ci sera beaucoup moins grand que celui lié à une source de temps défaillante. Le risque 2 est donc mitigé. Dans cette opération de renouvellement, le SKS fournit également son propre identifiant aux clients. [0073] In the event of an expired key, key renewal in one embodiment of the invention is imposed by the master key server and not by the clients individually. When the key expires, the master key server and not the slave servers, uses its Client List to broadcast a SetSecurityKey message affecting the new keys in all known clients. A gap between key assignments to clients is always possible due to routing hazards, but this will be much smaller than that linked to a faulty time source. Risk 2 is therefore mixed. In this renewal operation, the SKS also provides its own identifier to customers.
[0074] On notera que les clefs de session distribuées par les serveurs de clefs selon l’invention peuvent comporter d’autres clefs que celles de chiffrement ou de déchiffrement (différentes dans le cas de chiffrement asymétriques), par exemple clefs de signature utilisées, ou date d’expiration de ces clefs. [0074] It will be noted that the session keys distributed by the key servers according to the invention may include keys other than those for encryption or decryption (different in the case of asymmetric encryption), for example signature keys used, or expiration date of these keys.
[0075] Cette solution traite ou mitige les risques évoqués dans la distribution de clef OPC UA PUBSUB et plus généralement dans les paradigmes de communication par groupe ; elle propose des mécanismes pour assurer la résilience sécurisée de la distribution et de l’usage des clefs de session par synchronisation laxe dans les paradigmes de communication de type producteurs-consommateurs tout en apportant les bénéfices suivants : [0075] This solution addresses or mitigates the risks mentioned in the OPC UA PUBSUB key distribution and more generally in group communication paradigms; it proposes mechanisms to ensure the secure resilience of the distribution and use of session keys by lax synchronization in producer-consumer type communication paradigms while providing the following benefits:
- disponibilité des communications : la défaillance d’un serveur hébergeant le service de clef sécurisé (SKS) n’a qu’un impact minimal et limité dans le temps sur la capacité à communiquer de façon sécurisée (chiffrée et signée). - availability of communications: the failure of a server hosting the secure key service (SKS) has only a minimal and time-limited impact on the ability to communicate securely (encrypted and signed).
- intégrité de la clef secrète : une clef secrète potentiellement compromise fait l’objet d’une utilisation minimale par les producteurs et consommateurs du groupe associé à cette clef. - sécurité des communications : les communications sont mieux protégées contre les attaques en confidentialité ou en intégrité grâce à la garantie supplémentaire concernant l’intégrité de la clef secrète. - integrity of the secret key: a potentially compromised secret key is subject to minimal use by the producers and consumers of the group associated with this key. - communications security: communications are better protected against confidentiality or integrity attacks thanks to the additional guarantee concerning the integrity of the secret key.
- faible impact sur les performances : l’impact sur les performances est minimal en termes de débit réseau (entre les serveurs de clefs, ou entre les serveurs de clefs et les clients), temps de calcul (dans les serveurs de clef ou dans les clients), latence (pour la réception d’une clef valide par un client) et empreinte mémoire (sur les serveurs de clef). - low impact on performance: the impact on performance is minimal in terms of network throughput (between the key servers, or between the key servers and the clients), calculation time (in the key servers or in the clients), latency (for receipt of a valid key by a client) and memory footprint (on key servers).
[0076] Il est étudié ci-après comment l’invention permet d’adresser les trois risques indiqués relativement à l’art antérieur. [0076] It is studied below how the invention makes it possible to address the three risks indicated in relation to the prior art.
[0077] Résolution du Risque 1 : Compromission du client [0077] Resolution of Risk 1: Customer compromise
[0078] En cas de compromission d’un client, les clefs compromises ne sont que les dernières clefs distribuées par le serveur de clef. La solution, dans le mode de réalisation où il n’est envoyé que des clefs uniques (taille du jeu = 1) et non des listes de clefs, permet de réduire la durée de compromission des échanges. [0078] In the event of compromise of a client, the compromised keys are only the last keys distributed by the key server. The solution, in the embodiment where only unique keys are sent (set size = 1) and not lists of keys, makes it possible to reduce the duration of compromised exchanges.
[0079] Pour ce qui relève de la compromission de la distribution des clefs, le fait qu’une réception de clef implique un échange sécurisé par un SE empêche strictement la réplication (ou clonage) du certificat du client. De plus, l’accès à l’élément physique étant protégé, elle rend plus difficile le fait de d’obtenir une nouvelle clef valide du service de clef. [0079] As far as the compromise of key distribution is concerned, the fact that a key reception implies a secure exchange by an SE strictly prevents the replication (or cloning) of the client's certificate. In addition, because access to the physical element is protected, it makes it more difficult to obtain a new valid key from the key service.
[0080] Résolution du Risque 2 : Disponibilité au renouvellement [0080] Resolution of Risk 2: Availability for renewal
[0081] Du fait de la redondance des serveurs de clefs, la résilience du serveur de clef permet d’assurer la disponibilité du service de distribution des clefs même en cas de défaillance (accidentelle ou malveillante) d’un serveur de clef. [0081] Due to the redundancy of the key servers, the resilience of the key server makes it possible to ensure the availability of the key distribution service even in the event of failure (accidental or malicious) of a key server.
[0082] L’invention permet de déployer les serveurs de clefs sur des architectures hétérogènes (différentes bibliothèques logicielles, systèmes d’exploitation et/ou architectures matérielles). De cette façon, une protection est apportée contre des vulnérabilités non encore découvertes (0-day) qui seraient présentes dans ces éléments, du moins si elles sont utilisées en vue d’obtenir un déni de service (DoS). [0082] The invention makes it possible to deploy key servers on heterogeneous architectures (different software libraries, operating systems and/or hardware architectures). In this way, protection is provided against not yet discovered vulnerabilities (0-day) which would be present in these elements, at least if they are used to obtain a denial of service (DoS).
[0083] Résolution du Risque 3 : Compromission d’un serveur de clef [0083] Resolution of Risk 3: Compromise of a key server
[0084] Le mécanisme de synchronisation laxe proposé permet d’assurer que, en cas de compromission détectable d’un serveur (c’est-à-dire impliquant une interruption du service), les clefs présentes sur le serveur compromis sont très rapidement invalidées, et une nouvelle graine de génération est générée aléatoirement par un autre serveur de clef, avant d’être utilisée pour générer une nouvelle clef (et les clefs suivantes générées par ce serveur) qui sera ensuite diffusée aux clients. L’exposition des données est limitée dans le temps et calculable. On suppose l’existence de moyens de génération aléatoire possédant une entropie satisfaisante sur chaque SKS. [0084] The proposed lax synchronization mechanism ensures that, in the event of a detectable compromise of a server (i.e. involving an interruption of service), the keys present on the compromised server are very quickly invalidated. , and an new generation seed is randomly generated by another key server, before being used to generate a new key (and subsequent keys generated by this server) which will then be broadcast to clients. Data exposure is time-limited and calculable. We assume the existence of random generation means having a satisfactory entropy on each SKS.
[0085] A titre d’illustration, il est maintenant présenté la mise en œuvre de l’invention dans le cas d’une application type big data pour la maintenance prédictive dans le domaine ferroviaire. Cette application exploite des données remontées de capteurs pour obtenir un état en temps réel souple de l’état d’équipements de voies ferroviaires (rails, caténaires, etc.). L’opérateur ferroviaire souhaite sécuriser les communications sur le réseau public, y compris entre la passerelle sécurisée et le réseau APN (Access Public Network) fourni par un opérateur télécom. [0085] By way of illustration, the implementation of the invention is now presented in the case of a big data type application for predictive maintenance in the railway sector. This application uses data reported from sensors to obtain a flexible real-time status of the state of railway track equipment (rails, catenaries, etc.). The railway operator wishes to secure communications on the public network, including between the secure gateway and the APN (Access Public Network) network provided by a telecom operator.
[0086] Un protocole de communication sécurisée producteur-consommateur mettant en œuvre l’invention, comme représenté schématiquement en figure 4, est implémenté dans ce système, pour apporter la sécurité tout en maintenant la disponibilité des informations. Dans le mode de réalisation considéré, il est créé une extension du protocole OPC UA PUBSUB pour implémenter l’invention. [0086] A secure producer-consumer communication protocol implementing the invention, as shown schematically in Figure 4, is implemented in this system, to provide security while maintaining the availability of information. In the embodiment considered, an extension of the OPC UA PUBSUB protocol is created to implement the invention.
[0087] Le mode de réalisation de l’invention décrit ci-dessus dans le cas particulier dans le cas d’un système implémentant la norme OPC UA PUBSUB comprend l’utilisation des échanges protocolaires suivants : [0087] The embodiment of the invention described above in the particular case in the case of a system implementing the OPC UA PUBSUB standard includes the use of the following protocol exchanges:
GetSecurityKey : non modifié par rapport à la norme OPC-UA PUBSUB. GetSecurityKey: not modified from the OPC-UA PUBSUB standard.
SetSecurityKey : modifié par rapport à la norme OPC-UA PUBSUB. Ajout de l’identifiant du serveur SKS maître aux informations envoyées au client. SetSecurityKey: modified from the OPC-UA PUBSUB standard. Added master SKS server ID to information sent to client.
HeartBeat : nouveau. Informe un client de la disponibilité du SKS maitre. Paramètres : renewal, period. HeartBeat: new. Informs a client of the availability of the master SKS. Parameters: renewal, period.
Master Claim : nouveau. Informe un SKS de la candidature d’un autre SKS à l’élection du maître. Paramètres : identifiant, priorité. Master Claim: new. Informs an SKS of the candidacy of another SKS for the election of the master. Parameters: identifier, priority.
Master Request : nouveau. Informe un SKS d’une demande de nouveau serveur maître par un client. Paramètres : identifiant. Master Request: new. Informs an SKS of a request for a new master server by a client. Parameters: identifier.
[0088] Une autre variante serait de l’implémenter au travers d’une nouvelle couche de protocole de communication sécurisée qui serait située au-dessus du protocole OPC UA PUBSUB. Cette variante est une solution qui limite l’effort de développement, et permet à la fois de pouvoir profiter du protocole OPC UA et d’être indépendant de OPC UA de manière à ce que notre invention puisse être utilisée au-dessus de n’importe quel autre protocole de communication de producteur-consommateur. [0089] Dans le cas considéré, trois serveurs de clefs tels que décrits plus haut sont instanciés, avec renouvellement clef effectué quotidiennement à 4 heures du matin. 500 instances de capteurs connectés (producteurs) ont été déployées, relevant la tension physique des caténaires. Deux consommateurs ont été déployés : un pour le centre de visualisation et d’analyse, et un pour le centre de commandement. D’autres producteurs et consommateurs pourrons être ajoutés durant le cycle de vie du système (par exemple pour une supervision par les autorités civiles), conformément à la nature dynamique des architectures couvertes par l’invention. [0088] Another variant would be to implement it through a new layer of secure communication protocol which would be located above the OPC UA PUBSUB protocol. This variant is a solution which limits the development effort, and allows both to benefit from the OPC UA protocol and to be independent of OPC UA so that our invention can be used on top of any what other producer-consumer communication protocol. [0089] In the case considered, three key servers as described above are instantiated, with key renewal carried out daily at 4 a.m. 500 instances of connected sensors (producers) were deployed, measuring the physical tension of the catenaries. Two consumers were deployed: one for the visualization and analysis center, and one for the command center. Other producers and consumers may be added during the life cycle of the system (for example for supervision by civil authorities), in accordance with the dynamic nature of the architectures covered by the invention.
[0090] Les paramétrages sont par exemple les suivants : Heartbeat : 1 minute ; Renewal : 3 messages Heartbeat manquants ; Timeout : 30 secondes. [0090] The settings are for example as follows: Heartbeat: 1 minute; Renewal: 3 Heartbeat messages missing; Timeout: 30 seconds.
[0091] Par ailleurs la latence d’une communication client-SKS est estimée (après mesures opérationnelles) de l’ordre de 1 seconde, et la disponibilité d’un serveur est estimée à 99 %. [0091] Furthermore, the latency of a client-SKS communication is estimated (after operational measurements) to be around 1 second, and the availability of a server is estimated at 99%.
[0092] Le SKS n’envoie pas de jeu de clefs, mais uniquement des clefs individuelles. Le risque 1 est ainsi mitigé. Le coût de cette mesure est celui d’une connexion sécurisée (en termes de débit réseau), avec une périodicité étant égale à la durée de vie de la clef (date d’expiration moins date de création). Cette mesure n’est faisable que si la bande passante pendant la durée de vie cryptographique de la clef symétrique est supérieure au coût de cette connexion. Ceci est valable dans la grande majorité des cas, et en particulier dans le cas d’étude proposé. [0092] The SKS does not send a set of keys, but only individual keys. Risk 1 is thus mitigated. The cost of this measure is that of a secure connection (in terms of network throughput), with a periodicity equal to the lifespan of the key (expiration date minus creation date). This measure is only feasible if the bandwidth during the cryptographic lifetime of the symmetric key is greater than the cost of this connection. This is valid in the vast majority of cases, and in particular in the proposed case study.
[0093] Ainsi, par la mise en œuvre de l’invention, le seul cas de non-disponibilité durable du SKS est la défaillance collective de la totalité des serveurs de clefs (soit un taux de disponibilité du service de 99,9999%). Pour un client, le pire temps d’attente pour recevoir une clef suite à une demande sera égal à 32 secondes (timeout de l’élection du SKS plus deux fois la latence d’une communication SKS-client). Le temps maximal d’utilisation d’une clef potentiellement invalide (i.e. clef provenant d’un serveur de clef défaillant) sera de 3 minutes. [0093] Thus, by implementing the invention, the only case of lasting non-availability of the SKS is the collective failure of all the key servers (i.e. a service availability rate of 99.9999%). . For a client, the worst waiting time to receive a key following a request will be equal to 32 seconds (SKS election timeout plus twice the latency of SKS-client communication). The maximum time for using a potentially invalid key (i.e. key coming from a faulty key server) will be 3 minutes.
[0094] En résumé, l’invention comprend les éléments suivants (ou au moins certains des éléments selon les modes de réalisation) : [0094] In summary, the invention comprises the following elements (or at least some of the elements according to the embodiments):
- résilience du service de distribution des clefs par utilisation de mécanismes permettant la mise en œuvre d’une redondance cyclique configurable du serveur de clef ; - synchronisation laxe entre les serveurs de clef (on entend par « laxe » - correspondant au sens du terme anglais « loose » -, le fait que certaines informations ne sont pas synchronisés entre serveurs de clefs comme décrit plus haut) ; - resilience of the key distribution service by using mechanisms allowing the implementation of configurable cyclical redundancy of the key server; - loose synchronization between the key servers (we mean by “loose” – corresponding to the meaning of the English term “loose” – the fact that certain information is not synchronized between key servers as described above);
- détection de panne dans les serveurs de clef par les clients ; - failure detection in key servers by clients;
- élection d’un serveur de clef maître ; - election of a master key server;
- transmission sécurisée des clefs, renforcée par l’utilisation d’un SE ; - secure transmission of keys, reinforced by the use of an OS;
- implémentation par exemple en créant une extension sécurisée du protocole OPC UA PUBSUB ou de autre protocole de communication de producteur-consommateur. - implementation for example by creating a secure extension of the OPC UA PUBSUB protocol or other producer-consumer communication protocol.
[0095] Cette invention est particulièrement utile dans les domaines industriels critiques basés sur un ensemble de calculateurs ou éléments de calcul distribuées voir géodistribuées supportant l’environnement client-serveur et possédant un système de communication par échange de messages de type producteur-consommateur avec présence d’un agent médiateur entre émetteurs et récepteurs (« broker ») exigeant un haut niveau de Cyber-sécurité. Elle permet d’augmenter la confidentialité, l’intégrité et la disponibilité des communications entre les différents composants du système industriel capteurs, calculateurs et actionneurs, de bout en bout (de l’application émettrice à l’application réceptrice) tout en ayant un faible impact sur les performances. [0095] This invention is particularly useful in critical industrial fields based on a set of distributed or even geodistributed calculators or calculation elements supporting the client-server environment and having a communication system by exchange of producer-consumer type messages with presence of a mediating agent between transmitters and receivers (“broker”) requiring a high level of Cybersecurity. It makes it possible to increase the confidentiality, integrity and availability of communications between the different components of the industrial system sensors, computers and actuators, from end to end (from the transmitting application to the receiving application) while having a low impact on performance.
[0096] Les domaines industriels susceptibles de déployer notre invention pour sécuriser leurs systèmes de communication comportent notamment tout domaine relevant de l’industrie 4.0, et tout domaine de type : HoT (Industrial Internet of Things), ville intelligente, spatial, aéronautique, automobile, naval, ferroviaire (infrastructure, train, tramway), militaire (champ de bataille connecté). [0096] The industrial fields likely to deploy our invention to secure their communication systems include in particular any field relating to industry 4.0, and any field of the type: HoT (Industrial Internet of Things), smart city, space, aeronautics, automobile , naval, railway (infrastructure, train, tramway), military (connected battlefield).

Claims

REVENDICATIONS Procédé de distribution de clefs de session dans un réseau (1) de télécommunication comportant un ensemble de N serveurs (1_1 , 1_2) de distribution de clefs de session, N étant strictement supérieur à 1 , des clients (2_1 , 2_2) comportant des clients de type « publishers » et des clients de type « subscribers », et un module (3) de communication intermédiaire de type « broker » lesdits serveurs, clients et broker étant interconnectés par des liaisons de télécommunication ; selon lequel un client publisher délivre au module broker des informations chiffrées en fonction d’au moins une clef secrète de chiffrement stockée dans le client publisher, au moins un client subscriber associé au client publisher obtient ensuite via le module de communication intermédiaire broker lesdites informations consultables et déchiffre, et/ou vérifie, lesdites informations en fonction d’une clef de déchiffrement associée à ladite clef de chiffrement ; et chaque serveur est adapté pour générer et distribuer des clefs de session aux clients, comprenant les clefs de chiffrement, déchiffrement et /ou signature ; ledit procédé étant caractérisé en ce que : un seul quelconque des serveurs (1_1 , 1_2), à tout instant considéré, a le rôle de serveur maître des serveurs, et seul le serveur maître est autorisé à distribuer des clefs de session aux clients (2_1 , 2_2) ; chaque serveur (1_1 , 1_2) et chaque client (2_1 , 2_2) stockent une même liste ordonnée en vue de l’élection d’un nouveau serveur maître, du rang 1 associé à la priorité maximale au rang N associé à la priorité minimale, des serveurs de l’ensemble de serveurs, ladite liste ordonnée des serveurs indiquant en outre quel est le serveur maître actuel, et chaque serveur stocke une liste des clients auxquels des clefs de session en cours de validité ont été distribuées par le serveur maître actuel et les serveurs maîtres précédents ; chaque serveur (1_1 , 1_2), quand il a le rôle de serveur maître, envoie aux clients (2_1 , 2_2), selon au moins une périodicité minimale prédéfinie, un message périodique d’un premier type prédéfini (heartbeat) ; chaque client (2_1 , 2_2) surveille qu’il reçoit selon ladite périodicité prédéfinie, les messages du premier type en provenance du serveur maître actuel indiqué dans la liste ordonné des serveurs ; et lorsqu’il détecte qu’un message du premier type en provenance du serveur maître actuel indiqué dans la liste ordonnée des serveurs n’a pas été reçu conformément à ladite périodicité minimale, le client (2_1 , 2_2) envoie une requête de recherche d’un nouveau serveur maître au serveur de rang n+1 qui suit le serveur maître actuel de rang n dans la liste ordonnée des serveurs ; chaque serveur (1_1 , 1_2) de l’ensemble des serveurs, dès qu’il reçoit une requête de recherche d’un nouveau maître serveur, déclenche une opération d’élection d’un nouveau serveur maître auprès des serveurs de l’ensemble de serveurs ; le serveur maître élu par ladite opération d’élection déclenche, dès son élection, auprès des clients (2_1 , 2_2) de sa liste de clients, un remplacement des clefs de session valides indiquées dans la liste des clients et qui leur ont été attribuées. Procédé de distribution de clefs session dans un réseau de télécommunication (1) selon la revendication 1 , selon lequel à l’expiration d’un délai prédéfini après qu’un client (2_1 , 2_2) a envoyé une requête de recherche d’un nouveau serveur sans que le client ait reçu un message en provenance d’un serveur élu maître serveur, ledit client (2_1 , 2_2) envoie une requête de recherche d’un nouveau serveur maître au serveur de rang n+2 dans la liste ordonnée de serveurs. Procédé de distribution de clefs de session dans un réseau (1) de télécommunication selon l’une des revendications précédentes, selon lequel l’opération d’élection déclenchée par ledit serveur (1_1 , 1_2) dès réception d’une requête de recherche d’un nouveau serveur maître comprend les étapes consistant à : CLAIMS Method for distributing session keys in a telecommunications network (1) comprising a set of N servers (1_1, 1_2) for distributing session keys, N being strictly greater than 1, clients (2_1, 2_2) comprising clients of the “publishers” type and clients of the “subscribers” type, and an intermediate communication module (3) of the “broker” type, said servers, clients and broker being interconnected by telecommunications links; according to which a publisher client delivers to the broker module encrypted information based on at least one secret encryption key stored in the publisher client, at least one subscriber client associated with the publisher client then obtains said consultable information via the broker intermediate communication module and decrypts, and/or verifies, said information based on a decryption key associated with said encryption key; and each server is adapted to generate and distribute session keys to clients, including encryption, decryption and/or signature keys; said method being characterized in that: only one of the servers (1_1, 1_2), at any time considered, has the role of master server of the servers, and only the master server is authorized to distribute session keys to clients (2_1 , 2_2); each server (1_1, 1_2) and each client (2_1, 2_2) store the same ordered list with a view to electing a new master server, from rank 1 associated with the maximum priority to rank N associated with the minimum priority, servers of the set of servers, said ordered list of servers further indicating which is the current master server, and each server stores a list of clients to which valid session keys have been distributed by the current master server and previous master servers; each server (1_1, 1_2), when it has the role of master server, sends to the clients (2_1, 2_2), according to at least a predefined minimum periodicity, a periodic message of a first predefined type (heartbeat); each client (2_1, 2_2) monitors that it receives, according to said predefined periodicity, messages of the first type coming from the current master server indicated in the ordered list of servers; and when it detects that a message of the first type coming from the current master server indicated in the list ordered of the servers has not been received in accordance with said minimum periodicity, the client (2_1, 2_2) sends a search request for a new master server to the server of rank n+1 which follows the current master server of rank n in the ordered list of servers; each server (1_1, 1_2) of all the servers, as soon as it receives a search request for a new master server, triggers an operation to elect a new master server from the servers of the set of servers. servers; the master server elected by said election operation triggers, upon its election, with the clients (2_1, 2_2) of its list of clients, a replacement of the valid session keys indicated in the list of clients and which have been allocated to them. Method for distributing session keys in a telecommunications network (1) according to claim 1, according to which at the expiration of a predefined period after a client (2_1, 2_2) has sent a request to search for a new server without the client having received a message from a server elected as master server, said client (2_1, 2_2) sends a search request for a new master server to the server of rank n+2 in the ordered list of servers . Method for distributing session keys in a telecommunications network (1) according to one of the preceding claims, according to which the election operation triggered by said server (1_1, 1_2) upon receipt of a search request for a new master server includes the steps of:
- envoyer à tous les autres serveurs de la liste ordonnée des serveurs un message d’un deuxième type prédéfini, indiquant qu’un serveur maître est à élire, et identifiant le serveur envoyant ledit message ; - send to all the other servers in the ordered list of servers a message of a second predefined type, indicating that a master server is to be elected, and identifying the server sending said message;
- après une temporisation déterminée : - after a specific time delay:
- si ledit serveur (1_1 , 1_2) a reçu pendant ladite temporisation un ou des messages du deuxième type en provenance de serveur(s) et que, d’après la liste ordonnée, sa priorité est inférieure à la priorité des serveurs ayant envoyé lesdits messages du deuxième type, il n’est pas le serveur maître élu par ladite opération d’élection ; - if said server (1_1, 1_2) received during said time delay one or more messages of the second type from server(s) and that, according to the ordered list, its priority is lower than the priority of the servers having sent said messages of the second type, it is not the master server elected by said election operation;
- si ledit serveur (1_1 , 1_2) n’a reçu pendant ladite temporisation aucun message du deuxième type en provenance de serveur(s) ou s’il en a reçu et que, d’après la liste ordonnée, sa priorité est supérieure à la priorité des serveurs ayant envoyé lesdits messages du deuxième type, il est le serveur maître élu par ladite opération d’élection. Procédé de distribution de clefs de session dans un réseau (1) de télécommunication selon l’une des revendications précédentes, selon lequel les nouvelles clefs destinées à remplacer les clefs de session sont générées par le serveur maître au moment de son élection à partir d’une nouvelle graine de génération qu’il génère aléatoirement. Procédé de distribution de clefs de session dans un réseau (1) de télécommunication selon l’une des revendications précédentes, selon lequel la liste ordonnée est une boucle ordonnée, où après le serveur de rang N, on revient sur le serveur de rang 1 . Procédé de distribution de clefs de session dans un réseau (1) de télécommunication selon l’une des revendications précédentes, selon lequel lors d’une demande de clef de session par un client (2_1 , 2_2), ledit client envoie une requête de clef au serveur (1_1 , 1_2) de rang i dans la liste, en commençant par i = 1 , et en l’absence de réponse revendiquant le statut de serveur maître de la part dudit serveur, incrémente la valeur de I, i = i+1 , et itère ledit envoi de requête. Procédé de distribution de clefs de session dans un réseau (1) de télécommunication selon l’une des revendications précédentes, selon lequel un mécanisme de synchronisation entre les serveurs (1_1 , 1_2) comprend la synchronisation de la liste des serveurs indiquant le serveur maître actuel, aucune synchronisation des clefs distribuées par les serveurs et/ou de la source d’entropie des serveurs ne devant avoir lieu. Procédé de traitement, mis en œuvre dans un client (2_1 , 2_2), pour l’obtention de clefs de session, dans un réseau (1) de télécommunication comportant un ensemble de N serveurs (1_1 , 1_2) de distribution de clefs de session, N étant strictement supérieur à 1 , des clients (2_1 , 2_2) comportant des clients de type « publishers » et des clients de type « subscribers », et un module de communication intermédiaire (3) de type « broker » lesdits serveurs, clients et broker étant interconnectés par des liaisons de télécommunication ; selon lequel un client publisher délivre au module broker des informations chiffrées en fonction d’au moins une clef secrète de chiffrement stockée dans le client publisher, au moins un client subscriber associé au client publisher obtient ensuite, via le module de communication intermédiaire broker (3), lesdites informations consultables et déchiffre, et/ou vérifie, lesdites informations en fonction d’une clef de déchiffrement associée à ladite clef de chiffrement ; et chaque serveur (1_1 , 1_2) est adapté pour générer et distribuer des clefs de session aux clients, comprenant les clefs de chiffrement, déchiffrement et /ou signature ; ledit procédé étant caractérisé en ce que, le client (2_1 , 2_2) ayant stocké une liste ordonnée en vue de l’élection d’un nouveau maître, du rang 1 associé à la priorité maximale au rang N associé à la priorité minimale, des serveurs de l’ensemble de serveurs (1_1 , 1_2), ladite liste ordonnée des serveurs indiquant en outre quel est le serveur maître actuel, un seul quelconque des serveurs, à tout instant considéré, ayant le rôle de serveur maître des serveurs, et seul le serveur maître étant autorisé à distribuer des clefs de session aux clients : le client (2_1 , 2_2) surveille qu’il reçoit selon une périodicité minimale prédéfinie, des messages périodiques d’un premier type prédéfini (heartbeat) en provenance du serveur maître actuel indiqué dans la liste ordonné des serveurs ; et lorsqu’il détecte qu’un message du premier type en provenance du serveur maître actuel indiqué dans la liste ordonnée des serveurs, n’a pas été reçu conformément à ladite périodicité minimale, le client envoie une requête de recherche d’un nouveau serveur maître au serveur de rang n+1 qui suit le serveur maître actuel de rang n dans la liste ordonnée des serveurs ; le client (2_1 , 2_2) reçoit, depuis un nouveau maître serveur, de nouvelles clefs de session pour remplacement des précédentes clefs de session. Client (2_1 , 2_2) dans un réseau (1) de télécommunication comportant un ensemble de N serveurs (1_1 , 1_2) de distribution de clefs de session, N étant strictement supérieur à 1 , des clients (2_1 , 2_2) comportant des clients de type « publishers » et des clients de type « subscribers », chaque client subscriber étant associé à un client publisher, et un module de communication intermédiaire de type « broker » lesdits serveurs, clients et broker étant adaptés pour être interconnectés par des liaisons de télécommunication ; un client publisher étant adapté pour délivrer au module broker des informations chiffrées en fonction d’au moins une clef secrète de chiffrement stockée dans le client publisher, un client subscriber associé au client publisher étant adapté pour obtenir ensuite, via le module de communication intermédiaire broker, lesdites informations consultables et déchiffrer, et/ou vérifier, lesdites informations en fonction d’une clef de déchiffrement associée à ladite clef de chiffrement ; et chaque serveur (1_1 , 1_2) est adapté pour générer et distribuer des clefs de session aux clients, comprenant les clefs de chiffrement, déchiffrement et /ou signature ; ledit client (2_1 , 2_2) étant un dispositif électronique caractérisé en ce que, le client ayant stocké une liste ordonnée en vue de l’élection d’un nouveau maître, du rang 1 associé à la priorité maximale au rang N associé à la priorité minimale, des serveurs de l’ensemble de serveurs, ladite liste ordonnée des serveurs indiquant en outre quel est le serveur maître actuel, un seul quelconque des serveurs, à tout instant considéré, ayant le rôle de serveur maître des serveurs, et seul le serveur maître étant autorisé à distribuer des clefs de session aux clients : le client (2_1 , 2_2) est adapté pour surveiller qu’il reçoit selon une périodicité minimale prédéfinie, des messages périodiques d’un premier type prédéfini (heartbeat) en provenance du serveur maître actuel indiqué dans la liste ordonné des serveurs ; et le client (2_1 , 2_2) est adapté pour, lorsqu’il détecte qu’un message du premier type en provenance du serveur maître actuel indiqué dans la liste ordonnée des serveurs.n’a pas été reçu conformément à ladite périodicité minimale, envoyer une requête de recherche d’un nouveau serveur maître au serveur de rang n+1 qui suit le serveur maître actuel de rang n dans la liste ordonnée des serveurs et pour recevoir, depuis un nouveau maître serveur, de nouvelles clefs de session pour remplacement de clefs de session valides précédemment attribuées au client. Serveur de distribution de clefs de session (1_1 , 1_2) dans un réseau (1) de télécommunication comportant un ensemble de N serveurs de distribution de clefs de session, N étant strictement supérieur à 1 , des clients (2_1 , 2_2) comportant des clients de type « publishers » et des clients de type « subscribers », et un module de communication intermédiaire de type « broker » (3), lesdits serveurs, clients et broker étant interconnectés par des liaisons de télécommunication ; selon lequel un client publisher délivre au module broker des informations chiffrées en fonction d’au moins une clef secrète de chiffrement stockée dans le client publisher, au moins un client subscriber associé au client publisher obtient ensuite via le module de communication intermédiaire broker lesdites informations consultables et déchiffre, et/ou vérifie, lesdites informations en fonction d’une clef de déchiffrement associée à ladite clef de chiffrement ; et chaque serveur est adapté pour générer et distribuer des clefs de session aux clients, comprenant les clefs de chiffrement, déchiffrement et /ou signature ; ledit serveur (1_1 , 1_2) étant caractérisé en ce que : le serveur (1_1 , 1_2) est adapté pour respecter la règle suivante : un seul quelconque des serveurs, à tout instant considéré, a le rôle de serveur maître des serveurs, et seul le serveur maître est autorisé à distribuer des clefs de session aux clients ; le serveur stockant une liste ordonnée en vue de l’élection d’un nouveau maître, du rang 1 associé à la priorité maximale au rang N associé à la priorité minimale, des serveurs de l’ensemble de serveurs, ladite liste ordonnée des serveurs indiquant en outre quel est le serveur maître actuel, et le serveur stockant une liste des clients auxquels des clefs de session en cours de validité ont été distribuées par le serveur maître actuel et les serveurs maîtres précédents ; le serveur (1_1 , 1_2) est adapté pour, quand il a le rôle de serveur maître, envoyer aux clients (2_1 , 2_2), selon au moins une périodicité minimale prédéfinie, un message périodique d’un premier type prédéfini (heartbeat) ; le serveur (1_1 , 1_2) est adapté pour, quand il reçoit une requête de recherche d’un nouveau serveur maître depuis un client (2_1 , 2_2), déclenche une opération d’élection d’un nouveau serveur maître auprès des serveurs de l’ensemble de serveurs ; le serveur (1_1 , 1_2) est adapté, s’il est élu le serveur maître par ladite opération d’élection déclencher, dès son élection, auprès des clients (2_1 , 2_2) de sa liste de clients, un remplacement des clefs de session valides indiquées dans la liste des clients et qui leur ont été attribuées. - if said server (1_1, 1_2) has not received during said time delay any message of the second type from server(s) or if it has received any and that, according to the ordered list, its priority is greater than the priority of servers having sent said messages of the second type, it is the master server elected by said election operation. Method for distributing session keys in a telecommunications network (1) according to one of the preceding claims, according to which the new keys intended to replace the session keys are generated by the master server at the time of its election from a new generation seed that it randomly generates. Method for distributing session keys in a telecommunications network (1) according to one of the preceding claims, according to which the ordered list is an ordered loop, where after the server of rank N, we return to the server of rank 1. Method for distributing session keys in a telecommunications network (1) according to one of the preceding claims, according to which during a session key request by a client (2_1, 2_2), said client sends a key request to the server (1_1, 1_2) of rank i in the list, starting with i = 1, and in the absence of a response claiming master server status from said server, increments the value of I, i = i+ 1, and iterates said request sending. Method for distributing session keys in a telecommunications network (1) according to one of the preceding claims, according to which a synchronization mechanism between the servers (1_1, 1_2) comprises the synchronization of the list of servers indicating the current master server , no synchronization of the keys distributed by the servers and/or the entropy source of the servers should take place. Processing method, implemented in a client (2_1, 2_2), for obtaining session keys, in a telecommunications network (1) comprising a set of N servers (1_1, 1_2) for distributing session keys , N being strictly greater than 1, clients (2_1, 2_2) comprising clients of the “publishers” type and clients of the “subscribers” type, and an intermediate communication module (3) of the “broker” type, said servers, clients and broker being interconnected by telecommunications links; according to which a publisher client delivers to the broker module encrypted information based on at least one secret encryption key stored in the publisher client, at least one subscriber client associated with the publisher client then obtains, via the broker intermediate communication module (3 ), said consultable information and decrypts, and/or verifies, said information according to a decryption key associated with said decryption key encryption; and each server (1_1, 1_2) is adapted to generate and distribute session keys to clients, including the encryption, decryption and/or signature keys; said method being characterized in that, the client (2_1, 2_2) having stored an ordered list with a view to the election of a new master, from rank 1 associated with the maximum priority to rank N associated with the minimum priority, of servers of the set of servers (1_1, 1_2), said ordered list of servers further indicating which is the current master server, only one of the servers, at any time considered, having the role of master server of the servers, and only the master server being authorized to distribute session keys to clients: the client (2_1, 2_2) monitors that it receives, according to a predefined minimum periodicity, periodic messages of a first predefined type (heartbeat) coming from the current master server indicated in the ordered list of servers; and when it detects that a message of the first type coming from the current master server indicated in the ordered list of servers, has not been received in accordance with said minimum periodicity, the client sends a search request for a new server master to the server of rank n+1 which follows the current master server of rank n in the ordered list of servers; the client (2_1, 2_2) receives, from a new master server, new session keys to replace the previous session keys. Client (2_1, 2_2) in a telecommunications network (1) comprising a set of N servers (1_1, 1_2) for distributing session keys, N being strictly greater than 1, clients (2_1, 2_2) comprising clients of “publishers” type and “subscribers” type clients, each subscriber client being associated with a publisher client, and an intermediate communication module of “broker” type, said servers, clients and broker being adapted to be interconnected by telecommunications links ; a publisher client being adapted to deliver to the broker module encrypted information as a function of at least one secret encryption key stored in the publisher client, a subscriber client associated with the publisher client being adapted to then obtain, via the broker intermediate communication module , said information can be consulted and deciphered, and/or verify said information according to a decryption key associated with said encryption key; and each server (1_1, 1_2) is adapted to generate and distribute session keys to clients, including the encryption, decryption and/or signature keys; said client (2_1, 2_2) being an electronic device characterized in that, the client having stored an ordered list with a view to electing a new master, from rank 1 associated with the maximum priority to rank N associated with the priority minimum, of the servers of the set of servers, said ordered list of servers further indicating which is the current master server, only any one of the servers, at any time considered, having the role of master server of the servers, and only the server master being authorized to distribute session keys to clients: the client (2_1, 2_2) is adapted to monitor that it receives, according to a predefined minimum periodicity, periodic messages of a first predefined type (heartbeat) from the master server current indicated in the ordered list of servers; and the client (2_1, 2_2) is adapted to, when it detects that a message of the first type coming from the current master server indicated in the ordered list of servers has not been received in accordance with said minimum periodicity, send a request to search for a new master server at the server of rank n+1 which follows the current master server of rank n in the ordered list of servers and to receive, from a new master server, new session keys for replacement of valid session keys previously assigned to the client. Session key distribution server (1_1, 1_2) in a telecommunications network (1) comprising a set of N session key distribution servers, N being strictly greater than 1, clients (2_1, 2_2) comprising clients “publishers” type and “subscribers” type clients, and an intermediate “broker” type communication module (3), said servers, clients and broker being interconnected by telecommunications links; according to which a publisher client delivers to the broker module encrypted information based on at least one secret encryption key stored in the publisher client, at least one subscriber client associated with the publisher client then obtains said consultable information via the broker intermediate communication module and deciphers, and/or verifies, said information in function of a decryption key associated with said encryption key; and each server is adapted to generate and distribute session keys to clients, including encryption, decryption and/or signature keys; said server (1_1, 1_2) being characterized in that: the server (1_1, 1_2) is adapted to respect the following rule: only one of the servers, at any time considered, has the role of master server of the servers, and only the master server is authorized to distribute session keys to clients; the server storing an ordered list for the election of a new master, from rank 1 associated with the maximum priority to rank N associated with the minimum priority, of the servers of the set of servers, said ordered list of servers indicating furthermore which is the current master server, and the server storing a list of clients to which valid session keys have been distributed by the current master server and previous master servers; the server (1_1, 1_2) is adapted to, when it has the role of master server, send to the clients (2_1, 2_2), according to at least a predefined minimum periodicity, a periodic message of a first predefined type (heartbeat); the server (1_1, 1_2) is adapted to, when it receives a search request for a new master server from a client (2_1, 2_2), triggers an operation of election of a new master server from the servers of the 'set of servers; the server (1_1, 1_2) is adapted, if it is elected the master server by said election operation to trigger, upon its election, with the clients (2_1, 2_2) of its list of clients, a replacement of the session keys valid values indicated in the customer list and assigned to them.
PCT/EP2023/081926 2022-11-17 2023-11-15 Method for distributing session keys in a telecommunication network, associated methods for processing in a client and a server, and associated client module and servers WO2024105111A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2211946A FR3142313A1 (en) 2022-11-17 2022-11-17 Method for distributing session keys in a telecommunications network, associated processing methods in a client and a server, associated client and server module
FRFR2211946 2022-11-17

Publications (1)

Publication Number Publication Date
WO2024105111A1 true WO2024105111A1 (en) 2024-05-23

Family

ID=86656948

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2023/081926 WO2024105111A1 (en) 2022-11-17 2023-11-15 Method for distributing session keys in a telecommunication network, associated methods for processing in a client and a server, and associated client module and servers

Country Status (2)

Country Link
FR (1) FR3142313A1 (en)
WO (1) WO2024105111A1 (en)

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"IEEE/ISO/IEC Information technology -- Telecommunications and information exchange between systems -- Local and metropolitan area networks -- Part 1X: Port-based network access control;ISO/IEC/IEEE 8802-1X:2013(E)", IEEE STANDARD, IEEE, PISCATAWAY, NJ, USA, 6 December 2013 (2013-12-06), pages 1 - 228, XP068055827, ISBN: 978-0-7381-8843-0 *
"OPC unified architecture - Part 14: PubSub", 8 July 2020 (2020-07-08), pages 1 - 380, XP082021074, Retrieved from the Internet <URL:ftp://standard.iec.ch/iec62541-14{ed1.0}b.pdf> [retrieved on 20200708] *
ANONYMOUS: "UA Part 4: Services - 6.6.2 Server Redundancy", 27 October 2021 (2021-10-27), XP093076510, Retrieved from the Internet <URL:https://reference.opcfoundation.org/Core/Part4/v105/docs/6.6.2> [retrieved on 20230828] *
HASEEB NIAZI ET AL: "Group Encrypted Transport VPN (GETVPN) Design and Implementation Guide Contents", 1 August 2018 (2018-08-01), XP055750434, Retrieved from the Internet <URL:https://www.cisco.com/c/dam/en/us/products/collateral/security/group-encrypted-transport-vpn/GETVPN_DIG_version_2_0_External.pdf> [retrieved on 20201113] *

Also Published As

Publication number Publication date
FR3142313A1 (en) 2024-05-24

Similar Documents

Publication Publication Date Title
US11153290B2 (en) Advanced security protocol for broadcasting and synchronizing shared folders over local area network
US9311459B2 (en) Application-driven playback of offline encrypted content with unaware DRM module
US8732462B2 (en) Methods and apparatus for secure data sharing
Tysowski et al. Hybrid attribute-and re-encryption-based key management for secure and scalable mobile applications in clouds
US10341118B2 (en) SSL gateway with integrated hardware security module
US20080195740A1 (en) Maintaining session state information in a client server system
US20200059454A1 (en) Method, device, medium and apparatus for cdn inter-node encryption
FR2872983A1 (en) FIREWALL PROTECTION SYSTEM FOR A COMMUNITY OF APPLIANCES, APPARATUS PARTICIPATING IN THE SYSTEM AND METHOD FOR UPDATING FIREWALL RULES WITHIN THE SYSTEM
EP2294850B1 (en) Method of securing exchanges between an applicant node and a destination node
EP3695571B1 (en) Device and method for data transmission
Naghizadeh et al. Structural‐based tunneling: preserving mutual anonymity for circular P2P networks
US10158610B2 (en) Secure application communication system
WO2024105111A1 (en) Method for distributing session keys in a telecommunication network, associated methods for processing in a client and a server, and associated client module and servers
WO2019228853A1 (en) Method for establishing keys for controlling access to a service or a resource
KR20220161428A (en) Secure network communications to restrict access to information
EP2630765B1 (en) Method for optimizing the transfer of a stream of secure data via an autonomic network
Imran et al. D4GW: DTLS for gateway multiplexed application to secure MQTT (SN)-based pub/sub architecture
CN110995730A (en) Data transmission method and device, proxy server and proxy server cluster
FR3077151A1 (en) SECURE TRANSACTION SYSTEM BETWEEN TERMINALS
CN114765595B (en) Chat message display method, chat message sending device, electronic equipment and media
EP4338375A1 (en) Method for defending against an attempt to disconnect two entities, and associated system
Kim et al. Marconi Protocol
Shahabadkar et al. Stratum based Approach for Securing Multimedia Content Transmission over Large Scale P2P
EP4315118A1 (en) Secure multi-party computation with attestation using a trusted execution environment
FR2969443A1 (en) METHOD FOR MANAGING SERVICES OVER A NETWORK

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: 23805977

Country of ref document: EP

Kind code of ref document: A1