Method for capturing a packet from an encrypted session

DE602021038296T2Active Publication Date: 2025-09-10ORANGE SA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE602021038296
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-06-04
Filing Date
2021-06-01
Publication Date
2025-09-10
Estimated Expiration
2041-06-01

AI Technical Summary

Technical Problem

Existing communication networks face challenges in identifying and processing data streams from multiple applications due to encryption and multiplexing, particularly in the context of vehicle data services like eCall, where different types of data require distinct handling, and existing methods based on IP addresses are inadequate.

Method used

A method for discriminating messages from terminal equipment by adding attributes to information packets, allowing network devices to identify and process them based on application-specific markings, even in encrypted sessions using protocols like QUIC, by modifying parameters such as the 'spin bit' and 'Reserved Bits' in the QUIC header.

Benefits of technology

Enables unambiguous identification and processing of messages from specific applications without decrypting their content, facilitating differentiated handling of data streams, such as billing or priority transmission, in secure multiplexing protocols like QUIC.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

1. Technical field

[0001] The invention relates to the transport of multiplexed data streams in a protocol, such as a transport protocol, of a communications infrastructure and aims to provide a solution to enable processing to be applied to a specific data stream among a set of transported data streams. 2. State of the art

[0002] In communications networks, data streams are increasingly routed securely, that is, by applying authentication and confidentiality mechanisms to the data exchanged between two peers. This security has increased with the use of the HTTP / 2 (Hypertext Transfer Protocol / 2) protocol transported over the TLS (Transport Layer Security) protocol and TCP (Transmission Control Protocol), and then the rapid development of the QUIC (Quick UDP Internet Communications) transport protocol. This QUIC protocol is widely used by several web browsers and application servers. QUIC combines in a single protocol the transport, multiplexing and protection functions of the RTP (Real-time Transport Protocol), MPTCP (MultiPath TCP), TCP, SCTP (Stream Control Transmission Protocol) and TLS protocols.It strengthens security through integrated authentication and confidentiality mechanisms for signaling data present in the packet header, and key renewal from the first exchanges of messages in the protocol (Handshake process). It should also be noted that the QUIC protocol is an example of a protocol with such security characteristics and multiplexing of several data streams in a single connection, but these characteristics also apply to other protocols. Thus, the MPTCP, HTTP3, SCTP, SPDY and HTTP2 protocols also allow multiplexing of several data streams and therefore present constraints as explained below.

[0003] An operator ensuring the routing of data transported in a protocol, such as QUIC, is faced with a problem of identifying a flow on the one hand due to the application of a security mechanism, such as encryption, and on the other hand by the problem of multiplexing data flows in a single data session. This can arise, for example, in the context of the development of vehicle data services. It should be noted that an eCall service is currently being deployed in Europe. The eCall service represents an initiative of the European Commission aimed at eventually introducing in all vehicles sold in the European Union, an automatic emergency call (eCall) system based on a public service, allowing a damaged car to instantly call the emergency services while sending a certain amount of data, including its precise position, regardless of the EU country in which it is located.This system, based on the single European emergency number 112 enhanced with geolocation, will enable faster intervention by emergency services, adapted to the severity of the accident and the type of vehicle involved.

[0004] Car manufacturers have thus begun the deployment of eCall services in all new models released from April 2018 via the integration of connected boxes called TCU (Telematic Control Unit) equipped with SIM cards. However, it appears that the development of this eCall assistance service is accompanied by other services offered from such a TCU box. These services could be driver assistance services, entertainment services or even vehicle control services. The data associated with these different services require different processing from an operator. Thus, data relating to entertainment services could be billed to a customer,vehicle control data may be duplicated for use in the event of a problem and assistance data may be given high priority since they must not suffer from lower latency during their transmission. This data, emitted for example by the TCU equipment, also has the particularity of being routed to one or more undifferentiated servers. It appears that content providers or data caching solution providers may be the sender or recipient of a plurality of data types among the different types of data (assistance, entertainment,control...) described above. Document US 2005-0177506A1 describes a solution for differentiating flows for the purpose of billing associated with each flow, but the proposed solution relies on a distinction of flows based on the IP address. This solution is not effective for the problem raised above since the flows are all seen by an operator's routing equipment as coming from a single piece of equipment, such as the TCU equipment, and therefore from a single IP address. It should be noted that the destination address also does not allow the flows to be distinguished since this address can also be common to the different multiplexed data flows if a content server or a cache server is the recipient of several distinct flows. Document WO2020043319A1 (by SARKERZAHEDUZZAMAN, IHLAR MARCUS,MUÑOZ DE LA TORRE ALONSO MIGUEL ANGEL and SANCHEZ VEGA VERONICA) discloses a method for detecting QUIC traffic in a telecommunications network between a user equipment, (UE) and a content provider (CP), wherein said UE has an application session established with said CP, for a particular application, using QUIC as a transport protocol, wherein said method comprises the steps of: receiving, by a user plane function (UPF), a list of connection identifiers that identify said application session established between said UE and said CP, receiving, by said UPF, a QUIC packet comprising a connection identifier, comprising said telecommunications network, from said CP, a list of connection identifiers that identify said application session established between said UE and said CP, receiving, by said UPF, a QUIC packet comprising a connection identifier, detecting,by said UPF, said QUIC traffic by determining that said connection identifier of said received QUIC packet is included in said connection identifiers.,

[0005] The present invention aims to provide improvements over the state of the art. 3. Statement of the invention

[0006] The situation is improved by means of a method for discriminating a first message concerning a first application from a set of messages concerning a plurality of applications, sent by terminal equipment to a data server via a routing device, capable of applying processing to an attribute relating to the first message, said method being implemented by the terminal equipment and comprising: adding an attribute relating to the first message in an information packet, said packet grouping attributes to which the processing is applied, applying a marking of the information packet comprising the added attribute, sending the information packet comprising the applied marking to the data server.

[0007] The method thus allows an operator administering a device, such as a router or DPI (Deep Packet Inspection) type equipment or any other equipment in a communications network, to be able to identify a message from a set of messages unambiguously and without requiring complex processing. This identification is in fact becoming increasingly complex due to, on the one hand, content servers grouping together a wide variety of independent services and, on the other hand, the use of protocols multiplexing more and more messages from various applications or terminals, these applications and terminals transmitting the messages via terminal equipment. In this case, identifiers such as the IP addresses of the terminal equipment and / or the data server are not sufficient to identify with certainty a message from an application or a terminal.The method allows a terminal device to identify and group certain messages, according to various attributes such as the terminal at the origin of the message, the type of application or the application used, the quality of service relating to an application, in a specific packet. The device thus constructs a packet grouping the messages which will have a specific processing applied by a network device and applies a marking to it, for example by modifying a marking parameter of this message in such a way that upon reading this marking parameter, the device quickly identifies this packet and then applies a processing to the messages added by the terminal device in the packet.

[0008] According to one aspect of the discrimination method, the terminal equipment transmits the plurality of messages to the data server in a secure session between the terminal equipment and the data server.

[0009] The discrimination method is of particular interest when the session between the messages exchanged between the terminal equipment and the server exchanges data securely, i.e. for example via a connection ensuring the confidentiality of the messages. In this case, only equipment holding a key allowing the messages to be decrypted can access the content of the messages. However, the method allows a terminal equipment to apply a marking, for example by modifying a marking parameter, for example in an unencrypted part of the packet comprising the messages, so that the device can apply a processing requiring neither access to the content of the packet nor modification of the packet.

[0010] According to another aspect of the discrimination method, the information packet is a packet of a secure stream multiplexing protocol.

[0011] Secure stream multiplexing protocols, such as QUIC, HTTP2 or HTTP3, offer advantages for implementing the discrimination method. For example, the QUIC protocol offers many advantages for content providers and users, particularly for its message multiplexing capabilities and its intrinsic security of header data. The method can be advantageously implemented by adding the messages to a QUIC packet suitable for processing by the device. Indeed, this protocol is increasingly widely supported by user equipment and data servers and it allows message multiplexing. Marking such a QUIC packet allows the device to quickly differentiate the packets to be processed from others routed to the data server without processing.

[0012] According to another aspect of the discrimination method, the secure stream multiplexing protocol is one of the following protocols: the MPTCP protocol, the SCTP protocol, the QUIC protocol, the HTTP2 protocol, the SPDY protocol, the HTTP3 protocol.

[0013] QUIC, HTTP2, and HTTP3 protocols are increasingly used for data transfer by content providers and device vendors. Using one of these protocols has the advantage of being able to deploy this process quickly.

[0014] According to another aspect of the discrimination method, the protocol is the QUIC protocol and the application of the marking comprises the modification of binary elements among a "spin bit" and / or "Reserved Bits".

[0015] The spin bit is a bit in the QUIC protocol header. This bit can be used to calculate the latency of a data transmission between a transmitter and receiver. The use of this bit, present in the QUIC protocol specification and therefore supported by all QUIC applications but not necessarily used, especially if the latency is not calculated, allows the device to quickly identify the QUIC packet to be processed.

[0016] The use of the two "Reserved Bits" bits allows the possibility of differentiating four flow management packets, thus allowing the device to be able to apply four differentiated treatments to messages included in the management packets comprising these four options. The use of the "Reserved Bits" bits in addition to the "spin bit" allows the implementation of eight differentiated treatments of the messages in the flow management packets. The terms Spin Bits and Reserved Bits are associated with the QUIC protocol and it is possible to envisage the use of bits having the same role in any secure flow multiplexing protocol.

[0017] According to another aspect of the discrimination method, the information packet includes an attribute corresponding to a specific application.

[0018] The method can be implemented to apply processing to a specific application. The terminal equipment can thus instantiate several flow management packets each comprising messages relating to a specific application and whose application of the marking corresponding here to a modified marking parameter is specific to the flow management packet. The device can thus apply specific processing to the flow management packets according to the distinct parameter of each packet.

[0019] According to another aspect of the discrimination method, the terminal equipment is access equipment of a local network routing the plurality of messages from and to terminals of the local network.

[0020] The discrimination method can be advantageously implemented by access equipment of a local network, such as an access gateway of a home network or TCU type equipment of a vehicular network. Indeed, the terminal equipment can discriminate the different applications and group the messages of these different applications into separate packets so that a network equipment routing the packet applies a specific processing according to a marking parameter of the packet.

[0021] According to another aspect, the discrimination method comprises, prior to adding the attribute, a selection of said first message based on one or more criteria from the list: the first application is included in a list of applications managed by the terminal equipment, the first message is received from a terminal whose identifier is included in a list of identifiers managed by the terminal equipment, the first message comprises data relating to a quality of service, said data being included in a set of data managed by the terminal.

[0022] The discrimination method can be advantageously implemented for a limited number of applications. For example, only applications whose data are billed to the user are considered and the messages from these applications are added to the management packet. The method can also be instantiated for a list of terminals, independently or not of the applications used by these terminals. A data item in a message, for example an IP address or a field relating to the Quality of Service, can also be used to decide whether to add the message to the management packet or not, in correlation with the application and / or the terminal supporting the application or not.

[0023] The various aspects of the discrimination process just described can be implemented independently of each other or in combination with each other.

[0024] The invention relates to a method for capturing a packet of an encrypted session established between a terminal device and a data server according to claim 1, its corresponding device according to claim 14, and its corresponding computer program according to claim 17; a method for counting data relating to an application transmitted within such an encrypted session according to claim 11, its corresponding device according to claim 15 and its corresponding computer program according to claim 18. The invention also relates to a system comprising such devices according to claim 16. The dependent claims describe preferred embodiments of the invention.

[0025] The present disclosure also relates to a method for processing an attribute relating to a first message concerning a first application, said first message being sent by terminal equipment to a data server, the method being implemented by a device routing the first message and capable of applying processing to an attribute relating to the first message, comprising detecting an information packet including the attribute added by the terminal equipment, based on a marking applied to the received information packet, processing the attribute included in the received information packet.

[0026] The processing method makes it possible to apply processing to a packet potentially grouping together several messages for which processing must be carried out. The method thus makes it possible to apply processing on the basis of information present for example in the header of a packet. Thus, if useful data of the packet is encrypted, the device through which packets pass can nevertheless apply processing relating to the quality of service, to the counting of certain messages among all the messages passing through the device on the basis of a marking parameter of a packet grouping together the messages concerned by the processing to be applied.

[0027] According to one aspect of the processing method, the processing comprises counting at least one data item relating to the application from the processed attribute.

[0028] In an environment where packets may be sent by applications whose flows are billed to separate entities, modifying a marking parameter of a packet containing application-related messages allows these packets to be billed to a specific entity. For example, marked packets contain messages to be billed to a vehicle manager and are easily identifiable for counting by an intermediary device.

[0029] According to one aspect of the present disclosure, the processing method further comprises receiving and applying processing relating to a second message concerning the first application, from an attribute included in a second information packet having a marking applied, said second information packet being received from the data server and intended for the terminal.

[0030] The processing method can advantageously be implemented for packets sent by the terminal equipment and by the data server. For example, in the case of counting packets for billing or to apply specific processing to the packets, it may be necessary to apply the processing to the bidirectional streams of packets sent by the terminal equipment to the server or from the data server to the terminal equipment.

[0031] The various aspects of the treatment method just described can be implemented independently of each other or in combination with each other.

[0032] The present disclosure also relates to a device for discriminating a first message concerning a first application from a set of messages concerning a plurality of applications, sent by terminal equipment to a data server via a routing device, capable of applying processing to an attribute relating to the first message, said device comprising: a marking module, capable of adding an attribute relating to the first message in an information packet, said packet grouping attributes to which the processing is applied, applying a marking of the information packet comprising the added attribute, a transmitter, capable of transmitting the information packet comprising the applied marking to the data server.

[0033] This device, capable of implementing in all its embodiments the discrimination method which has just been described, is intended to be implemented in a device of a communication network such as access equipment of a local network, such as a home gateway, a terminal or router-type equipment.

[0034] The present disclosure also relates to a device for processing an attribute relating to a first message concerning a first application, said first message being sent by terminal equipment to a data server, capable of applying processing to an attribute relating to the first message, comprising a detector, capable of detecting an information packet comprising the attribute added by the terminal equipment, based on a marking applied to the information packet received, a processing module, capable of processing the attribute included in the information packet received.

[0035] This device, capable of implementing in all its embodiments the processing method which has just been described, is intended to be implemented in a device of a communication network such as a router, a firewall, a flow inspection device (in English Deep Packet Inspection), or even a data server. The present disclosure further relates to a system for processing an attribute relating to a first message concerning a first application, said first message being sent by terminal equipment to a data server, comprising at least one discrimination device, and at least one processing device.

[0036] The present disclosure also relates to computer programs comprising instructions for implementing the steps of the respective discrimination and processing methods which have just been described, when these programs are both executed by a processor and a recording medium readable respectively by a discrimination and processing device on which the computer programs are recorded.

[0037] The situation is further improved by means of a method for capturing a packet of an encrypted session established between a terminal device and a data server, said packet comprising data for determining a security key used for encrypting the packet, the method being implemented by a device routing the packet between the terminal device and the data server and comprising: analysis of a plurality of packets sent by the terminal equipment and intended for the server, identification of a cooperation packet among the plurality of packets analyzed, said cooperation packet comprising the determination data corresponding to a security key used for the encryption of packets sent by the terminal equipment to the data server prior to the sending by the terminal equipment of said cooperation packet, decryption of the cooperation packet received using a security key corresponding to the determination data of the identified cooperation packet.

[0038] When a connection between a terminal device and a data server is secure, and in particular encrypted, it is not possible for a device ensuring the routing of data to be able to access the content of the packets exchanged between the device and the server. One option to correct this is to provide the device with the security keys used by the terminal device and the data server. However, this provision has the consequence of causing a security breach in the data exchanges and requires systematically transmitting the keys to the device, which represents a security problem. However, in some cases, the device must be able to apply specific processing to certain packets, this processing which could be to specifically bill certain applications or to transmit certain data to a regulatory authority.The method thus allows that among the set of packets routed by the device, the terminal equipment can insert a cooperation packet and indicate by a determination data present in the packet, for example one or more bits positioned at a certain value identifiable by the device typically in the header of the packet, that this packet is a cooperation packet to be decrypted with a key which is determined by the determination data of a certain value. The method thus advantageously makes it possible to implement a collaboration between the terminal equipment and the device routing the data to allow the device to apply a processing to cooperation data transmitted by the terminal equipment.The method also makes it possible to reuse a security key, which is no longer used for transporting data between the terminal equipment and the data server, for collaboration between the terminal equipment and the device. The device may be a router, firewall equipment or any other equipment ensuring processing of the session data. In particular, the data server may implement the actions described for the device. In this case, the data server receives the cooperation packet and processes it using the security key corresponding to the determination data. Encryption and decryption include all data protection modes that can be used to ensure the confidentiality of the exchanged packets and in particular quantum or homographic security techniques.

[0039] According to one aspect of the capture method, the determination data is a phase binary element indicating a change of key to be used by the terminal and the data server for the encryption and decryption of packets exchanged between the terminal equipment and the data server.

[0040] It is known that a phase bit is used, for example, in protocols for one end of the session to indicate to the other end a change in the security key for the data exchanged subsequently. In the case where such a bit was set to 0 and one end, such as the terminal equipment, sets it to 1 for the data transmitted from that moment to the data server, the data server will decrypt the received data with the key corresponding to bit 1, corresponding to a phase change. In this case, the key corresponding to bit 0 is no longer used for the encryption and decryption of the data exchanged between the terminal equipment and the data server and may be used for the encryption of the cooperation packet transmitted to the device by the terminal equipment, in accordance with the phase bit.

[0041] According to one aspect of the capturing method, the cooperation packet is a packet of a secure data multiplexing protocol, such as the QUIC protocol, and the identification of the cooperation packet is performed from one or more of the following parameters: Phase bit QUIC packet spinbit value QUIC packet RR bit value Connection identifier

[0042] The terminal equipment can transmit various information to the device, possibly by encrypting the various information with the security key associated with the value of the determining bit. The use of a connection identifier negotiated in advance between the terminal equipment and the device, for example during the exchange of an encryption / decryption key or by an exchange of specific messages is advantageous. This allows only the two devices, namely the terminal equipment and the device, to have knowledge of this information. The use of the spinbit and / or the RR bits of the QUIC packet can replace the connection identifier used or even supplement it in order to enrich the signaling transmitted to the device and to explicitly indicate to it that it is a cooperation packet requiring processing by the device.

[0043] According to one aspect of the capture method, the identification of the cooperation packet follows the activation in the device of a detection of packets whose determination data has a value distinct from the determination data of a plurality of successive packets previously received from the terminal equipment.

[0044] The device may permanently enable detection of receipt of cooperation packets or it may enable such detection based on an event, thereby reducing the requirement for the device to use resources for packet activation and processing following detection of a packet having the determination bit set to 0. Activation may be implemented following receipt by the device of an activation message transmitted by the terminal equipment, thereby indicating to the device that it will receive a cooperation packet in the following seconds.Activation can also be implemented if the device successively receives several packets having the determination data at a certain value, for example set to 1, thus indicating to the device that the encryption key corresponding to the value 0 is no longer used for the encryption of the data transmitted to the data server but can be used for sending a cooperation packet, making it possible to reuse an obsolete encryption key for the encryption of the data to the data server. Thus, after having received several successive packets with a value of the determination data at 1 for example, the reception of a packet with a value at 0 can indicate to the device that it is a cooperation packet.

[0045] According to one aspect of the capture method, the security key associated with the determination data is sent by the terminal equipment to the device after the end of the session between the terminal equipment and the data server.

[0046] According to this embodiment, the security key corresponding for example to a determination bit is transmitted following the sending of the cooperation packet by the terminal equipment and after the end of the session between the terminal equipment and the data server. This ensures that the security key cannot be used for another purpose, for example to decrypt a data packet sent while the session is still established. The device saves the cooperation packet and decrypts it using the transmitted key after the session is ended using the encryption key transmitted by the terminal equipment after the session is closed.

[0047] According to one aspect of the capture method, the security key associated with the determination data was used to secure an exchange of packets from a previous session between the terminal equipment and the data server.

[0048] Some protocols, such as QUIC or TLS, provide for a change at certain times of the encryption keys used to encrypt the data exchanged during sessions. The terminal equipment and the data server thus derive, for example, an encryption key for new exchanges on the basis of a key previously used for exchanges in a previous session. The key used for exchanges in a previous session is thus no longer used to derive keys for subsequent data exchanges and can be advantageously used for encryption and sending the cooperation packet transmitted by the terminal equipment to the device.

[0049] According to one aspect of the capture method, the security key associated with the determination data is a key negotiated between the terminal equipment and the data server during a session initialization step.

[0050] During a session establishment phase, such as a handshake phase, a security key also called a "cooperation secret" may be negotiated by the terminal equipment and the data server. This is particularly the case when no session between the terminal equipment and the data server existed before this session establishment. This security key (which may be a cooperation secret) may be advantageously used for the encryption and decryption of the cooperation packet.

[0051] According to one aspect of the capturing method, the cooperation packet is removed from the plurality of packets when forwarding said plurality to the data server.

[0052] In one embodiment, the cooperation packet is removed from a plurality of packets sent by the terminal equipment in the session established with the data server. Particularly in the case of a one-way session between the terminal equipment and the data server, the cooperation packet intended for the device is of no interest to the data server. Its removal can further prevent a malfunction of the data server which is not supposed to receive a packet comprising a determination bit corresponding to an encryption key which is normally no longer used for the encryption of packets between the terminal equipment and the data server.

[0053] According to one aspect, the capturing method further comprises analyzing, identifying a cooperation packet and decrypting the cooperation packet as defined above, among packets transmitted by the data server to the terminal equipment.

[0054] In particular in the case of a bi-directional session between the terminal equipment and the data server, the device may apply processing, for example a counting operation, for the packets received from the terminal equipment but also from the data server. In this case, the method implemented will be identical to the method applied for the packets received from the terminal equipment and the device may also not remove the cooperation packet from the packets sent to the data server so that the latter takes into account the existence of the cooperation packet to itself position a binary element of the cooperation packet sent to the device.

[0055] The various aspects of the capture process just described can be implemented independently of each other or in combination with each other.

[0056] The present disclosure also relates to a method for counting application-related data transmitted by terminal equipment to a data server via a device, using an encrypted session between the terminal equipment and the server, the method being implemented by the terminal equipment and comprising the transmission of a plurality of packets each comprising data for determining a security key used for encrypting the packet, the incrementing of a counter of the data relating to the application, for example transmitted to the data server, the addition of the incremented counter in a cooperation packet comprising the data for determining corresponding to a security key used for encrypting packets of the plurality exchanged between the terminal equipment and the data server prior to sending said cooperation packet, the sending of the cooperation packet comprising the added counter to the data server.

[0057] The counting method implemented by the terminal equipment allows the device to have information on the volume of data exchanged, in a one-way or two-way link between the terminal equipment and the data server, for a given application. This method thus makes it possible to overcome the problem of access to encrypted data in packets by the device. This method thus allows the user to transmit to the device securely, possibly by reusing a security key previously used for the packets of the session, counting information via a counter incremented for each packet relating to a given application. Thus, the device can then apply processing, such as billing, to the entities responsible for payment for the packets of the respective applications transmitted and possibly received by the terminal equipment.According to one aspect of the invention, the counting method further comprises sending to the device a security key corresponding to the data determining the cooperation packet.

[0058] Knowing that the security key corresponding to the determining binary element is in most cases not known by the device, the terminal equipment can transmit this key, for example once the session between the terminal equipment and the data server has ended, so that the device can actually access the content of the cooperation packet.

[0059] According to one aspect, the counting method further comprises the prior sending of a message activating the capture method by the device to the data server.

[0060] In particular when the session between the terminal equipment and the data server is bidirectional, it may be necessary for the terminal equipment to transmit to the data server a message activating the capture method, thus indicating to the data server that it is likely to receive a packet comprising a binary element corresponding to a security key that is no longer used. This activation message may also indicate to the data server that it is itself activating the counting method corresponding to the marking method implemented by the terminal equipment for the packets that it sends to the terminal equipment.

[0061] The various aspects of the counting process just described can be implemented independently of each other or in combination with each other.

[0062] The present disclosure further relates to a device for capturing a packet of an encrypted session established between terminal equipment and a data server, said packet comprising data for determining a security key used for encrypting the packet, comprising: an analyzer, capable of analyzing a plurality of packets sent by the terminal equipment and intended for the server, an identification module, capable of identifying a cooperation packet from among the plurality of packets analyzed, said cooperation packet comprising the determination data corresponding to a security key used for the encryption of packets sent by the terminal equipment to the data server prior to the sending by the terminal equipment of said cooperation packet, a decryption module, capable of decrypting the cooperation packet received using a security key corresponding to the determination data of the identified cooperation packet.

[0063] This device, capable of implementing in all its embodiments the capture method which has just been described, is intended to be implemented in a device of a communication network such as a router, a firewall, flow inspection equipment (in English Deep Packet Inspection), or even a data server.

[0064] The present disclosure further relates to a device for counting application-related data transmitted by terminal equipment to a data server via a device, using an encrypted session between the terminal equipment and the server, comprising a transmitter, capable of transmitting a plurality of packets each comprising data for determining a security key used for encrypting the packet, a calculator, capable of incrementing a counter of the data relating to the application, and capable of adding the incremented counter in a cooperation packet comprising the determination data corresponding to a security key used for encrypting packets of the plurality exchanged between the terminal equipment and the data server prior to sending said cooperation packet, a transmitter, capable of transmitting the cooperation packet comprising the added counter to the data server.

[0065] This device, capable of implementing in all its embodiments the counting method which has just been described, is intended to be implemented in a device of a communication network such as access equipment of a local network, such as a home gateway, a terminal or router-type equipment.

[0066] The present disclosure further relates to a system for counting application-related data transmitted by terminal equipment to a data server via a device, using an encrypted session between the terminal equipment and the server comprising at least one capturing device and at least one counting device.

[0067] The present disclosure also relates to computer programs comprising instructions for implementing the steps of the respective capture and counting methods which have just been described, when these programs are both executed by a processor and a recording medium readable respectively by a capture and counting device on which the computer programs are recorded.

[0068] The claimed programs may use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other desirable form.

[0069] The information carriers used may be any entity or device capable of storing the program. For example, a carrier may include a storage medium, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording medium.

[0070] Such a storage medium may, for example, be a hard disk, a flash memory, etc. On the other hand, an information carrier may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means. A program according to the invention may in particular be downloaded from a network such as the Internet.

[0071] Alternatively, an information carrier may be an integrated circuit in which a program is incorporated, the circuit being adapted to perform or to be used in performing the methods in question. 4. Brief description of the drawings

[0072] Other characteristics and advantages of the invention will appear more clearly on reading the following description of particular embodiments, given as simple illustrative and non-limiting examples, and the appended drawings, among which: [ Fig 1 ] presents an implementation of the discrimination method according to a first aspect of the invention, [ Fig 2 ] presents an implementation of the method for capturing a packet according to an embodiment of the invention, [ Fig 3 ] presents an implementation of the discrimination method according to an embodiment of the invention, [ Fig 4 ] presents an implementation of the discrimination method according to another embodiment of the invention, [ Fig 5 ] presents an implementation of the counting method according to an embodiment of the invention, [ Fig 6] presents an implementation of the counting method according to another embodiment of the invention, [ Fig 7 ] presents a discrimination device according to one embodiment of the invention. [ Fig 8 ] presents a processing device according to one embodiment of the invention. [ Fig 9 ] presents a capture device according to one embodiment of the invention. [ Fig 10 ] presents a counting device according to one embodiment of the invention. 5. Description of embodiments

[0073] In the remainder of the description, embodiments of the invention are presented in a communications infrastructure. This infrastructure can be implemented to route communications data to fixed or mobile terminals and the infrastructure, deployed from specific equipment or virtualized functions, can be intended to route and process residential or business customer data.

[0074] We first refer to the [ Fig 1] which presents an implementation of a discrimination method according to a first aspect of the invention. According to this first aspect, a terminal device 30 transmits several messages F1, F2, F3 to a data server 20. These messages F1, F2, F3 are routed in a network 100 comprising in particular an access device 40 and a device 50 routing the messages exchanged between the terminal device 30 and the data server 20. The messages F1, F2, F3 transmitted by the terminal device 20 can be sent by the terminal device 30 or sent by another terminal, such as the terminal 60, and routed by the terminal device 30 to the data server 20 via the access equipment 40 ensuring the connection of the terminal device 30 to the network 100 and the device 50.According to this aspect, the terminal equipment 30 is a TCU type equipment of a vehicle 10 transmitting the messages F1 and F2 and the terminal 60 is for example a smartphone of an occupant of the vehicle transmitting the messages F3. The different messages F1, F2, F3 may require special processing by the device 50 and therefore the possibility of being able to discriminate the different messages. For example, knowing that the transmission of the messages F1, F2, F3 may be billed to separate entities, it is necessary to be able to effectively count the number of messages F1 and / or F2 and / or F3. However, according to the techniques of the prior art, it may be difficult for the device 50 to access the content of the messages F1, F2, F3 because they may be encrypted in particular.According to this aspect, knowing that the F3 messages must be billed to the occupant of the vehicle 10, the F3 messages relating to an application used by the occupant are integrated into an information packet and sent by the TCU 30 to the data server. So that the device 50 can easily identify the information packet, the terminal equipment applies a marking, for example by modifying information elements of the unencrypted header of the packet, so that the device 40 can easily identify it and process it among the different messages F1, F2, F3 that it must route. The added F3 message may correspond to the data of the application or to data specific to the processing by the device 50. For example, the F3 message may correspond to the volume of data exchanged between the terminal 60 and the data server 20.Thus, the terminal equipment 30, which can actually intervene on the messages that it sends itself or on behalf of terminals such as the terminal 60, collaborates with the device by transmitting to it information packets that can be processed by the device 50. The access equipment 40 can also play the role of the device 50 and the terminal equipment 30 can also be a residential gateway, also called a box, or else a smartphone-type device. The information packet comprising the F3 messages can further be encrypted using an encryption key and the device 50 can then decrypt the information packet received from the terminal equipment 30 using a decryption key corresponding to the encryption key used for the encryption.It should be noted that if messages relating to distinct applications require processing by the device 50, then the terminal equipment 30 may include in the information packet the messages relating to both applications, for example by differentiating the different messages by the marking applied to the packet. Thus the marking may include a marking specific to an application. For example, if F4 messages not shown on the [. Fig. 1 ] are sent by the terminal 60 to the data server 20, the terminal equipment will be able to insert the messages F3 and F4 into an information packet that the device 50 will be able to process in accordance with the marking applied by the user equipment 30.

[0075] In relation to the [ Fig 2 ], an implementation of a method for capturing a packet according to an embodiment of the invention is presented. The entities 10, 20, 30, 40, 50 represented in this [ Fig 2] are identical to the entities 10, 20, 30, 40, 50 represented in the [ Fig 1 ]. In this [ Fig 2 ] three applications App1, App2, App3 are represented. These applications App1, App2, App3 can be used or activated on the terminal equipment 30 or on a terminal, such as the terminal 60 represented in the [ Fig 1]. The device 50, like the access equipment 40, routes the packets relating to the applications App1, App2, App3 sent by the terminal equipment 30 to the data server 20 as well as the packets sent by the data server 20 to the terminal equipment 30. An encrypted session is established between the terminal equipment 30 and the data server 20 for routing the packets. One or more encrypted sessions, for example one per application App1, App2 and App3 or one session for all the applications App1, App2 and App3 can be implemented. The packets exchanged between the terminal equipment 30 and the data server 20 include data for determining a security key used for encrypting the packets.For example, it may be one or more bits allowing the terminal equipment 30 and the data server 20 to agree on the security key to be used for the encryption and decryption of the data and to indicate the key or a change of key by information provided by a determination data item, for example present in the unencrypted header of the packet. The device 50, routing the different packets exchanged between the terminal equipment 30 and the data server 20, analyzes these packets and more particularly analyzes the data for determining the keys of the packets. A series of packets relating to the application App1 are encrypted with an encryption key, for example a private key, and the determination data item corresponding to this key has a value v1. The device 50, analyzing this data and verifying that the value of the data item is unchanged, transmits these packets to the data server.Then, the device receives a packet having a determination data item having a value v0 which had been used for the exchange of packets of a previous connection of the session or for the sending of packets during a previous protection phase for the same connection. This determination data value v0 is supposed to no longer be used for the exchange of packets between the terminal equipment 30 and the data server since all the packets include the value v1 as determination data item. The device 50 determines that it is a cooperation packet, comprising data intended for it, and decrypts the content of the packet with a decryption key corresponding to the value v0, this key no longer being used for the exchange of data between the terminal equipment 30 and the data server 20.Thus, an encryption key previously used for the exchange of packets between the terminal equipment 30 and the data server 20 can be reused to transmit information to the device 50 in a packet encrypted with the reused key. This does not alter the end-to-end security between the terminal equipment 30 and the data server 20 since the key used to encrypt the cooperation packet transmitted by the terminal equipment 30 (or the data server 20) to the device 50 is a key that is no longer used for the encryption of the packets exchanged between the terminal equipment 30 and the data server 20. The security key associated with the determination data whose value is v0 can be provided to the device 50 before sending the cooperation packet or subsequently, the device 50 being able to store the cooperation packet to decrypt it once the key is received.The user equipment can thus implement a counting method making it possible to inform the device 50 about the number of packets or the volume of data or information about a session duration in a cooperation packet comprising a counter incremented for each packet transmitted, the counter being able to correspond to the number of packets sent, to a volume of data incremented for each packet sent, or to a duration incremented as soon as a new packet is sent. The device 50 can thus use the information of the counter included in the cooperation packet decrypted using the key corresponding to the data for determining the cooperation packet.

[0076] We now refer to the [ Fig 3 ] which presents an implementation of the discrimination method according to an embodiment of the invention. The entities 10, 20, 30, 40, 50, 60 and 100 are equivalent to the entities having the same titles in the [ Fig 1] and [Fig 2]. In particular, according to an alternative, the terminal equipment 30 is an access equipment of a local network, such as a residential gateway or an access equipment of a vehicular network such as a TCU. During a step 200, the terminal equipment 30 attaches and connects to the access equipment 40. It is considered that a session is established between the terminal equipment 30 and the data server 20. According to an alternative, the session can be established by a secure connection between the terminal equipment 30 and the data server 20. During a step 300, the smartphone 60 sends a message relating to an application App1, for example a network game, and intended for the data server 20 to the terminal equipment 30 and the latter transmits this message to the data server 20 during a step 301. During a step 302, the terminal equipment 30 transmits a message relating to an application App2, for example a management application of the vehicle 10, to the data server 20.The two messages require differentiated processing from the routing device 50, the message relating to the application App2 having to be saved by the device 50, in particular in the event of an audit for insurance purposes. The access equipment 40 and the device 50 route the various messages sent during steps 301 and 302 to the data server 20. The terminal equipment 30 holds a list of applications for which a particular action must be taken. For example, for the application App2 it must send a message related to this application to the device 50. According to another example, the terminal equipment 30 identifies the messages according to the terminal sending these messages or even according to information, for example relating to the quality of service, in the message itself. According to this example, the terminal equipment must copy an attribute relating to the message into an information packet intended for the device 50.

[0077] According to one example, during an optional step 303, the terminal equipment 30 selects a message from among all the messages to be transmitted to the data server 20 according to a criterion. For example, the terminal equipment can compare the application concerned by the message sent. According to the example, the messages relating to the application App2 must give rise to specific processing by the device 50. According to another example, the terminal equipment 30 may transmit to the device 50 attributes relating to messages sent by a particular terminal, for example from the terminal 60. According to yet another example, the terminal equipment 30 may transmit attributes relating to messages comprising specific routing, protocol or quality of service or even security information.Thus, all messages requiring a specific routing quality may give rise to the provision of an attribute relating to the instant when the terminal equipment 30 sent the messages so that the device 50 can verify that the messages concerned have indeed been routed in compliance with the quality of service criterion indicated in the messages, or that their temporal distribution corresponds to the type of application expected (using a Shallow packet Inspection technique).

[0078] In a step 304, the terminal equipment 30 adds the message, according to one example, in an information packet. Several distinct message attributes may be grouped in the information packet to limit the number of information packets transmitted. According to an alternative, the attribute relating to the message, which has been added, may correspond to a part of the message sent or to one or more pieces of information relating to the application App2 such as: the number of messages, the duration of the session between the terminal equipment 30 and the data server 20 for the application App2, the identifier of the terminal having sent the messages relating to the application App2.

[0079] The information packet, according to an alternative, may comprise message attributes specific to a single application, for example if the information packet only comprises attributes relating to the application App2. But in the case where the same processing must be applied to messages from different applications, it may be advantageous to group together message attributes relating to distinct applications but requiring identical processing by the device in the same information packet. For example, if the processing consists of counting the packets sent and relating to two applications App4 and App5, invoiced to the same entity, attributes such as message counters relating to the applications App4 and App5 may be transmitted in an information packet. The terminal equipment 30 then applies, during a step 305, a marking of the information packet, for example by positioning certain binary elements of the information packet at a defined value.According to one example, the information packet may be a packet of a secure stream multiplexing protocol. This type of protocol, offering integrated security and the possibility of multiplexing several streams, is particularly interesting. Indeed, in the case where the terminal equipment 30 wishes to transmit several information packets, each packet grouping together message attributes requiring specific processing, it is then possible to transmit the information packets securely and by multiplexing the different information packets within a single connection between the terminal equipment 30 and the device 50. According to one example, the secure stream multiplexing protocol may be the QUIC protocol or even the HTTP2 or HTTP3 protocol. The QUIC protocol has in particular the advantage of comprising the Spin-Bit and Reserved Bits which can be used to apply a marking to the information packet.Binary elements of other secure stream multiplexing protocols, such as Spin-Bit or the Reserved Bits of the QUIC protocol, can be used interchangeably to apply a marking to the information packet.

[0080] During a step 306, the terminal equipment 30 transmits the information packet comprising one or more attributes of the messages relating to the application App2. In this embodiment, it is considered that the information packet comprises the messages transmitted by the terminal equipment 30 for a duration of 300 seconds. This information packet transmitted using the QUIC protocol further comprises the Spin-Bit and Reserved Bits bits set to 1. The marking information, making it possible to differentiate the information packet received from other packets, indicates to the device 50 that it is an information packet and that processing must be applied to the information packet using the message attributes present in the information packet received during step 306.During a step 307, the device 50 transmits to a backup entity 70 a message comprising the attributes of messages received during the step 307 and thus making it possible to keep a history of the messages relating to the application App2 transmitted by the terminal equipment 30. According to an alternative, the information packet is transmitted to the data server 20 during a step 309. This may in particular be the case when the processing by the device 50 consists of duplicating the information packet received so that the sequencing of packets received by the data server 20 is not distorted or misled by the removal of a packet from a session between the terminal equipment 30 and the data server 20. According to an alternative, the processing may consist of counting the number of messages transmitted for an application.Thus, in the case where it is a question of differentiating the billing per user (owner of the vehicle 10, owner of the terminal 60, manager of the user equipment 30), it is necessary to count the messages or the volume of data generated by the applications and to pass on the costs associated with the number or volume to the user or manager using or managing the application. In this case, the attribute could be a number of messages or a volume of data of the messages sent.

[0081] According to another example, the device 50 can also apply processing to the messages relating to the application App2 transmitted by the data server 20 to the terminal equipment 30. According to this example, during a step 310 the data server 20 sends messages relating to the application App2 to the terminal equipment 30. Steps 311 to 317 are equivalent to steps 303 to 309 described previously except that the data server 20 carries out the operations of the terminal equipment 30 and reciprocally, the terminal equipment 30 carries out the operations carried out by the data server 20.

[0082] It should be noted that the access equipment 40 can also perform some or all of the operations carried out by the device 50 in addition or not to the operations carried out by the device 50.

[0083] In relation to the [ Fig 4], an implementation of the discrimination method according to another embodiment of the invention is presented.

[0084] The discrimination method and the corresponding processing method activate a QFLOW_A extension of QUIC that forces QUIC packet exchanges in "flow management" mode for only QUIC packets to be counted as traffic to be billed to the owner of the SIM card of the TCU (terminal equipment) module of a car: grouping QUIC messages to be counted into marked QUIC packets. The QFLOW_A extension modifies the use of the spinbit field to mark QUIC packets to be counted by the device.

[0085] Additionally, alternatively, on the server, enabling the QFLOW_A extension creates a flow table in the server used to implement the "flow management" process for packets sent by the server.

[0086] The vehicle manufacturer typically develops the process in OEM (Original Equipment Manufacturer) in the dashboard tablet so that the OS (Operating System), the web browser or the applications group the QUIC messages of the flows to be counted in marked QUIC packets so that a device, for example managed by a mobile operator, identifies them and counts them in the case where the processing consists of counting the messages of the flows concerned. The QFLOW_A process is described in "flow management" mode: the criterion for grouping the messages in marked packets is the identifier of the application that generated the messages in marked packets.It is generalizable to other grouping modes: for example, another criterion for grouping messages may be the grouping of QUIC control messages in order to be able to bill only the "useful" data messages (i.e. not including DNS type control data for example) to the end customer. Other treatments may consist of controlling the signaling for security purposes or to route control messages more quickly in a device such as a proxy. A typical use of the method is the storage of signaling to perform a later inspection of messages stored and transmitted in QUIC packets.

[0087] The method is applicable to a mode without visible marking from the outside of the packet. A typical use of this mode is the acceleration of signaling in "reverse proxy" type devices where the routing of signaling to a DPI type inspection function (telemetry, problem analysis, security, etc.).

[0088] The discrimination process can include different modes that can be combined, such as: QFLOW_A mode: Only messages sent by the TCU client (terminal equipment) are added to a QUIC packet that is marked, so only sent data is counted as traffic billed by the manufacturer. QFLOW_B mode: A QUIC extension indicates in the transport parameter named "spinbit" that the packet should be counted. This is enough to count the volume paid by the manufacturer (which should not be billed to the car owner). QFLOW_C: A QUIC extension indicates in a transport parameter such that the spinbit and the 2 RR bits of the QUIC protocol are used to describe the identifier of an application. Thus, 3 bits can distinguish 8 different applications (e.g. waze, gmap, ...) or another grouping criterion (terminal identifier, QoS criterion ...).

[0089] The steps of the method in this embodiment proposed in the [ Fig 5 ] are as follows: Step A: Creation of the QUIC connection between the TCU module (terminal equipment) and the server (data server) without explicit activation of the QFLOW_A extension: the server thus deduces that the spinbit of the QUIC protocol is used for the QFLOW_A mode; Steps B0 (and E0): The TCU module receives messages from the App Serv 3 application of a terminal. The TCU module knows (for example thanks to a table of applications to be billed) that these messages are to be counted. The TCU module therefore receives data that is to be counted by the device. It creates a QUIC packet that will group the data to be counted by the device. It can structure this data by application in the case where the QUIC packet includes data from several distinct applications. Step B: The TCU module (and more precisely the QUIC stack of the module) receives data (messages) to be counted and added to a QUIC flow management packet (Stream).The QUIC stack can include the received message or only part of the message, such as the source and destination addresses, the protocol type. Step C0: The TCU module receives messages relating to the App Serv 4 application that are not to be counted by the device. An unmarked QUIC message (Norm QUIC) is created and will route these messages to the server, the recipient of this data. Step C (and step E): The QUIC stack receives data (or messages) and processes them to include them in the QUIC packet created in step C0. It sends the “unmarked” QUIC packet to the server. Step D: The server receives “unmarked” QUIC packets, i.e. with a SpinBit value of 0. It should be noted that the device does not apply any processing to these so-called unmarked packets. Step E: Another terminal sends messages relating to the App Serv 3 application. These messages are to be counted as indicated in step BO.When the marked QUIC packet contains a sufficient volume of messages and / or after a certain delay after the creation of a Stream packet, the TCI module transmits the QUIC Stream packet to the server. Step Ebis The device identifies the QUIC Stream packet using the Spinbit bit marked at 1 and applies the processing. In this case, the device counts it and adds the data volume corresponding to the App Serv 3 application thanks to the information transmitted in the Stream packet, i.e. the attribute relating to the App serv 3 application. Step F: The server's QUIC stack receives a QUIC Stream packet and processes the messages in the packet. Step G: The device routes QUIC packets sent by the server to the terminals attached to the TCU module or specifically to the TCU module but does not apply any processing because this is QFLOW_A mode.In QFLOW_B mode, QUIC packets sent by the server are processed according to the processing applied to packets sent by the TCU module. In QFLOW_B mode, step B above is modified so that the TCU module tells the server to activate QFLOW_B mode, thus informing that the Spinbit is used to identify the transport of messages to be counted in the QUIC packets. Steps F and G above are further modified as follows: Step F: When the server receives a QUIC packet with the spinbit set to 1, it extracts the QUIC messages (in this embodiment, the messages are themselves QUIC packets) from the packet and stores a list of identifiers associated with the messages in a flow table.Then it processes each frame: ∘ Saving the identifiers; ∘ Processing each QUIC Stream packet; ∘ Responses to each QUIC Stream packet; ∘ Adding the response messages (or attributes relating to the response messages) to the messages received in a QUIC Stream packet; Step G: Sending the QUIC Stream packet to the TCU module (indicating the address of the terminals having generated the App Serv 3 messages) Step Gbis: The Device identifies the QUIC Stream packet received from the server and applies the message accounting processing based on the messages or attributes present in the QUIC message.

[0090] The QFLOW_C mode is distinguished from the two modes above by a different identification of the Stream packets. The processing applied can be distinguished according to the identification of the received Stream packet. For example, the processing can be applied according to the application, according to the entity in charge of payment for the messages, according to the terminal sending the messages or a combination of these criteria: According to an example, in this QFLOW_C mode, the counting is carried out according to the entity in charge of payment for the messages. The attributes of the messages are grouped in QUIC packets used to bill a particular entity. - Use of the 3 bits spinbit and RR to distinguish several counting modes - The bits correspond to a message billing entity: {[name: com.car.android.app, payer: Company A, Id: 010], [name: com.netflix.android.app, payer: Company B, Id: 011], [name: com.poki.android.app, payer: User C, Id: 110], [name: com.sponsordata.android.app, payer: TCU Manager, Id: 101].

[0091] In another example, the counting is managed by application category. In this example, the 3 bits spinbit and RR of the QUIC header indicate the category of the packet, that is, a set of applications whose messages are to be grouped and marked for subsequent processing by the device. An example is given below: {[name: com.car.android.app, id: 100], [name: com.netflix.android.app, id: 101], [name: com.poki.android.app, id: 110], [name: com.sponsordata.android.app, id:111],

[0092] In relation to the [ Fig. 5 ], an implementation of the method for counting a packet according to an embodiment of the invention is presented.

[0093] Entities 10, 20, 30, 40, 50, 60 and 100 are equivalent to the entities with the same titles in the [ Fig 1], [Fig 2 ] And [ Fig 3 ].

[0094] In a step 400, the terminal equipment 30 attaches and connects to the access equipment 40. It is considered that an encrypted session is established between the terminal equipment 30 and the data server 20. This means that the data packets exchanged between the terminal equipment 30 and the data server 20 are encrypted using an encryption key, for example a private encryption key, and the data server decrypts the received packets using a decryption key, for example a public key, corresponding to the encryption key. Correspondingly, the packets transmitted by the data server 20 to the terminal equipment 30 are encrypted and then decrypted. During a step 401, the terminal 60 transmits packets relating to an application App4 to the terminal equipment 30 so that the latter transmits them during a step 402 to the data server 20 with which the terminal has established a session.According to one example, the application App4 is a web access application. As indicated above, the packets transmitted during step 402 are encrypted using a security key. The packets sent further comprise a determination data item informing the data server 20 about the security key actually used for encrypting the packets. According to one example, the determination data item corresponds to values ​​of one or more binary elements of the packet header such as for example a phase binary element as defined for example in the TLS and QUIC protocols making it possible to indicate to the data server a change of key, the new key being calculated from an algorithm and the key previously used for the exchange of packets. Thus, the packets are successively exchanged with different keys, the change of key being indicated by a change of phase.The determination data may therefore correspond to the phase change bit or even to a phase change bit and additional bits to enable enrichment of the information relating to the key used by the terminal equipment for sending packets to the data server 20. During a step 403, the terminal equipment 30 sends packets relating to an application App6 to the data server 20. According to one example, the application App6 is a safety application making it possible to determine the positioning of the vehicle 10 during its movement and to be able to organize assistance in the event of a problem such as a breakdown of the vehicle or an accident.

[0095] It is considered in the remainder of the embodiment that the counting of packets relating to an application App5, for video streaming, must be carried out by the terminal equipment 30 in such a way that the data relating to the video streaming service used by the terminal 60 is actually billed to the user of said service and not to the owner of the vehicle 10 for example. This activation can be static, that is to say that a list of applications for which the counting must be carried out is maintained by the terminal equipment 30. This activation can also be dynamic, for example following the reception of a request transmitted by an administration platform of the applications or of the terminal equipment 30.

[0096] According to an alternative, during a step 404, the terminal equipment transmits to the device 50 a message for activating a packet capture method allowing the device to position itself in listening mode to identify cooperation packets transmitted by the terminal equipment 30, so that the counting of the packets can be carried out. During this step 404, according to an example, the terminal equipment can further indicate a connection identifier used which will be added to the cooperation packet and which the device will actually be able to identify. Thus, among all the packets that the device 50 routes, it will be able to identify the cooperation packets. It should be noted that this connection identifier can be transmitted specifically to the device 50 if, for example, no activation message is transmitted.The activation message may, alternatively, also include the decryption key that will be used by the device 50 to decrypt the cooperation packet, possibly in accordance with the connection identifier included in the message. This activation message may itself be encrypted using a key initially provided to the device 50 in a message not shown in the [. Fig 5]. According to another alternative, during a step 405, the terminal equipment sends to the data server 20 a message activating the capture method implemented by the device 50. The purpose of this message is to inform the data server 20 that keys initially used for the encryption of packets between the terminal equipment 30 and the data server 20 may be used for other purposes, for the encryption of cooperation packets. This activation message also has the purpose of indicating to the data server 20 to implement the counting method in such a way that the packets exchanged in a bidirectional session between the terminal equipment 30 and the data server 20 are counted, for example to be subsequently billed to the owner of the terminal 60.

[0097] During a step 406, the terminal 60 sends a request for access to a video streaming service to the data server 20 via the terminal equipment 20 ensuring the connection of the terminal 60 to the network 100.

[0098] In a step 407, the terminal equipment 30 initializes a counter for the packets received from the terminal 60 and relating to the application App5. The terminal equipment increments the counter with the number of packets received from the terminal 60. It should be noted that the counter may include the number of packets or even the volume of data corresponding to the packets received. According to one example, the counter uses Mbits as the unit of the counter. According to one example, the terminal equipment 30 initializes a counter per terminal and increments the counter for the packets transmitted by the corresponding terminal or uses a counter for the application App5 independently of the terminal transmitting the packets. According to another example, the counter is incremented according to the packets received from a terminal for a set of applications. Thus, all the packets received from the terminal 60 can be counted.According to this example, the packets relating to the application App4 and App5 are counted by the terminal equipment 30.

[0099] During steps 408 and 409, the terminal 60 sends new packets relating to the application App5 and the terminal equipment 30 increments the counter initialized during step 407.

[0100] In a step 410, the terminal equipment 30 adds the incremented counter to a cooperation packet. This addition may occur after a period of time has elapsed following initialization of the counter, once the counter reaches a certain volume of data or packets, or following receipt of a message from a management server. The terminal equipment 30 further determines a determination data item to be added to the cooperation packet. According to one example, this determination data item corresponds to an encryption key previously used by the terminal equipment 30 to send data to the data server 20. For example, the determination data item may be the determination data item used for sending packets during steps 402 and / or 403, in particular if this data item is no longer used for sending packets during steps 406 and 409, for example.According to one alternative, the cooperation packet comprises a connection identifier, as possibly indicated in the activation message during step 405. According to another example, the connection identifier comprises binary elements of a protocol, in particular of a secure data multiplexing protocol. This connection identifier may, according to one example, comprise the Spin-Bit and Reserved Bits of the QUIC protocol or equivalent bits of the HTTP2 or HTTP3 protocols. The connection identifier may, according to another alternative, comprise the packet determination data. According to this example, the device identifies the cooperation packet from the determination data as indicated subsequently.

[0101] During a step 411, the terminal equipment transmits the cooperation packet to the data server 20 via the device 50. The cooperation packet comprises the data for determining the encryption key used for encrypting the cooperation packet as well as the incremented counter and possibly a connection identifier used by the device 50 to identify the cooperation packet among all the packets received.

[0102] The device 50, if it has received the activation message during step 404 or by default as soon as it receives packets, implements an analysis of the packets received from the terminal equipment 30. This analysis may relate to the comparison of connection identifier values ​​and / or determination data of the packets received.

[0103] In a step 412, the device 50 receives the cooperation packet and identifies it using the connection identifier, if the latter is present in the packet, and / or the data for determining the encryption key used. In the latter case, knowing that the packets received previously no longer include this determination data, the reception of a packet comprising a determination data item distinct from the packets to be routed in a given time interval indicates to the device 50 that it is a cooperation packet. According to an example, when the device 50 no longer receives packets with a value v0 as determination data during a time interval and it begins to receive packets having a value v1, it can initialize a timer and if it again receives a packet with a value v0 as determination data after a certain delay after the initialization of the timer, it is likely that the packet is an information packet.In the case where this determination data corresponds to an encryption key newly used for the exchange of packets between the terminal equipment 30 and the data server 20, the device 50 will not be able to decrypt this packet which will have been falsely identified as a cooperation packet since it does not hold the key allowing such a packet to be decrypted. The determination data of the received information packet, being distinguished from the determination data of the data packets received before and / or after the reception of the information packet, the detection of this information packet can be carried out using this determination data. The encryption / decryption key associated with the determination data of the information packet could, according to one example, be used during a previous session between the terminal equipment 30 and the data server.According to another example, a session context can be maintained between the terminal equipment 30 (or a terminal connected to it) and the data server 20 and when a new connection is established, the session context is reestablished for example by the use of cookies and it is possible to reuse a key corresponding to a previous connection of the same session whose context is maintained. According to yet another example, the encryption key associated with the determination data was used during the session initialization exchanges (in English Handshake) between the terminal equipment 30 and the data server 20. In the case where the identification is also or solely based on the connection identifier, it is then appropriate for the device 50 to compare the value of the connection identifier with one or more identifier values ​​corresponding to information packets.

[0104] According to an alternative, in particular in the case where the device 50 has not previously received the key corresponding to the data for determining the information packet, the terminal equipment transmits during a step 413 a key making it possible to decrypt the received information packet. This alternative makes it possible to avoid errors and the decryption of packets which are not information packets but whose determination data corresponds to a key actually used for the encryption / decryption of the data.

[0105] According to one example, during a step 414, the device transmits the meter to a billing device 80 ensuring the conversion of the meter into billing information which will be transmitted to the user of the terminal 60, the meter being able to include information on the application App5, the terminal having sent the packets or even timestamp information of the packets relating to the application App5. According to an alternative, during a step 415, the cooperation packet is removed from the set of packets to be sent to the data server 20. Knowing that the information present in the information packet is intended to be processed by the device, the data server 20 has no reason to receive this packet which also contains a determination data normally no longer used for the decryption of the packets received from the terminal device 30.

[0106] According to one example, during a step 416, the data server 20 implements the counting method as implemented by the terminal equipment 30 and is able to count the packets relating to the application App5, to initialize a counter of these packets and to add it to an information packet transmitted to the terminal equipment so that it is communicated to the device 50 following its identification by a determination data item, possibly different from the data item used by the terminal equipment 30 and / or a connection identifier possibly also different from the connection identifier used for the information packets sent by the terminal equipment 30. In this regard, exchanges between the data server 20 and the device 50 may have occurred previously in accordance with the step 404 described above.

[0107] During a step 417, the data server 20 transmits via the device 50, the access equipment 40 and the terminal equipment 30 packets relating to the application App5, to transmit the video content required by the terminal 60 during step 408. During a step 416, the device 50 analyzing the packets received from the data server 20 identifies an information packet using the information described above, possibly stores it if it does not yet have the key allowing it to be decrypted and to extract the meter from it to transmit it to the billing equipment 80 during a step 419.

[0108] The counting method implemented by the terminal equipment 30 and possibly by the data server 20 thus allows the device 50, in collaboration with the billing equipment 80, to be able to bill the packets and therefore the data of the application App5. The use of such methods thus makes it possible to count the data relating to each application and to reuse encryption / decryption keys which are no longer used for the transmission of packets comprising the useful data of the applications, that is to say required for access to the audio, video and text content of the different applications.

[0109] In relation to the [ Fig 6 ], an implementation of the counting method according to another embodiment of the invention is presented.

[0110] The counting method and the corresponding capturing method can be implemented according to several modes named RFLOW_A and RFLOW_B.

[0111] RFLOW_A mode is a unidirectional mode that does not require any modification in the server because the device withdraws cooperation packets after receiving a signal from the terminal, or after a timeout or when the reception of a data volume is reached. RFLOW_A mode thus defines a cooperation packet in an extension of the QUIC protocol that allows the exchange of data with the device (application type, counters). The cooperation packet is encrypted with a so-called 1-RTT key used during phase 0 (session initialization) of the QUIC protocol. The terminal equipment sends the 1-RTT key of phase 0 of QUIC at any time during or after the connection is terminated.The device records all or part of the messages exchanged between the terminal equipment and the data server, in order to identify and decode the cooperation packets after receiving the cooperation key allowing the recorded cooperation packets to be decrypted.

[0112] RFLOW_B mode differs from RFLOW_A mode in the following way. In addition to RFLOW_A, bidirectional RFLOW_B mode activates the extension (the counting process) on the server side by sending a Transport Parameter of QUIC COOP_MODE, for example, when establishing the session between the terminal equipment and the data server. Thus, the server will not terminate the connection on an error when it receives 1-RTT messages after the transition phase. Indeed, if it does not activate the counting process, it could consider that the reception of packets encrypted with a key that is normally no longer used is an error. In addition, the server will also be able to send and receive cooperation packets.

[0113] There [ Fig 6 ] describes an embodiment relating to the RFLOW_A mode.

[0114] A UA (terminal equipment) establishes a session with a data server (SRV) allowing the routing of messages (or packets) via a device (GW) for example managed by a communications network operator.

[0115] Step 0: Step (0) The UA terminal and the GW device exchange encryption keys ENC_KEY_UA and decryption keys DEC_KEY_UA

[0116] Different types of encryption / decryption keys can be used, for example: An external PSK as defined in https: / / tools.ietf.org / html / draft-ietf-tls-tls13-cert-with-extern-psk-07 is provided by the GW device to the AU. An eSNI key from the GW's FQDN eSNI DNS record as defined in https: / / tools.ietf.org / html / draft-ietf-tls-esni-05

[0117] Step A: The device activates the process of capturing packets received from the UA terminal equipment. Note that this step can be performed following receipt of a capture activation message by the UA.

[0118] Step B: Handshake messages exchanged between the UA and the SRV. The messages use keys identified by a determination data corresponding to a phase 0. This key is the future cooperation key. It is subsequently called the initial phase 0 key or the reconnection phase 0 key, even though it can be any type of key as described in step 0.

[0119] Step C: Data packets relating to applications, for example sent by terminals connected to the UA and not shown on the [ Fig 6] are exchanged between the UA and the SRV. At this time, the exchanged packets may include determination data corresponding to the current phase (0 in the example) or to a new phase (1 in the example). The data packets can in fact be encrypted with a new encryption key.

[0120] Step D: GW activates the RFLOW extension of the capture method after a delay of n ms without packets including determination data corresponding to the phase assumed to be active (0 in the example), or after n consecutive packets including determination data corresponding to the new phase (1 in the example), which should no longer be used for the exchange of packets between the UA and the SRV following the change of encryption key. From this moment on, the packets of the previous phase (whose determination data corresponds to phase 0) are considered as cooperation packets and are captured, and removed from the flow of packets exchanged between the UA and the SRV by GW.

[0121] In one example, GW uses the standard marking bit of QUIC reverse phase packets as determination data.

[0122] By generalization, subsequently the phase (determination data) will be reversed again and will return to phase 0. GW will then suspend the RFLOW extension upon detection of a cooperation packet that it cannot decrypt. This packet will be sent to the SRV server and not stored by GW. Then it will activate the RFLOW extension after a delay of n ms without a packet from the previous phase at 1 or after n consecutive packets including determination data corresponding to the new phase (0 in the example). These packets from the previous phase (called cooperation) are captured and removed from the flow by GW.

[0123] Step E: Exchange of unmarked data packets having a determination data corresponding to a phase at 1

[0124] Step F: Counting messages (which can be packets or data of different types), and adding the counter to a cooperation packet. Setting the phase (determination data) of the cooperation packet to 0. Sending the cooperation packet to the GW.

[0125] Step G: Capture of the cooperation packet including the counter by identifying the phase at 0 used as determination data. It should be noted that the decryption key associated with the initial phase 0 can be sent by the UA to the GW, alternatively or in addition to the sending during step 0.

[0126] If RFLOW_B mode is implemented. Following the exchanged Handshake messages or at the time when the Handshake messages are exchanged, an extension activation message (of the counting process) is transmitted by the UA to the SRV.

[0127] Furthermore, in this RFLOW_B mode, the GW does not remove the cooperation packets from the set of packets routed by the GW between the UA and the SRV. The cooperation packets having a determination data corresponding to a cooperation packet (phase 0) are therefore received by the SRV. In accordance with the sessions established between the UA and the SRV, the SRV server transmits data to the UA, in response or not to the data packets received from the UA. The SRV implements the counting method and the GW also captures the cooperation packets transmitted by the SRV to the UA by selecting the cooperation packets according to the value of the determination data present in the packets also received from the SRV server. In this RFLOW_B mode, the UA will also receive the cooperation packets.

[0128] It is worth noting that, according to prior techniques, in QUIC and TLS1.3 protocols, session reconnection is performed using the key used in the previous connection. In this mode, the corresponding counting and capturing process recycles the 0-RTT key to mark cooperation packets to be identified by the GW.

[0129] When it is a new session, i.e. no session has been established previously, an implementation of the method as described below can be deployed.

[0130] When the UA and SRV devices establish a first connection (i.e. the pre_shared_key extension has not been activated), once the handshake is completed and the master_secret is obtained, the UA and SRV derive the cooperation_secret by the operation: cooperation_secret = QHKDF-Expand(master_secret, "coop s", hash.length)

[0131] This secret is then provided to GW which can (like the UA and the SRV) calculate the key and the initialization vector (iv - initialization vector) by the following operations: key = QHKDF - Expand cooperation _ secret , " key " , key _ length iv = QHKDF - Expand cooperation _ secret , " iv " , iv _ length

[0132] Additionally, it is noted that RFLOW_A and RFLOW_B modes can be combined to increase cooperation levels by creating multiple modes of cooperation packet identification by GW: a spinbit S bit identifies cooperation packets and the RR bits (R1, R2) distinguish several cooperation modes: ∘ in RFLOW_A mode, S at 1 indicates that the packet is a cooperation packet (use of DEC_KEY_UA key to decrypt it). ∘ Advanced options: the use of R1 and R2 bits distinguish 4 types of cooperation packets: ▪ Read: 00 to indicate a QUIC packet with a zone readable by GW; ▪ Delete: 01 to indicate a QUIC packet readable by the gateway and to be removed by GW; ▪ Update: 10 to indicate a QUIC packet modifiable in clear by GW (no encryption); ▪ Modif: 11 to indicate an end-to-end QUIC packet open to cooperation in write mode;

[0133] In relation to the [ Fig. 7 ], an example of the structure of a discrimination device 500 according to an embodiment of the invention is presented.

[0134] The discrimination device 500 implements the discrimination method, various embodiments of which have just been described. The discrimination device can be implemented in a device of a communication network such as terminal equipment, access equipment of a local network, such as a home gateway, a terminal or router-type equipment.

[0135] For example, the device 500 comprises a processing unit 530, equipped for example with a microprocessor µP, and controlled by a computer program 510, stored in a memory 520 and implementing the discrimination method according to the invention. At initialization, the code instructions of the computer program 510 are for example loaded into a RAM memory, before being executed by the processor of the processing unit 530.

[0136] Such a device 500 comprises: a marking module 502, capable of adding an attribute relating to the first message in an information packet, said packet grouping attributes to which processing is applied, applying a marking of the information packet comprising the added attribute, a transmitter 503, capable of transmitting the information packet comprising the applied marking to a data server.

[0137] In relation to the [ Fig. 8 ], an example of the structure of a processing device according to an embodiment of the invention is presented.

[0138] The processing device 600 implements the processing method, various embodiments of which have just been described. The processing device 600 can be implemented in a device of a communication network such as a router, a firewall, a flow inspection device (Deep Packet Inspection), or even a data server.

[0139] For example, the device 600 comprises a processing unit 630, equipped for example with a microprocessor µP, and controlled by a computer program 610, stored in a memory 620 and implementing the processing method according to the invention. At initialization, the code instructions of the computer program 610 are for example loaded into a RAM memory, before being executed by the processor of the processing unit 630.

[0140] Such a device 600 comprises: a receiver 601 capable of receiving an information packet from a terminal device. a detector 602, capable of detecting an information packet comprising the attribute added by the terminal device, as a function of a marking applied to the received information packet, a processing module 603, capable of processing the attribute included in the received information packet.

[0141] In relation to the [ Fig. 9], an example of the structure of a capture device 700 according to an embodiment of the invention is presented.

[0142] The capture device 700 implements the capture method, various embodiments of which have just been described. The capture device 700 can be implemented in a device of a communication network such as a router, a firewall, a flow inspection device (Deep Packet Inspection), or even a data server.

[0143] For example, the device 700 comprises a processing unit 730, equipped for example with a microprocessor µP, and controlled by a computer program 710, stored in a memory 720 and implementing the capture method according to the invention. At initialization, the code instructions of the computer program 710 are for example loaded into a RAM memory, before being executed by the processor of the processing unit 730.

[0144] Such a device 700 comprises: a receiver 704, capable of receiving a plurality of packets from a terminal device, an analyzer 701, capable of analyzing a plurality of packets transmitted by a terminal device and intended for the server, an identification module 702, capable of identifying a cooperation packet among the plurality of analyzed packets, said cooperation packet comprising the determination data corresponding to a security key used for the encryption of packets transmitted by the terminal device to the data server prior to the sending by the terminal device of said cooperation packet, a decryption module 703, capable of decrypting the cooperation packet received using a security key corresponding to the determination data of the identified cooperation packet.

[0145] In relation to the [ Fig. 10], an example of the structure of an 800 counting device according to an embodiment of the invention is presented.

[0146] The counting device 800 implements the counting method, various embodiments of which have just been described. The counting device 800 can be implemented in a device of a communication network such as terminal equipment or access equipment of a local network, such as a home gateway, or a terminal or router-type equipment.

[0147] For example, the device 800 comprises a processing unit 830, equipped for example with a microprocessor µP, and controlled by a computer program 810, stored in a memory 820 and implementing the counting method according to the invention. At initialization, the code instructions of the computer program 810 are for example loaded into a RAM memory, before being executed by the processor of the processing unit 830.

[0148] Such a device 800 comprises: a transmitter 802, capable of transmitting a plurality of packets each comprising data for determining a security key used for encrypting the packet, capable of transmitting a cooperation packet comprising the added counter to the data server, a calculator 801, capable of incrementing a counter of the data relating to the application, in particular transmitted to the data server, and capable of adding the incremented counter in a cooperation packet comprising the determination data corresponding to a security key used for encrypting packets of the plurality exchanged between the terminal equipment and the data server prior to sending said cooperation packet.

Claims

1. Method for capturing a packet from an encrypted session established between a terminal unit (30) and a data server (20), said packet comprising a datum for determining a security key used for encrypting the packet in said encrypted session, the method being implemented by a device (50) routing the packet between the terminal unit and the data server, the method being characterized in that it comprises: - analysing the datum for determining the security key of a plurality of packets exchanged between the terminal unit (30) and the server (20), - as long as the value of the analysed determining datum is unchanged, transmitting the corresponding packets, - upon identification, in said analysed packets, of a cooperation packet among the plurality of exchanged packets, said cooperation packet comprising a first value (v0) of the determining datum, distinct from a second value (v1) of the data for determining the security keys of the other packets of the plurality that have already been analysed, said first value (v0) corresponding to a security key used for encrypting packets exchanged between the terminal unit and the data server prior to sending said cooperation packet, - decrypting the received cooperation packet using a security key corresponding to the first value (v0) of the determining datum of the identified cooperation packet, said security key corresponding to the first value (v0) being a security key used for encrypting packets exchanged between the terminal unit and the data server prior to sending said packets that have already been analysed and / or a security key supplied to said device.

2. Capturing method according to Claim 1, wherein the determining datum is a binary phase element indicating a key change to be used by the terminal and the data server for encrypting and decrypting packets exchanged between the terminal unit and the data server.

3. Capturing method according to Claim 1 or Claim 2, wherein the cooperation packet is a packet of a secure data multiplexing protocol, such as the QUIC protocol, and the cooperation packet is identified from one or more of the following parameters: - phase bit; - value of the spin bit of the QUIC packet; - value of the RR bits of the QUIC packet; - connection identifier.

4. Capturing method according to any of Claims 1 to 3, wherein a cooperation packet is identified after activating, in the device, detection of the packets for which the determining datum has a value that differs from the determining datum of a plurality of successive packets previously received.

5. Capturing method according to any of Claims 1 to 4, wherein the security key associated with the determining datum is transmitted to the device after the end of the session between the terminal unit and the data server.

6. Capturing method according to any of Claims 1 to 5, wherein the security key associated with the determining datum was used for securing an exchange of packets from a previous session between the terminal unit and the data server.

7. Capturing method according to any of Claims 1 to 6, wherein the security key associated with the determining datum is a key negotiated between the terminal unit and the data server during a step of initializing the session.

8. Capturing method according to any of Claims 1 to 7, wherein the cooperation packet is removed from the plurality of packets when said plurality is routed.

9. Capturing method according to any of Claims 1 to 8, wherein the analysis, the identification of a cooperation packet and the decryption of the cooperation packet are implemented for packets transmitted by the data server to the terminal unit.

10. Capturing method according to any of Claims 1 to 8, wherein the analysis, the identification of a cooperation packet and the decryption of the cooperation packet are implemented for packets transmitted by the terminal unit to the data server.

11. Method for counting data relating to an application that are transmitted by a terminal unit (30) to a data server (20) by means of a device (50), using an encrypted session between the terminal unit (30) and the server (20), said data being transmitted in a plurality of packets each comprising a datum for determining a security key used for encrypting the corresponding packet in said encrypted session, the method being implemented by the terminal unit, the method being characterized in that it comprises, during the transmission of said plurality of packets: - incrementing a counter of the transmitted data relating to the application, - adding the incremented counter to a cooperation packet comprising a determining datum with a first value (v0) distinct from a second value (v1) of the data for determining the security keys of the other packets of the plurality, said first value (v0) corresponding to a security key used for encrypting packets of the plurality exchanged between the terminal unit and the data server prior to sending said cooperation packet, said cooperation packet being encrypted with said security key corresponding to said first value; - sending the cooperation packet comprising the added counter to the data server.

12. Counting method according to Claim 11, further comprising sending the device a security key corresponding to the determining datum of the cooperation packet.

13. Counting method according to Claim 11 or Claim 12, further comprising the device previously sending a message for activating the capturing method to the data server.

14. Device (50) for capturing a packet from an encrypted session established between a terminal unit (30) and a data server (20), said packet comprising a datum for determining a security key used for encrypting the packet in said encrypted session, said capturing device being characterized in that it comprises: - an analyser, designed to analyse the datum for determining the security key of a plurality of packets exchanged between the terminal unit (30) and the server (20), - a transmitter designed to transmit packets corresponding to packets the determining datum of which is unchanged, - an identification module, designed to identify a cooperation packet among the plurality of transmitted packets, said cooperation packet comprising a first value (v0) of the determining datum, distinct from a second value (v1) of the data for determining the security keys of the other packets of the plurality that have already been analysed, said first value (v0) corresponding to a security key used for encrypting packets exchanged between the terminal unit and the data server prior to sending said cooperation packet, - a decryption module, designed to decrypt the received cooperation packet using a security key corresponding to the first value (v0) of the determining datum of the identified cooperation packet, said security key corresponding to the first value (v0) being a security key used for encrypting packets exchanged between the terminal unit and the data server prior to sending said packets that have already been analysed and / or a supplied security key.

15. Device for counting data relating to an application that are transmitted by a terminal unit (30) to a data server (20) by means of a device (50), using an encrypted session between the terminal unit and the server, said data being transmitted in a plurality of packets each comprising a datum for determining a security key used for encrypting the corresponding packet in said encrypted session, said counting device being characterized in that it comprises: - a transmitter, designed to transmit said plurality of packets, - a computer, designed to increment a counter of the transmitted data relating to the application, and designed to add the incremented counter to a cooperation packet comprising a determining datum with a first value (v0) distinct from a second value (v1) of the data for determining the security keys of the other packets of the plurality, said first value (v0) corresponding to a security key used for encrypting packets of the plurality exchanged between the terminal unit and the data server prior to sending said cooperation packet, said cooperation packet being encrypted with said security key corresponding to said first value.

16. System for counting data relating to an application that are transmitted by a terminal unit to a data server by means of a device, using an encrypted session between the terminal unit and the server comprising at least one capturing device according to Claim 14 and at least one counting device according to Claim 15.

17. Computer program comprising instructions for implementing the capturing method according to any of Claims 1 to 10, when the program is executed by a processor.

18. Computer program comprising instructions for implementing the counting method according to any of Claims 11 to 13, when the program is executed by a processor.