WO2018087493A1 - System and method for secure transfer and identified and traceable use of proprietary computer files - Google Patents

System and method for secure transfer and identified and traceable use of proprietary computer files Download PDF

Info

Publication number
WO2018087493A1
WO2018087493A1 PCT/FR2017/053082 FR2017053082W WO2018087493A1 WO 2018087493 A1 WO2018087493 A1 WO 2018087493A1 FR 2017053082 W FR2017053082 W FR 2017053082W WO 2018087493 A1 WO2018087493 A1 WO 2018087493A1
Authority
WO
WIPO (PCT)
Prior art keywords
files
file
blockchain
client
proprietary
Prior art date
Application number
PCT/FR2017/053082
Other languages
French (fr)
Inventor
Vasile Andrei MITUCA
Alexandre Guerin
Antoine JEOL
Original Assignee
3Dtrust
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 3Dtrust filed Critical 3Dtrust
Publication of WO2018087493A1 publication Critical patent/WO2018087493A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]

Definitions

  • the technical field of the invention is that of systems and methods for securing the exchange of data between two machines.
  • the invention more particularly relates to a system and a method for secure transfer and traceable use of proprietary computer files.
  • a proprietary computer file designates a set of digital codes adapted to be directly or indirectly interpreted by a machine, such as a computer, a numerically controlled machine, an additive manufacturing machine, and in a manner general any machine equipped with a microprocessor.
  • the computer file is said to be proprietary since the creator of the file or his trustee intends to control access and use of the file.
  • Such a proprietary computer file is for example a software intended to be installed and executed on a computer, a printing file intended for an additive manufacturing machine, such as a 3D printer, an image file, a video file, a file textual, etc.
  • a 3D object can be associated with a variety of intellectual property rights (protection of the form of the object by a model, protection of the functionality of the object by a patent, protection of the originality of the object by a copyright, protection of the sign formed by the object by a three-dimensional mark, etc.).
  • Patent document EP2757736 dedicated to 3D printing files proposes not to transmit the print files as such but to transmit only the control instructions of the 3D printer (known for example under the name of G- codes), these instructions being themselves encrypted with a key known only to the 3D printer considered.
  • the content of the print file does not circulate on the network and only the machine control instructions are transmitted from a server to the machine, which avoids interception of the print file.
  • the solution proposed by EP2757736 makes it possible to prevent a third party from recovering the source file of the object to be printed.
  • this solution does not guarantee that only a copy of the piece will be produced from the order instructions. Indeed, from the moment the commands are received by the 3D printer, nothing prevents the manufacture of a plurality of parts from the control instructions of the machine. In other words, if the proposed solution seems to authorize the securing of the data with regard to third parties, it does not allow the holder of a right on the object to be printed to check the use made of the instructions transmitted to the printer. In particular, the proposed solution does not make it possible to trace the use of the instruction commands of the 3D printer.
  • the aim of the invention is to provide a method and system for the secure transfer of proprietary computer files that overcomes at least some of the disadvantages of known solutions.
  • the invention aims in particular to provide, in at least one embodiment, a method and a system for secure transfer of computer files that track and trace the use that is made of the transferred computer file.
  • the invention also aims to provide, in at least one embodiment, a method and a system for transferring computer files that guarantee the inviolability of the files.
  • the invention also aims to provide, in at least one embodiment, a method and a system for transferring computer files that guarantee inalterability of the transmitted files.
  • the invention also aims to provide, in at least one embodiment, a method and a system for transferring computer files that make it possible to authenticate each of the parties involved in the transfer operation.
  • the invention also aims to provide, in at least one embodiment, a method and a system for transferring computer files that provide information on the quality of the use of the transferred file, including a quality of 3D printing in the case of a proprietary computer file for a 3D printer.
  • the invention relates to a secure transfer system and identified use of computer files between at least one machine hosting said proprietary computer files, said file host, and at least one machine requesting the reception and use of computer files. at least one of said proprietary computer files, said file client, said system comprising:
  • a network of machines comprising at least each file host, each client of files, and a central server,
  • a database formed of an ordered blockchain block chain distributed on the private network and associated with a crypto-graphic write / read protocol for transactions carried out on the private network
  • a blockchain module hosted by each machine of the private network and configured to be able to read / write transactions in said blockchain so as to be able to interact with the other machines via the blockchain to authorize the transfer of the proprietary files of the hosting provider; files to the file client if predetermined transfer conditions are met and to track the use made by said file client of the transferred proprietary files,
  • an application module hosted by each machine of the private network and configured to be able to transfer files from the file hosting proprietor to the file client via the secure transmission channel if said predetermined conditions transfer are recorded in said blockchain.
  • a system according to the invention therefore comprises a network, said private network, which distributes a database consisting of an ordered block of blocks, and associated with a write / read protocol and cryptographic validation of transactions carried out. on the private network.
  • a database is better known by its English name blockchain, which is used throughout.
  • a blockchain thus forms a transaction register, replicated on one or more machines of the private network interconnected by a peer-to-peer network. These machines are nodes of the private network and the communication between the nodes is encrypted and guarantees the identity of the sender and the recipient.
  • a node wants to add a new transaction to the registry, it proposes it to the network that forms a consensus to determine where and when that transaction is to be registered in the registry. This consensus is a block. In practice, a block groups several transactions.
  • the blockchain is used to list all the transactions between the different machines of the private network, and in particular between at least one machine that hosts proprietary files (the file host), at least one machine that requests the using a proprietary file (the file client) and a machine that controls the system (the central server).
  • the blockchain ensures that the file has been sent by the file host and received by the file client.
  • each use of the file by the file client is retranscribed in the blockchain, which makes it possible to identify and trace the use made of the transmitted proprietary file.
  • the particularity of the invention is also to use a secure transmission channel which connects the machines together and in particular the file host and the file client to ensure secure transfer as such proprietary computer files.
  • the blockchain and the blockchain modules of the different machines of the private network make it possible to organize the transfer of a proprietary computer file, to verify that the transfer has indeed taken place and to trace the use made of the file, once transferred, but the transfer as such is done through the secure transmission channel, which is controlled by the central server and the blockchain. It is only when the predetermined transfer conditions are recorded and read in the blockchain that the physical transfer of the file by the secure transmission channel takes place. Once the transfer is made, the blockchain records the confirmation of the transfer.
  • the operations of writing and reading in the blockchain by the machines of the private network are carried out by means of blockchain modules hosted by the machines and configured to interact with the blockchain.
  • At least one module forms a minor module configured to validate each write / read transaction in the blockchain.
  • this minor module that forms the consensus and validates the blocks and imposes them on all the machines in the network.
  • minor refers to the action of “mining”, that is to say the blockchain block validation operation and the synchronization of the different copies of the blockchain. the blockchain on the private network.
  • File transfer operations via the secure transmission channel are performed through application modules hosted by the machines.
  • module denotes a software element, a subset of a software program that can be compiled separately, either for independent use, or to be assembled with other modules of a program, or a hardware element, or a combination of a hardware element and a software subprogram.
  • a hardware element may comprise an application-specific integrated circuit (ASIC) or a programmable logic circuit (FPGA) for the English name Field- Programmable Gâte Array) or a specialized microprocessor circuit (better known by the acronym DSP for the English name Digital Signal Processor) or any equivalent hardware.
  • ASIC application-specific integrated circuit
  • FPGA programmable logic circuit
  • DSP Digital Signal Processor
  • the invention also relates to a secure transfer method and identified use (we also speak throughout the text traceable use) of computer files between at least one machine hosting proprietary computer files, said file host, and at least a machine requesting the reception and use of at least one of said proprietary computer files, said file client, said machines being connected to a network of machines, said private network, comprising at least one central server and a database formed an ordered blockchain block chain, distributed on the private network and associated with a write / read and cryptographic validation protocol for transactions carried out on said private network, said machines being further connected to each other by a transmission channel; secure transmission.
  • the method according to the invention comprises at least the following steps:
  • a file client requires the transfer of a proprietary file by a writing of a corresponding transaction in said blockchain
  • said central server determines the validity of the request and informs, in the event of a valid request, said file host hosting said file requested by said file client,
  • said file host provides said file client with a key representative of the file address required by a write operation of a corresponding transaction in said blockchain
  • said file client retrieves said proprietary file from said requested file address from said file host via said secure transmission channel
  • said file client notifies the use of the proprietary file retrieved by writing a corresponding transaction in said blockchain, and uses said proprietary file with a dedicated application.
  • a method according to the invention is advantageously implemented by a system according to the invention and a system according to the invention advantageously implements a method according to the invention.
  • a method according to the invention thus makes it possible to organize and control the transfer of proprietary files between a proprietary file host and a file client.
  • the transaction write / read and cryptographic validation protocol implements at least one module, called a minor module, configured to be able to validate the write / read transactions in said blockchain.
  • each step of writing a transaction in the blockchain is followed by a step of validating the transaction by the minor module.
  • This minor module can be hosted by a machine dedicated to the validation of transactions or can be hosted by a machine of the private network, for example by a file client, and / or by the central server.
  • several minor modules are used in parallel to increase the computing power and the speed of implementation of the method.
  • minor refers to the “mining” action, ie the blockchain block validation operation and the synchronization of the different copies of the blockchain on the private network.
  • said write / read protocol and cryptographic validation of transactions performed on said private network of said blockchain is Ethereum® protocol implementing programmable entities, called smart contracts, each associated with a structure of data and methods for modifying these data, so that a writing of a transaction in said blockchain is a modification of at least one of said data associated with an intelligent contract obtained by executing one of said methods associated with a smart contract.
  • the use of Ethereum® protocol smart contracts makes it possible to initialize a contract in the blockchain for each proprietary computer file to be transferred from a file host. to a file client.
  • the contract is initialized by the file client by executing a contract initialization method.
  • This contract creation method provides an identification of the requested file, a file host address that holds the desired file, an amount in crypto currency, designated Ether in the Ethereum® protocol, and the number of copies desired. . Subsequently, all the exchanges between the file client and the host concerning this proprietary computer file are done by updating (or modifying) the corresponding contract.
  • said blockchain is initialized by providing in a first block, called block genesis, a predetermined list of identifiers, each identifier, said address, being determined from a private digital key and intended to designate a network machine.
  • each file client is assigned a predefined identifier in the genesis block of the blockchain.
  • the blockchain module hosted by the file client is then set with the predefined identifier in the genesis block of the blockchain.
  • each private digital key associated with an address registered in said genesis block is obtained from the same predetermined root key and a predetermined derivation function.
  • the cryptographic security of the system and method according to the invention is based on a single predetermined root key.
  • the private digital keys are generated and the identifiers of the machines are obtained, it is possible to delete the private digital keys and keep in a safe place only the root key.
  • each private numeric key is obtained from a 128-bit key and a derivation algorithm of the HKDF type for the English name Hashed Message Authentication Code (HMAC) Key Derivation Function.
  • HMAC Hashed Message Authentication Code
  • each address is associated with a random amount greater than a predetermined threshold of crypto currency to allow each machine to perform transactions on said blockchain.
  • the Ethereum® protocol works with a cryptocurrency, or virtual currency, designated Ether, whose function is to pay for the execution of smart contracts, the operation of which can consume significant resources.
  • Ether a cryptocurrency, or virtual currency, designated Ether, whose function is to pay for the execution of smart contracts, the operation of which can consume significant resources.
  • the Ether is used to obtain "gas” (gasoline) to make the contracts work.
  • the Ether also allows to reward the nodes that allow to validate the blocks of the blockchain.
  • the invention provides for allocating a large amount of Ether to each machine of the network so that they can always interact with the blockchain and never find without "gas".
  • At least said central server is a minor node of the private network configured to be able to validate each block of the blockchain.
  • said central server is also a host of proprietary files.
  • the central server that provides the proprietary files to the file clients.
  • the file hosts are separate from the central server whose role is then limited to administering the blockchain.
  • said secure transmission channel implements a data exchange security protocol allowing authentication of each machine, and in particular the file client and said file host during the transfer of a proprietary file.
  • Such a protocol for securing data exchanges is for example the protocol known by the acronym TLS (for the English name Transport Loyer Security) or the protocol known by the acronym SFTP (for the English name Secure File Transfer Protocol).
  • TLS for the English name Transport Loyer Security
  • SFTP for the English name Secure File Transfer Protocol
  • said proprietary computer files are printing files intended for additive printers.
  • the system and the method according to the invention secure the transfer of printing files intended for 3D printers.
  • a system and a method according to the invention therefore offer rights holders wishing to transfer a 3D computer file to an authorized user the security of the transfer and the traceability of the use of the transferred file.
  • a company wishing to provide a spare part to a remote customer can, thanks to the invention, transfer the digital file of the spare part without fear of the fraudulent use of the file by a third party and while being able to verify the use which is made of the file, by consulting the blockchain, which is unalterable.
  • the invention can also provide information on the quality of the part produced by the printer by reading the sensors of the 3D printer.
  • each 3D printer has sensors to control and track the production of the piece. Reading sensor data and writing this data to the blockchain provides the file host with information about the quality of the part produced. This makes it possible, for example, to verify that the part produced satisfies predetermined criteria, for example in the case of a standard part having to meet certain specifications.
  • the invention thus makes it possible, according to this variant, to remotely certify the quality of the parts produced by the additive printer by reading the sensors of the 3D printer and comparing the data supplied by these sensors with predetermined nominal values.
  • a file client that uses a print file received with an additive printer and that notifies it by writing a corresponding transaction in said blockchain includes a serial number associated with said product made from of said received print file.
  • the blockchain makes it possible to follow the manufacture of the parts and of List all the parts produced by using a proprietary file and associate each production with a serial number of the part.
  • At least one or more of the following information is recorded in the blockchain: serial number of the additive printer having printed the produced piece; Print settings used during printing information on the equipment used; information about the printer software.
  • other information can also be recorded in the blockchain according to the needs of users of the invention.
  • the proprietary computer files are files for installing or updating proprietary software on a client file machine.
  • the invention makes it possible to securely transfer software or software updates to authorized users.
  • the invention then makes it possible to follow the steps of installation or updating of the proprietary software and to track and trace the number of installations or updates made with the transferred file. All information is stored in the blockchain and can be controlled by the owner of the computer file updating the proprietary software.
  • This variant makes it possible, for example, to install software updates on motor vehicles and to determine the number of motor vehicles on which updates have been made.
  • the invention thus makes it possible to guarantee to right holders on a software or an update of a software that the file is used in accordance with the agreements provided between the different parties.
  • a method according to the invention can be implemented in the form of a sequence of instructions of a computer program.
  • the method can also be implemented in hardware form or in a mixed hardware and software form.
  • the corresponding instruction sequence can be stored in a removable storage means, such as a diskette, a CD-ROM, a DVD-ROM, a USB key, etc., or a non-removable storage means, these various means being read partially or totally by a computer or a microprocessor.
  • the invention also relates to a computer program product downloadable from a communication network and / or recorded on a computer readable medium and / or executable by a processor, characterized in that it comprises program code instructions for the implementation of the method of secure transfer and traceable use of computer files according to the invention, when the program is executed on a computer.
  • the invention also relates to a computer readable storage means, totally or partially removable, storing a computer program comprising a set of instructions executable by a computer for implementing the method of secure transfer and traceable use of files. computer according to the invention.
  • the invention also relates to a system and a method characterized in combination by all or some of the features mentioned above or below.
  • FIG. 1 is a schematic view of a secure transfer system and identified use of computer files according to a first embodiment of the invention
  • FIG. 2 is a schematic view of a secure transfer system and identified use of computer files according to an embodiment of the invention on which the various modules interacting with the blockchain and a 3D printer are represented,
  • FIG. 3 is a schematic view of a system and method of secure transfer and identified use of computer files according to another embodiment of the invention.
  • FIG. 1 very schematically represents a system according to one embodiment of the invention comprising a network of machines, said private network 5, and grouping a machine hosting proprietary files, called file host 6, a machine requesting the use of a proprietary file, called client 7 files and a machine that controls the system, called central server 8.
  • Said file host 6, said file client 7 and the central server 8 are for example computers or, more generally, electronic machines operating by a sequential reading of a set of instructions.
  • the system according to the invention furthermore comprises a database formed of an ordered blockchain 9, distributed on the private network 5 and associated with a write / read and cryptographic validation protocol for transactions carried out on the private network 5.
  • the private network between the different machines of the private network 5.
  • the system also includes a minor module 11 whose role is to validate the transactions of the blockchain 9.
  • This minor module 11 can be an independent module or be integrated into one of the machines of the private network 5.
  • the action of mining and the means for this mining are known to those skilled in the art and are not described here in detail.
  • the system according to the invention further comprises a dedicated channel, called a channel
  • This secure transmission channel 10 preferably implements a secure data exchange protocol enabling authentication of each interacting part via this secure transmission channel.
  • This protocol is for example the TLS protocol (for the English name Transport Rent Security) or the SFTP protocol (for Secure File Transfer Protocol) or any equivalent protocol.
  • the blockchain 9 is dedicated to the exchange of information for organizing and tracking the transfer of files from the file host 6 to the file client 7.
  • the blockchain 9 also makes it possible to track the use of the file by the file client 7.
  • the blockchain 9 also makes it possible to follow the exchanges of information between the central server 8 and the file host 6.
  • the secure transmission channel 10 is used for the transfer of the files as such. It is also used to exchange information between the central server 8 and said file host 6.
  • Each machine further comprises a blockchain module 19 (shown in Figure 3 only), configured to read / write transactions in blockchain 9 so as to interact with other machines through the blockchain 9.
  • This module 19 blockchain is for example a software layer configured to interact with the blockchain 9.
  • Each machine also comprises a blockchain application module 12 (shown in FIG. 3 only) configured to be able to interact on the secure transmission channel 10 and in particular to ensure the transfer of the proprietary files from the file host 6 to the file client 5. through the secure transmission channel 10.
  • a blockchain application module 12 shown in FIG. 3 only
  • the protocol for writing / reading and crypto-graphical validation of transactions carried out on the private network of blockchain 9 is the Ethereum® protocol implementing programmable entities, called smart contracts, each associated with a data structure and methods for modifying that data, so that a write of a transaction in the blockchain 9 is a modification of at least one of the data associated with an intelligent contract obtained by an execution one of the methods associated with a smart contract.
  • the notion of writing / reading a transaction in the blockchain 9 refers indifferently to the execution of a data modification method associated with a smart contract (in the case where the Ethereum® protocol is used) or write / read as such of the transaction in blockchain 9 (in case another protocol is used).
  • the file host and the central server are formed from the same machine. Throughout the following description with reference to Figure 2, this machine is designated central server 3 being understood that it also performs the function of file host.
  • This hosting is shown schematically by a zone 32 for storing the proprietary files.
  • the system according to the embodiment of FIG. 2 thus comprises a central server 3 and a file client 2 which can interact with each other either by means of an Ethereum® protocol and the associated blockchain 9. or via a channel 42 of secure communication.
  • the central server 3 and the file client 2 each host, at a termination 38, respectively 28 IPC (acronym for the English name Inter-Process Communication) an Ethereum® client instance, for example the application pyethapp, geth or eth.
  • this Ethereum® client instance is designated by the reference 25 for the client 2 of files and 35 for the central server 3.
  • the blockchain 9 is synchronized both by the file client 2 and by the central server 3.
  • at least the central server 3 or the file client 2 hosts a minor module. configured to validate the transactions performed on the blockchain 9.
  • the minor module may be an independent module hosted on a machine dedicated to the validation of transactions of the blockchain.
  • the file client 2 hosts the Ethereum® client instance 25, an application in Javascript® 26 that uses the node.js software platform that is in interaction with the Ethereum® client instance. and an application 27, for example, implemented in python which is in interaction with an additive printer 22.
  • the Ethereum® client instance 25 and the application in Javascript® 26 form, according to this embodiment, the blockchain module of the file client 2, and the application 27 forms the application module interacting with the printer 22.
  • the central server 3 hosts the Ethereum® client instance 35, an application in Javascript® 36 that uses the node.js software platform that is in interaction with the Ethereum® client instance 35 and an application 37 configured to be able to interact at a time. with the application in Javascript® 36 and with the storage area 32 of the proprietary files.
  • the Ethereum® client instance 35 and the application in Javascript® 36 form the blockchain module of the central server 3, and the application 37 forms the application module in interaction with the storage area 32.
  • the method of securely transferring a file from the central server 3 to the file client 2 is obtained by the succession of the following steps:
  • the file client 2 requires the download of a proprietary file.
  • This request takes the form of a transaction in a blockchain 9 contract.
  • This transaction is performed by the application 27 interacting with the additive printer 22 to the Ethereum® client instance through the application 26. Javascript ®.
  • the Ethereum® client instance sends this request to the central server 3 or adds it directly to the blockchain 9 if the file client 2 hosts a minor module configured to validate the transactions.
  • the Ethereum® protocol devp2p which is executed by both the file client 2 and the central server 3 synchronizes the transaction and adds a new block on each respective copy of the blockchain 9.
  • the central server 3 determines the validity of the request, through the channel 42 of secure transmission, then performs a transaction in the contract of blockchain 9 to allow or not the request of the client based on this determination. If the request is valid, the central server 3 (which acts as a file host) provides a key representative of the address of the required file.
  • the client 2 files makes regular queries of the contract of blockchain 9 to detect the return of the central server 3. As soon as it detects the key representative of the address of the file, it determines the address of the file from the representative key provided by the server in the blockchain 9. determination of the address is obtained for example by a predetermined mathematical function that combines said representative key provided by the file host, a predetermined public key and a signature of the required file (hashfile).
  • the file client 2 starts downloading the file through the application 27 and the channel 42 secure transmission.
  • the file client 2 can notify the use in the blockchain 9 and use the recovered file.
  • FIG. 2 is only one possible embodiment for implementing the blockchain module and the application module in a machine of a system according to the invention. The skilled person is able to determine other software or hardware implementations of these modules. In addition, the software and hardware details of the Ethereum® protocol implementation are not described here in detail since the Ethereum® protocol provides tutorials for implementing the associated routines (see, for example, the website of the Ethereum® project at https://www.ethereum.org/).
  • FIG. 3 is a particular embodiment of the invention for the proprietary files dedicated to additive printers.
  • the system comprises a file host 16 and a central server 18. It further comprises a machine associated with a 3D printer, hereinafter referred to as a printing press 17.
  • This printing works 17 acts as a file client insofar as it securely retrieves the proprietary file of the file host.
  • the system also includes a machine requesting the printing of a proprietary file by the printing press 17, hereinafter referred to as the file client 17 '.
  • the printer 17 and the client 17 'file form a particular file client consisting of two entities that can exchange through the blockchain.
  • the proprietary computer files are therefore 3D printing files.
  • a system according to the embodiment of FIG. 3 not only makes it possible to secure the transfer of a file from a file server to a file client, but it also makes it possible to provide the client with files with information on the quality. printing the part corresponding to the file server by sharing a print log as explained below.
  • the dashed arrows represent steps of the method according to the invention implementing the blockchain 9 and the dotted arrows represent steps of the method according to the invention implementing the secure transmission channel 10.
  • the steps E1 to E10 concentrated on the right-hand part of the figure, are the steps implemented to transfer a proprietary file from the file host 16 to the printing press 17.
  • Steps ⁇ to ⁇ 1, concentrated on the left-hand side of the figure are the steps implemented to use the computer file by the file client 17 'which is characterized by the printing of a 3D part by the printing press 17.
  • the minor module 11 is not shown for clarity. This module is hosted by the central server 18. Also, in the description of FIG. 3, the validation of the transactions is carried out by the central server 18. According to other embodiments, the validation can be carried out by another module of FIG. another node configured to mine transactions.
  • This transaction consists, according to the preferred embodiment of the invention, of executing a method associated with an intelligent contract of the blockchain 9.
  • the central server 18, which regularly polls the state of the smart contract, acknowledges receipt of the request by writing the message. corresponding transaction in the blockchain 9.
  • the central server 18 receives a request through the secure transmission channel 10 so that it does not have to regularly check the state of the blockchain contract. It then acknowledges receipt of this request by writing a transaction in the blockchain.
  • Step E2 The central server 18 informs the host 16 of files via the secure transmission channel 10 that a request has been issued by the printing house 17.
  • the file host 16 and the server 18 central office are one and the same machine, in which case step E2 is not necessary.
  • the information passes through the blockchain 9, in which case the file host 16 must have the same functionality as the central server.
  • Step E3 The file host 16 writes a transaction in blockchain 9 by updating intelligent contract data and providing a key representative of a unique and valid address only once of the required file.
  • said file host 16 creates the corresponding uniform resource locator (better known by the acronym URL for Uniform Resource Locator) which is accessible only by the print shop 17.
  • the transaction is validated by the central server 18 .
  • Step E4 The printing house 17 scrutinizes the state of the smart contract. As soon as the transaction has been validated by the central server 18 and the key representative of the address of the file is detected, the printer determines the address of the file.
  • Step E5 The printer 17 retrieves the file from the file host 16 via the secure transmission channel 10.
  • Step E6 The printing press 17 confirms the beginning of the downloading of the file by the writing of a transaction in the blockchain 9, which is validated by the central server 18.
  • Step E7 The file host 16 confirms the start of the download by writing a transaction in blockchain 9, which is validated by the central server 18.
  • Step E8 The printer 17 completes the download of the file from the file host 16.
  • Step E9 The printer 17 updates the status of the smart contract and confirms that the file has been recovered. The corresponding transaction is validated by the central server 18.
  • Step E10 The file hosting server 16 confirms the end of the transmission of the file and the central server 18 validates the transaction.
  • the client 17 'of files must then start the printing operation of the file. To do this, the following steps are implemented:
  • Step El ' The file client 17' sends a request to print the file by the print shop 17. This request takes the form of a transaction in the blockchain 9 which is validated by the central server 18.
  • Step E2 ' The central server 18 detects the request in the blockchain 9 and notifies it to the printing press 17 via the secure transmission channel 10. According to another embodiment, the request is notified by the secure transmission channel 10 and the server 18 verifies its validity by reading the transaction in the blockchain.
  • Step E3 ' The printing office notifies the validity of the request by writing a transaction in blockchain 9, which is validated by the central server 18.
  • Step E4 ' The client 17' reads the response by reading a transaction in the blockchain 9 and creates a URL.
  • Step E5 ' The client 17' confirms the beginning of the printing of the file.
  • Step E6 ' Client 17' performs a transaction in blockchain 9 to confirm the start of printing.
  • the transaction is validated by the central server 18.
  • Step E7 ' The printing house 17 reads the confirmation transaction in the blockchain 9 and acknowledges receipt by writing a corresponding transaction in the blockchain 9.
  • the transaction is validated by the central server 18.
  • Step E8 ' When the printing house 17 has finished printing the file, it performs a transaction in the blockchain 9 to provide a key representative of a download URL of a print log. This print log (better known as the print log) provides print quality data. The printing office 17 then creates the corresponding URL. The transaction is validated by the central server 18.
  • Step E9 ' The central server 18 reads the key representative of the URL in the blockchain 9 and determines the corresponding address.
  • Step E10 ' The central server 18 begins downloading the print log and notifies it in the blockchain 9 by writing a transaction.
  • the transaction is validated by the central server 18 (or by any module configured to undermine the transactions).
  • Step ⁇ 1 When the central server 18 has finished downloading the print log, it notifies it in the blockchain by writing a corresponding transaction. The transaction is validated by the central server 18 (or by any module configured to undermine the transactions).
  • a system and method according to this embodiment thus makes it possible not only to secure the transfer of a proprietary file of a proprietary file host to an additive printer, to identify and trace the use made of the proprietary file, and also to provide information on the quality of the printing of the piece.
  • a system according to the invention is not limited solely to the described embodiments.
  • a system and a method according to the invention can be implemented for other applications than those described in connection with additive printing.
  • the invention can be implemented works for all applications requiring secure transfer and traceable use of proprietary computer files.

Abstract

The invention relates to a system and method for secure transfer and identified and traceable use of computer files between a machine hosting proprietary computer files, known as a file host (6), and a machine requesting the receipt and use of at least one of said proprietary computer files, known as a file client (7), said machines being connected to a network, said private machine network (5) comprising at least one central server (8) and a database formed of a chain of ordered blocks, known as a blockchain (9), distributed on the private network (5) and associated with a write-read protocol and cryptographic validation of transactions performed on the private network, said file host (6) and said file client (7) being further connected to each other by a secure transmission channel dedicated to the transfer of proprietary computer files.

Description

SYSTÈME ET PROCÉDÉ DE TRANSFERT SÉCURISÉ ET D'UTILISATION IDENTIFIÉE ET TRAÇABLE DE FICHIERS  SYSTEM AND METHOD FOR SECURE TRANSFER AND IDENTIFIED AND TRACEABLE USE OF FILES
INFORMATIQUES PROPRIÉTAIRES  COMPUTER OWNERS
1. Domaine technique de l'invention 1. Technical field of the invention
Le domaine technique de l'invention est celui des systèmes et procédés de sécurisation des échanges de données entre deux machines. L'invention concerne plus particulièrement un système et un procédé de transfert sécurisé et d'utilisation traçable de fichiers informatiques propriétaires. 2. Arrière-plan technologique The technical field of the invention is that of systems and methods for securing the exchange of data between two machines. The invention more particularly relates to a system and a method for secure transfer and traceable use of proprietary computer files. 2. Technological background
Dans tout le texte, un fichier informatique propriétaire désigne un ensemble de codes numériques adapté pour pouvoir être directement ou indirectement interprété par une machine, tel qu'un ordinateur, une machine à commande numérique, une machine de fabrication additive, et d'une manière générale toute machine équipée d'un microprocesseur. Le fichier informatique est dit propriétaire dès lors que le créateur du fichier ou son ayant droit entend contrôler l'accès et l'utilisation du fichier. Un tel fichier informatique propriétaire est par exemple un logiciel destiné à être installé et exécuté sur un ordinateur, un fichier d'impression destiné à une machine de fabrication additive, telle qu'une imprimante 3D, un fichier image, un fichier vidéo, un fichier textuel, etc.  Throughout the text, a proprietary computer file designates a set of digital codes adapted to be directly or indirectly interpreted by a machine, such as a computer, a numerically controlled machine, an additive manufacturing machine, and in a manner general any machine equipped with a microprocessor. The computer file is said to be proprietary since the creator of the file or his trustee intends to control access and use of the file. Such a proprietary computer file is for example a software intended to be installed and executed on a computer, a printing file intended for an additive manufacturing machine, such as a 3D printer, an image file, a video file, a file textual, etc.
Aujourd'hui, la plupart des opérations de transfert de fichiers informatiques entre deux parties se fait de manière directe par exemple par un envoi d'un email d'une partie à l'autre, ou par une mise à disposition du fichier sur un serveur FTP ou tout moyen équivalent. Afin de sécuriser le transfert d'un fichier informatique, ce dernier est crypté avec une clé qui est connue de chaque partie pour pouvoir chiffrer et déchiffrer le fichier. Ce procédé simple confère au fichier une protection contre un accès frauduleux par un tiers et dont le niveau de sécurité est étroitement lié au type de clé utilisée et à son mode de sauvegarde. En revanche, ce procédé simple ne permet pas de tracer l'utilisation qui est faite du fichier une fois ce dernier reçu par l'une des parties. En outre, il ne fournit pas de moyen de preuve tangible que le transfert a bien eu lieu. Today, most of the computer file transfer operations between two parties is done directly, for example by sending an email from one party to another, or by making the file available on a server. FTP or any equivalent means. In order to secure the transfer of a computer file, it is encrypted with a key that is known to each party to encrypt and decrypt the file. This simple method gives the file protection against fraudulent access by a third party whose security level is closely related to the type of key used and its backup mode. On the other hand, this simple process does not make it possible to trace the use that is made of the file once received by one of the parties. Moreover, it does not provide any tangible evidence that the transfer took place.
L'émergence des technologies d'impression additive, plus communément désignées d'impression 3D, impose la mise en place de nouveaux procédés de sécurisation des transferts de données.  The emergence of additive printing technologies, more commonly known as 3D printing, requires the implementation of new methods of securing data transfers.
En particulier, un objet 3D peut être associé à une variété de droits de propriété intellectuelle (protection de la forme de l'objet par un modèle, protection de la fonctionnalité de l'objet par un brevet, protection de l'originalité de l'objet par un droit d'auteur, protection du signe formé par l'objet par une marque tridimensionnelle, etc.).  In particular, a 3D object can be associated with a variety of intellectual property rights (protection of the form of the object by a model, protection of the functionality of the object by a patent, protection of the originality of the object by a copyright, protection of the sign formed by the object by a three-dimensional mark, etc.).
Il est donc nécessaire pour favoriser l'émergence de ces technologies et d'une manière générale pour favoriser toutes les technologies ayant recours à des fichiers informatiques propriétaires, de disposer d'une solution qui permette de sécuriser le transfert d'un fichier informatique propriétaire d'une partie à une autre, et qui puisse garantir que les droits de propriété intellectuelle sont bien respectés.  It is therefore necessary to promote the emergence of these technologies and generally to favor all technologies using proprietary computer files, to have a solution that makes it possible to secure the transfer of a proprietary computer file. party to another, and who can guarantee that intellectual property rights are respected.
Le document de brevet EP2757736 dédié aux fichiers d'impression 3D propose de ne pas transmettre les fichiers d'impression en tant que tel mais de ne transmettre que les instructions de commande de l'imprimante 3D (connues par exemple sous la dénomination de G-codes), ces instructions étant elles mêmes cryptées avec une clé connue seulement de l'imprimante 3D considérée. Ainsi, le contenu du fichier d'impression ne circule pas sur le réseau et seules les instructions de commande de la machine sont transmises d'un serveur à la machine, ce qui permet d'éviter une interception du fichier d'impression. En d'autres termes, la solution proposée par EP2757736 permet d'éviter qu'un tiers puisse récupérer le fichier source de l'objet à imprimer.  Patent document EP2757736 dedicated to 3D printing files proposes not to transmit the print files as such but to transmit only the control instructions of the 3D printer (known for example under the name of G- codes), these instructions being themselves encrypted with a key known only to the 3D printer considered. Thus, the content of the print file does not circulate on the network and only the machine control instructions are transmitted from a server to the machine, which avoids interception of the print file. In other words, the solution proposed by EP2757736 makes it possible to prevent a third party from recovering the source file of the object to be printed.
En revanche, cette solution ne permet pas de garantir que seul un exemplaire de la pièce sera produit à partir des instructions de commande. En effet, à partir du moment où les commandes sont reçues par l'imprimante 3D, rien n'empêche de fabriquer une pluralité de pièces à partir des instructions de commande de la machine. En d'autres termes, si la solution proposée semble autoriser la sécurisation des données à l'égard de tiers, elle ne permet pas au titulaire d'un droit sur l'objet à imprimer de vérifier l'utilisation faite des instructions transmises à l'imprimante. En particulier, la solution proposée ne permet pas de tracer l'utilisation des commandes d'instruction de l'imprimante 3D. However, this solution does not guarantee that only a copy of the piece will be produced from the order instructions. Indeed, from the moment the commands are received by the 3D printer, nothing prevents the manufacture of a plurality of parts from the control instructions of the machine. In other words, if the proposed solution seems to authorize the securing of the data with regard to third parties, it does not allow the holder of a right on the object to be printed to check the use made of the instructions transmitted to the printer. In particular, the proposed solution does not make it possible to trace the use of the instruction commands of the 3D printer.
Il est donc primordial pour favoriser l'émergence de ces technologies d'impression additive, et d'une manière générale pour favoriser toutes les technologies ayant recours à des fichiers informatiques propriétaires, de disposer d'une solution qui permette de sécuriser le transfert d'un fichier informatique d'une partie à une autre, de garantir que ce transfert a bien eu lieu, et de tracer l'utilisation faite du fichier transféré.  It is therefore essential to promote the emergence of these additive printing technologies, and generally to favor all technologies using proprietary computer files, to have a solution that makes it possible to secure the transfer of a computer file from one party to another, to guarantee that this transfer has taken place, and to trace the use made of the transferred file.
3. Objectifs de l'invention  3. Objectives of the invention
L'invention vise à fournir un procédé et un système de transfert sécurisé de fichiers informatiques propriétaires qui pallient au moins certains des inconvénients des solutions connues.  The aim of the invention is to provide a method and system for the secure transfer of proprietary computer files that overcomes at least some of the disadvantages of known solutions.
L'invention vise en particulier à fournir, dans au moins un mode de réalisation, un procédé et un système de transfert sécurisé de fichiers informatiques qui permettent de suivre et de tracer l'utilisation qui est faite du fichier informatique transféré.  The invention aims in particular to provide, in at least one embodiment, a method and a system for secure transfer of computer files that track and trace the use that is made of the transferred computer file.
L'invention vise aussi à fournir, dans au moins un mode de réalisation, un procédé et un système de transfert de fichiers informatiques qui garantissent une inviolabilité des fichiers.  The invention also aims to provide, in at least one embodiment, a method and a system for transferring computer files that guarantee the inviolability of the files.
L'invention vise aussi à fournir, dans au moins un mode de réalisation, un procédé et un système de transfert de fichiers informatiques qui garantissent inaltération des fichiers transmis.  The invention also aims to provide, in at least one embodiment, a method and a system for transferring computer files that guarantee inalterability of the transmitted files.
L'invention vise aussi à fournir, dans au moins un mode de réalisation, un procédé et un système de transfert de fichiers informatiques qui permettent d'authentifier chacune des parties impliquées dans l'opération de transfert.  The invention also aims to provide, in at least one embodiment, a method and a system for transferring computer files that make it possible to authenticate each of the parties involved in the transfer operation.
L'invention vise aussi à fournir, dans au moins un mode de réalisation, un procédé et un système de transfert de fichiers informatiques qui fournissent une information sur la qualité de l'utilisation du fichier transféré, et notamment une qualité de l'impression 3D dans le cas d'un fichier informatique propriétaire destiné à une imprimante 3D. The invention also aims to provide, in at least one embodiment, a method and a system for transferring computer files that provide information on the quality of the use of the transferred file, including a quality of 3D printing in the case of a proprietary computer file for a 3D printer.
4. Exposé de l'invention 4. Presentation of the invention
Pour ce faire, l'invention concerne un système de transfert sécurisé et d'utilisation identifiée de fichiers informatiques entre au moins une machine hébergeant lesdits fichiers informatiques propriétaires, dite hébergeur de fichiers, et au moins une machine sollicitant la réception et l'utilisation d'au moins un desdits fichiers informatiques propriétaires, dite client de fichiers, ledit système comprenant :  To do this, the invention relates to a secure transfer system and identified use of computer files between at least one machine hosting said proprietary computer files, said file host, and at least one machine requesting the reception and use of computer files. at least one of said proprietary computer files, said file client, said system comprising:
- un réseau de machines, dit réseau privé, comprenant au moins chaque hébergeur de fichiers, chaque client de fichiers, et un serveur central,  a network of machines, said private network, comprising at least each file host, each client of files, and a central server,
- une base de données formée d'une chaîne de blocs ordonnés, dite blockchain, distribuée sur le réseau privé et associée à un protocole d'écriture/lecture et de validation crypto graphique de transactions effectuées sur le réseau privé,  a database formed of an ordered blockchain block chain distributed on the private network and associated with a crypto-graphic write / read protocol for transactions carried out on the private network,
- un canal de transmission sécurisé reliant lesdites machines du réseau privé entre elles,  a secure transmission channel connecting said machines of the private network to each other,
- un module blockchain hébergé par chaque machine du réseau privé et configuré pour pouvoir lire/écrire des transactions dans ladite blockchain de manière à pouvoir interagir avec les autres machines par le biais de la blockchain pour autoriser le transfert des fichiers propriétaires de l'hébergeur de fichiers vers le client de fichiers si des conditions prédéterminées de transfert sont remplies et pour suivre l'utilisation faite par ledit client de fichiers des fichiers propriétaires transférés,  a blockchain module hosted by each machine of the private network and configured to be able to read / write transactions in said blockchain so as to be able to interact with the other machines via the blockchain to authorize the transfer of the proprietary files of the hosting provider; files to the file client if predetermined transfer conditions are met and to track the use made by said file client of the transferred proprietary files,
- un module applicatif hébergé par chaque machine du réseau privé et configuré pour pouvoir assurer le transfert des fichiers propriétaires de l'hébergeur de fichiers vers le client de fichiers par le biais du canal de transmission sécurisé si lesdites conditions prédéterminées de transfert sont enregistrées dans ladite blockchain. an application module hosted by each machine of the private network and configured to be able to transfer files from the file hosting proprietor to the file client via the secure transmission channel if said predetermined conditions transfer are recorded in said blockchain.
Un système selon l'invention comprend donc un réseau, dit réseau privé, qui héberge de manière distribuée une base de données formée d'une chaîne de blocs ordonnés, et associée à un protocole d'écriture/lecture et de validation cryptographique de transactions effectuées sur le réseau privé. Une telle base de données est plus connue sous sa dénomination anglaise de blockchain, qui est utilisée dans toute la suite.  A system according to the invention therefore comprises a network, said private network, which distributes a database consisting of an ordered block of blocks, and associated with a write / read protocol and cryptographic validation of transactions carried out. on the private network. Such a database is better known by its English name blockchain, which is used throughout.
Une blockchain forme ainsi un registre de transactions, répliqué sur une ou plusieurs machines du réseau privé reliées entre elles par un réseau pair à pair. Ces machines constituent des nœuds du réseau privé et la communication entre les nœuds est cryptée et garantit l'identité de l'expéditeur et du destinataire. Quand un nœud veut ajouter une nouvelle transaction au registre, il le propose au réseau qui forme un consensus pour déterminer où et quand cette transaction doit être inscrite dans le registre. Ce consensus constitue un bloc. En pratique, un bloc regroupe plusieurs transactions.  A blockchain thus forms a transaction register, replicated on one or more machines of the private network interconnected by a peer-to-peer network. These machines are nodes of the private network and the communication between the nodes is encrypted and guarantees the identity of the sender and the recipient. When a node wants to add a new transaction to the registry, it proposes it to the network that forms a consensus to determine where and when that transaction is to be registered in the registry. This consensus is a block. In practice, a block groups several transactions.
Selon l'invention, la blockchain est utilisée pour répertorier toutes les transactions entre les différentes machines du réseau privé, et notamment entre au moins une machine qui héberge des fichiers propriétaires (l'hébergeur de fichiers), au moins une machine qui sollicite l'utilisation d'un fichier propriétaire (le client de fichiers) et une machine qui pilote le système (le serveur central). La blockchain permet de garantir que le fichier a été envoyé par l'hébergeur de fichiers et reçu par le client de fichiers. En outre, chaque utilisation du fichier par le client de fichiers est retranscrite dans la blockchain, ce qui permet d'identifier et de tracer l'utilisation qui est faite du fichier propriétaire transmis.  According to the invention, the blockchain is used to list all the transactions between the different machines of the private network, and in particular between at least one machine that hosts proprietary files (the file host), at least one machine that requests the using a proprietary file (the file client) and a machine that controls the system (the central server). The blockchain ensures that the file has been sent by the file host and received by the file client. In addition, each use of the file by the file client is retranscribed in the blockchain, which makes it possible to identify and trace the use made of the transmitted proprietary file.
La particularité de l'invention est aussi de recourir à un canal de transmission sécurisé qui relie les machines entre elles et notamment l'hébergeur de fichiers et le client de fichiers pour assurer le transfert sécurisé en tant que tel des fichiers informatiques propriétaires.  The particularity of the invention is also to use a secure transmission channel which connects the machines together and in particular the file host and the file client to ensure secure transfer as such proprietary computer files.
En d'autres termes, la blockchain et les modules blockchain des différentes machines du réseau privé permettent d'organiser le transfert d'un fichier informatique propriétaire, de vérifier que le transfert a bien eu lieu et de tracer l'utilisation faite du fichier, une fois transféré, mais le transfert en tant que tel s'effectue par le canal de transmission sécurisé, qui est donc piloté par le serveur central et la blockchain. C'est seulement lorsque les conditions prédéterminées de transfert sont enregistrées et lues dans la blockchain que le transfert physique du fichier par le canal de transmission sécurisé s'effectue. Une fois le transfert effectué, la blockchain enregistre la confirmation du transfert. In other words, the blockchain and the blockchain modules of the different machines of the private network make it possible to organize the transfer of a proprietary computer file, to verify that the transfer has indeed taken place and to trace the use made of the file, once transferred, but the transfer as such is done through the secure transmission channel, which is controlled by the central server and the blockchain. It is only when the predetermined transfer conditions are recorded and read in the blockchain that the physical transfer of the file by the secure transmission channel takes place. Once the transfer is made, the blockchain records the confirmation of the transfer.
Les opérations d'écriture et de lecture dans la blockchain par les machines du réseau privé sont réalisées par le biais des modules blockchain hébergés par les machines et configurés pour pouvoir interagir avec la blockchain.  The operations of writing and reading in the blockchain by the machines of the private network are carried out by means of blockchain modules hosted by the machines and configured to interact with the blockchain.
Selon un mode préférentiel de réalisation, au moins un module forme un module mineur configuré pour valider chaque transaction d'écriture/lecture dans la blockchain. En d'autres termes, c'est ce module mineur qui forme le consensus et qui valide les blocs et les impose à l'ensemble des machines du réseau.  According to a preferred embodiment, at least one module forms a minor module configured to validate each write / read transaction in the blockchain. In other words, it is this minor module that forms the consensus and validates the blocks and imposes them on all the machines in the network.
Dans tout le texte, et sauf mention contraire, le terme « mineur » fait référence à l'action de « minage », c'est à dire à l'opération de validation des blocs de la blockchain et à la synchronisation des différentes copies de la blockchain sur le réseau privé.  Throughout the text, and unless otherwise stated, the term "minor" refers to the action of "mining", that is to say the blockchain block validation operation and the synchronization of the different copies of the blockchain. the blockchain on the private network.
Les opérations de transfert des fichiers par le canal de transmission sécurisé sont réalisées par le biais des modules applicatifs hébergés par les machines.  File transfer operations via the secure transmission channel are performed through application modules hosted by the machines.
Dans tout le texte, on désigne par module, un élément logiciel, un sous- ensemble d'un programme logiciel, pouvant être compilé séparément, soit pour une utilisation indépendante, soit pour être assemblé avec d'autres modules d'un programme, ou un élément matériel, ou une combinaison d'un élément matériel et d'un sous-programme logiciel. Un tel élément matériel peut comprendre un circuit intégré propre à une application (plus connu sous l'acronyme ASIC pour la dénomination anglaise Application-Specific Integrated Circuit) ou un circuit logique programmable (plus connu sous l'acronyme FPGA pour la dénomination anglaise Field-Programmable Gâte Array) ou un circuit de microprocesseurs spécialisés (plus connu sous l'acronyme DSP pour la dénomination anglaise Digital Signal Processor) ou tout matériel équivalent. D'une manière générale, un module est donc un élément (logiciel et/ou matériel) qui permet d'assurer une fonction. Throughout the text, the term "module" denotes a software element, a subset of a software program that can be compiled separately, either for independent use, or to be assembled with other modules of a program, or a hardware element, or a combination of a hardware element and a software subprogram. Such a hardware element may comprise an application-specific integrated circuit (ASIC) or a programmable logic circuit (FPGA) for the English name Field- Programmable Gâte Array) or a specialized microprocessor circuit (better known by the acronym DSP for the English name Digital Signal Processor) or any equivalent hardware. In general, a module is therefore an element (software and / or hardware) that ensures a function.
L'invention concerne également un procédé de transfert sécurisé et d'utilisation identifiée (on parle également dans tout le texte d'utilisation traçable) de fichiers informatiques entre au moins une machine hébergeant des fichiers informatiques propriétaires, dite hébergeur de fichiers, et au moins une machine sollicitant la réception et l'utilisation d'au moins un desdits fichiers informatiques propriétaires, dit client de fichiers, lesdites machines étant reliées à un réseau de machines, dit réseau privé, comprenant au moins un serveur central et une base de données formée d'une chaîne de blocs ordonnés, dite blockchain, distribuée sur le réseau privé et associée à un protocole d'écriture/lecture et de validation cryptographique de transactions effectuées sur ledit réseau privé, lesdites machines étant en outre reliées entre elles par un canal de transmission sécurisé.  The invention also relates to a secure transfer method and identified use (we also speak throughout the text traceable use) of computer files between at least one machine hosting proprietary computer files, said file host, and at least a machine requesting the reception and use of at least one of said proprietary computer files, said file client, said machines being connected to a network of machines, said private network, comprising at least one central server and a database formed an ordered blockchain block chain, distributed on the private network and associated with a write / read and cryptographic validation protocol for transactions carried out on said private network, said machines being further connected to each other by a transmission channel; secure transmission.
Le procédé selon l'invention comprend au moins les étapes suivantes :  The method according to the invention comprises at least the following steps:
- un client de fichiers requiert le transfert d'un fichier propriétaire par une écriture d'une transaction correspondante dans ladite blockchain,  a file client requires the transfer of a proprietary file by a writing of a corresponding transaction in said blockchain,
- ledit serveur central détermine la validité de la requête et informe, en cas de requête valide, ledit hébergeur de fichiers hébergeant ledit fichier requis par ledit client de fichiers,  said central server determines the validity of the request and informs, in the event of a valid request, said file host hosting said file requested by said file client,
- ledit hébergeur de fichiers fournit audit client de fichiers une clé représentative de l'adresse du fichier requis par une opération d'écriture d'une transaction correspondante dans ladite blockchain, said file host provides said file client with a key representative of the file address required by a write operation of a corresponding transaction in said blockchain,
- ledit client de fichiers récupère ledit fichier propriétaire à ladite adresse du fichier requis auprès dudit hébergeur de fichiers par le biais dudit canal de transmission sécurisé, said file client retrieves said proprietary file from said requested file address from said file host via said secure transmission channel,
- ledit client de fichiers notifie l'utilisation du fichier propriétaire récupéré par l'écriture d'une transaction correspondante dans ladite blockchain, et utilise ledit fichier propriétaire avec une application dédiée.  said file client notifies the use of the proprietary file retrieved by writing a corresponding transaction in said blockchain, and uses said proprietary file with a dedicated application.
Un procédé selon l'invention est avantageusement mis en œuvre par un système selon l'invention et un système selon l'invention met avantageusement en œuvre un procédé selon l'invention. A method according to the invention is advantageously implemented by a system according to the invention and a system according to the invention advantageously implements a method according to the invention.
Un procédé selon l'invention permet donc d'organiser et de contrôler le transfert de fichiers propriétaires entre un hébergeur de fichiers propriétaires et un client de fichiers.  A method according to the invention thus makes it possible to organize and control the transfer of proprietary files between a proprietary file host and a file client.
Avantageusement et selon l'invention, le protocole d'écriture/lecture et de validation cryptographique de transactions met en œuvre au moins un module, dit module mineur, configuré pour pouvoir valider les transactions d'écriture/lecture dans ladite blockchain.  Advantageously and according to the invention, the transaction write / read and cryptographic validation protocol implements at least one module, called a minor module, configured to be able to validate the write / read transactions in said blockchain.
Selon ce mode de réalisation, chaque étape d'écriture d'une transaction dans la blockchain est suivie d'une étape de validation de la transaction par le module mineur. Ce module mineur peut être hébergé par une machine dédiée à la validation des transactions ou peut être hébergé par une machine du réseau privé, par exemple par un client de fichiers, et/ou par le serveur central. Selon une variante de l'invention, plusieurs modules mineurs sont utilisés en parallèle pour augmenter la puissance de calcul et la rapidité de mise en œuvre du procédé.  According to this embodiment, each step of writing a transaction in the blockchain is followed by a step of validating the transaction by the minor module. This minor module can be hosted by a machine dedicated to the validation of transactions or can be hosted by a machine of the private network, for example by a file client, and / or by the central server. According to a variant of the invention, several minor modules are used in parallel to increase the computing power and the speed of implementation of the method.
Comme indiqué précédemment, le terme « mineur » fait référence à l'action de « minage », c'est à dire à l'opération de validation des blocs de la blockchain et à la synchronisation des différentes copies de la blockchain sur le réseau privé.  As mentioned above, the term "minor" refers to the "mining" action, ie the blockchain block validation operation and the synchronization of the different copies of the blockchain on the private network. .
Avantageusement et selon l'invention, ledit protocole d'écriture/lecture et de validation cryptographique de transactions effectuées sur ledit réseau privé de ladite blockchain est le protocole Ethereum® mettant en œuvre des entités programmables, dits contrats intelligents, associés chacun à une structure de données et à des méthodes de modification de ces données, de sorte qu'une écriture d'une transaction dans ladite blockchain est une modification d'au moins une desdites données associée à un contrat intelligent obtenue par une exécution d'une desdites méthodes associées à un contrat intelligent.  Advantageously and according to the invention, said write / read protocol and cryptographic validation of transactions performed on said private network of said blockchain is Ethereum® protocol implementing programmable entities, called smart contracts, each associated with a structure of data and methods for modifying these data, so that a writing of a transaction in said blockchain is a modification of at least one of said data associated with an intelligent contract obtained by executing one of said methods associated with a smart contract.
Selon cette variante avantageuse, l'utilisation de contrats intelligents du protocole Ethereum® permet d'initialiser un contrat dans la blockchain pour chaque fichier informatique propriétaire à transférer d'un hébergeur de fichiers vers un client de fichiers. L'initialisation du contrat est effectuée par le client de fichiers par l'exécution d'une méthode d'initialisation de contrat. Cette méthode de création de contrat fournit une identification du fichier sollicité, une adresse de l'hébergeur de fichiers qui détient le fichier souhaité, un montant en crypto monnaie, désignée par le terme Ether dans le protocole Ethereum®, et le nombre de copies souhaitées. Par la suite, tous les échanges entre le client de fichiers et l'hébergeur concernant ce fichier informatique propriétaire se font par la mise à jour (ou modification) du contrat correspondant. According to this advantageous variant, the use of Ethereum® protocol smart contracts makes it possible to initialize a contract in the blockchain for each proprietary computer file to be transferred from a file host. to a file client. The contract is initialized by the file client by executing a contract initialization method. This contract creation method provides an identification of the requested file, a file host address that holds the desired file, an amount in crypto currency, designated Ether in the Ethereum® protocol, and the number of copies desired. . Subsequently, all the exchanges between the file client and the host concerning this proprietary computer file are done by updating (or modifying) the corresponding contract.
Avantageusement et selon l'invention, ladite blockchain est initialisée en fournissant dans un premier bloc, dit bloc genesis, une liste prédéterminée d'identifiants, chaque identifiant, dit adresse, étant déterminé à partir d'une clé numérique privée et destiné à désigner une machine du réseau.  Advantageously and according to the invention, said blockchain is initialized by providing in a first block, called block genesis, a predetermined list of identifiers, each identifier, said address, being determined from a private digital key and intended to designate a network machine.
Selon cette variante, chaque client de fichiers se voit attribuer un identifiant prédéfini dans le bloc genesis de la blockchain. Le module blockchain hébergé par le client de fichiers est alors paramétré avec l'identifiant prédéfini dans le bloc genesis de la blockchain.  According to this variant, each file client is assigned a predefined identifier in the genesis block of the blockchain. The blockchain module hosted by the file client is then set with the predefined identifier in the genesis block of the blockchain.
Avantageusement et selon l'invention, chaque clé numérique privée associée à une adresse enregistrée dans ledit bloc genesis est obtenue à partir d'une même clé racine prédéterminée et d'une fonction de dérivation prédéterminée.  Advantageously and according to the invention, each private digital key associated with an address registered in said genesis block is obtained from the same predetermined root key and a predetermined derivation function.
Selon cette variante avantageuse, la sécurité cryptographique du système et du procédé selon l'invention repose sur une unique clé racine prédéterminée. Ainsi, dès que les clés numériques privées sont générées et que les identifiants des machines sont obtenus, il est possible de supprimer les clés numériques privées et de ne conserver en lieu sûr que la clé racine. En effet, en cas de perte des identifiants, il est toujours possible avec un système et un procédé selon l'invention, de les retrouver en accédant à la clé racine et à la fonction de dérivation prédéterminée.  According to this advantageous variant, the cryptographic security of the system and method according to the invention is based on a single predetermined root key. Thus, as soon as the private digital keys are generated and the identifiers of the machines are obtained, it is possible to delete the private digital keys and keep in a safe place only the root key. Indeed, in case of loss of identifiers, it is always possible with a system and a method according to the invention to find them by accessing the root key and the predetermined derivation function.
Par exemple, chaque clé numérique privée est obtenue à partir d'une clé 128 bits et d'un algorithme de dérivation du type HKDF pour la dénomination anglaise Hashed Message Authentication Code (HMAC) Key Dérivation Function. For example, each private numeric key is obtained from a 128-bit key and a derivation algorithm of the HKDF type for the English name Hashed Message Authentication Code (HMAC) Key Derivation Function.
Avantageusement et selon l'invention, chaque adresse est associée à un montant aléatoire supérieur à un seuil prédéterminé de crypto monnaie pour permettre à chaque machine d'effectuer des transactions sur ladite blockchain.  Advantageously and according to the invention, each address is associated with a random amount greater than a predetermined threshold of crypto currency to allow each machine to perform transactions on said blockchain.
En particulier, le protocole Ethereum® fonctionne avec une crypto monnaie, ou monnaie virtuelle, désignée Ether, qui a pour fonction de payer l'exécution des contrats intelligents, dont le fonctionnement peut consommer des ressources importantes. Dans le protocole Ethereum®, l'Ether sert à obtenir du « gas » (de l'essence) pour faire fonctionner les contrats. L'Ether permet également de récompenser les nœuds qui permettent de valider les blocs de la blockchain.  In particular, the Ethereum® protocol works with a cryptocurrency, or virtual currency, designated Ether, whose function is to pay for the execution of smart contracts, the operation of which can consume significant resources. In the Ethereum® protocol, the Ether is used to obtain "gas" (gasoline) to make the contracts work. The Ether also allows to reward the nodes that allow to validate the blocks of the blockchain.
Pour pallier cet aspect inhérent à l'utilisation du protocole Ethereum®, mais qui est sans objet pour l'invention, l'invention prévoit d'attribuer un montant important d'Ether à chaque machine du réseau de telle sorte qu'elles peuvent toujours interagir avec la blockchain et ne retrouvent jamais sans « gas ».  To overcome this aspect inherent in the use of the Ethereum® protocol, but which is not applicable to the invention, the invention provides for allocating a large amount of Ether to each machine of the network so that they can always interact with the blockchain and never find without "gas".
Avantageusement et selon l'invention, au moins ledit serveur central est un nœud mineur du réseau privé configuré pour pouvoir valider chaque bloc de la blockchain.  Advantageously and according to the invention, at least said central server is a minor node of the private network configured to be able to validate each block of the blockchain.
Avantageusement et selon l'invention, ledit serveur central est également un hébergeur de fichiers propriétaires.  Advantageously and according to the invention, said central server is also a host of proprietary files.
Selon cette variante, c'est le serveur central qui fournit les fichiers propriétaires aux clients de fichier. Selon une autre variante, les hébergeurs de fichiers sont distincts du serveur central dont le rôle se limite alors à administrer la blockchain.  According to this variant, it is the central server that provides the proprietary files to the file clients. According to another variant, the file hosts are separate from the central server whose role is then limited to administering the blockchain.
Avantageusement et selon l'invention, ledit canal de transmission sécurisé met en œuvre un protocole de sécurisation des échanges de données permettant une authentification de chaque machine, et notamment du client de fichiers et dudit hébergeur de fichiers lors du transfert d'un fichier propriétaire.  Advantageously and according to the invention, said secure transmission channel implements a data exchange security protocol allowing authentication of each machine, and in particular the file client and said file host during the transfer of a proprietary file.
Un tel protocole de sécurisation des échanges de données est par exemple le protocole connu sous l'acronyme TLS (pour la dénomination anglaise Transport Loyer Security) ou le protocole connu sous l'acronyme SFTP (pour la dénomination anglaise Secure File Transfer Protocol). Such a protocol for securing data exchanges is for example the protocol known by the acronym TLS (for the English name Transport Loyer Security) or the protocol known by the acronym SFTP (for the English name Secure File Transfer Protocol).
Avantageusement et selon l'invention, lesdits fichiers informatiques propriétaires sont des fichiers d'impression destinés à des imprimantes additives.  Advantageously and according to the invention, said proprietary computer files are printing files intended for additive printers.
Selon cette variante avantageuse, le système et le procédé selon l'invention sécurisent le transfert de fichiers d'impression destinés à des imprimantes 3D. Un système et un procédé selon l'invention offrent donc aux titulaires de droits souhaitant transférer un fichier informatique 3D à un utilisateur autorisé la sécurité du transfert et la traçabilité de l'utilisation du fichier transféré. Par exemple, une société souhaitant fournir une pièce détachée à un client distant peut, grâce à l'invention, transférer le fichier numérique de la pièce détachée sans craindre l'utilisation frauduleuse du fichier par un tiers et tout en pouvant vérifier l'utilisation qui est faite du fichier, par consultation de la blockchain, qui est inaltérable.  According to this advantageous variant, the system and the method according to the invention secure the transfer of printing files intended for 3D printers. A system and a method according to the invention therefore offer rights holders wishing to transfer a 3D computer file to an authorized user the security of the transfer and the traceability of the use of the transferred file. For example, a company wishing to provide a spare part to a remote customer can, thanks to the invention, transfer the digital file of the spare part without fear of the fraudulent use of the file by a third party and while being able to verify the use which is made of the file, by consulting the blockchain, which is unalterable.
Selon cette variante avantageuse, l'invention peut également fournir une information sur la qualité de la pièce produite par l'imprimante par la lecture des capteurs de l'imprimante 3D. En particulier, chaque imprimante 3D dispose de capteurs permettant de contrôler et suivre la production de la pièce. La lecture des données des capteurs et l'écriture de ces données dans la blockchain fournissent à l'hébergeur de fichiers des informations sur la qualité de la pièce produite. Cela permet par exemple de vérifier que la pièce produite répond bien à des critères prédéterminés, par exemple dans le cas d'une pièce normée devant répondre à certaines spécifications. L'invention permet donc, selon cette variante, de certifier à distance la qualité des pièces produites par l'imprimante additive par la lecture des capteurs de l'imprimante 3D et la comparaison des données fournies par ces capteurs à des valeurs nominales prédéterminées.  According to this advantageous variant, the invention can also provide information on the quality of the part produced by the printer by reading the sensors of the 3D printer. In particular, each 3D printer has sensors to control and track the production of the piece. Reading sensor data and writing this data to the blockchain provides the file host with information about the quality of the part produced. This makes it possible, for example, to verify that the part produced satisfies predetermined criteria, for example in the case of a standard part having to meet certain specifications. The invention thus makes it possible, according to this variant, to remotely certify the quality of the parts produced by the additive printer by reading the sensors of the 3D printer and comparing the data supplied by these sensors with predetermined nominal values.
Avantageusement et selon cette variante, un client de fichiers qui utilise un fichier d'impression reçu avec une imprimante additive et qui le notifie par l'écriture d'une transaction correspondante dans ladite blockchain y inclut un numéro de série associé audit produit fabriqué à partir dudit fichier d'impression reçu.  Advantageously and according to this variant, a file client that uses a print file received with an additive printer and that notifies it by writing a corresponding transaction in said blockchain includes a serial number associated with said product made from of said received print file.
Ainsi, la blockchain permet de suivre la fabrication des pièces et de répertorier l'ensemble des pièces produites par l'utilisation d'un fichier propriétaire et d'associer chaque production à un numéro de série de la pièce. Thus, the blockchain makes it possible to follow the manufacture of the parts and of List all the parts produced by using a proprietary file and associate each production with a serial number of the part.
Selon d'autres variantes, au moins une ou plusieurs des informations suivantes sont enregistrées dans la blockchain : numéro de série de l'imprimante additive ayant imprimée la pièce produite ; les paramètres d'impression utilisés pendant l'impression ; des informations sur le matériel utilisé ; des informations relatives au logiciel d'impression. Bien entendu, d'autres informations peuvent également être enregistrées dans la blockchain en fonction des besoins des utilisateurs de l'invention.  According to other variants, at least one or more of the following information is recorded in the blockchain: serial number of the additive printer having printed the produced piece; Print settings used during printing information on the equipment used; information about the printer software. Of course, other information can also be recorded in the blockchain according to the needs of users of the invention.
Avantageusement et selon une autre variante de l'invention, les fichiers informatiques propriétaires sont des fichiers d'installation ou de mise à jour de logiciels propriétaires sur une machine client de fichiers.  Advantageously and according to another variant of the invention, the proprietary computer files are files for installing or updating proprietary software on a client file machine.
Selon cette variante, l'invention permet de transférer de manière sécurisée des logiciels ou des mises à jour de logiciels vers des utilisateurs autorisés. En outre, l'invention permet alors de suivre les étapes d'installation ou de mise à jour du logiciel propriétaire et de suivre et tracer le nombre d'installation ou de mise à jour effectuées avec le fichier transféré. L'ensemble des informations sont enregistrées dans la blockchain et peuvent être contrôlées par le propriétaire du fichier informatique de mise à jour du logiciel propriétaire.  According to this variant, the invention makes it possible to securely transfer software or software updates to authorized users. In addition, the invention then makes it possible to follow the steps of installation or updating of the proprietary software and to track and trace the number of installations or updates made with the transferred file. All information is stored in the blockchain and can be controlled by the owner of the computer file updating the proprietary software.
Cette variante permet par exemple d'installer des mises à jour de logiciels sur des véhicules automobiles et de déterminer le nombre de véhicules automobiles sur lesquels les mises à jour ont bien été effectuées.  This variant makes it possible, for example, to install software updates on motor vehicles and to determine the number of motor vehicles on which updates have been made.
L'invention permet donc de garantir aux titulaires de droits sur un logiciel ou sur une mise à jour d'un logiciel que le fichier est bien utilisé conformément aux accords prévus entre les différentes parties.  The invention thus makes it possible to guarantee to right holders on a software or an update of a software that the file is used in accordance with the agreements provided between the different parties.
Un procédé selon l'invention peut être mis en œuvre sous la forme d'une séquence d'instructions d'un programme informatique. Le procédé peut également être mis en œuvre sous forme matérielle ou sous une forme mixte matérielle et logicielle. Dans le cas où l'invention est implantée partiellement ou totalement sous la forme logicielle, la séquence d'instructions correspondante pourra être stockée dans un moyen de stockage amovible, tel qu'une disquette, un CD-ROM, un DVD-ROM, une clé USB, etc., ou un moyen de stockage non amovible, ces différents moyens étant lisibles partiellement ou totalement par un ordinateur ou par un microprocesseur. A method according to the invention can be implemented in the form of a sequence of instructions of a computer program. The method can also be implemented in hardware form or in a mixed hardware and software form. In the case where the invention is implemented partially or totally in the software form, the corresponding instruction sequence can be stored in a removable storage means, such as a diskette, a CD-ROM, a DVD-ROM, a USB key, etc., or a non-removable storage means, these various means being read partially or totally by a computer or a microprocessor.
L'invention concerne également un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en œuvre du procédé de transfert sécurisé et d'utilisation traçable de fichiers informatiques selon l'invention, lorsque le programme est exécuté sur un ordinateur.  The invention also relates to a computer program product downloadable from a communication network and / or recorded on a computer readable medium and / or executable by a processor, characterized in that it comprises program code instructions for the implementation of the method of secure transfer and traceable use of computer files according to the invention, when the program is executed on a computer.
L'invention concerne également un moyen de stockage lisible par ordinateur, totalement ou partiellement amovible, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur pour mettre en œuvre le procédé de transfert sécurisé et d'utilisation traçable de fichiers informatiques selon l'invention.  The invention also relates to a computer readable storage means, totally or partially removable, storing a computer program comprising a set of instructions executable by a computer for implementing the method of secure transfer and traceable use of files. computer according to the invention.
L'invention concerne également un système et un procédé caractérisés en combinaison par tout ou partie des caractéristiques mentionnées ci-dessus ou ci- après.  The invention also relates to a system and a method characterized in combination by all or some of the features mentioned above or below.
5. Liste des figures  5. List of figures
D'autres buts, caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante donnée à titre uniquement non limitatif et qui se réfère aux figures annexées dans lesquelles :  Other objects, features and advantages of the invention will become apparent on reading the following description given solely by way of non-limiting example and which refers to the appended figures in which:
- la figure 1 est une vue schématique d'un système de transfert sécurisé et d'utilisation identifiée de fichiers informatiques selon un premier mode de réalisation de l'invention,  FIG. 1 is a schematic view of a secure transfer system and identified use of computer files according to a first embodiment of the invention,
- la figure 2 est une vue schématique d'un système de transfert sécurisé et d'utilisation identifiée de fichiers informatiques selon un mode de réalisation de l'invention sur laquelle les différents modules interagissant avec la blockchain et une imprimante 3D sont représentés,  FIG. 2 is a schematic view of a secure transfer system and identified use of computer files according to an embodiment of the invention on which the various modules interacting with the blockchain and a 3D printer are represented,
- la figure 3 est une vue schématique d'un système et d'un procédé de transfert sécurisé et d'utilisation identifiée de fichiers informatiques selon un autre mode de réalisation de l'invention. FIG. 3 is a schematic view of a system and method of secure transfer and identified use of computer files according to another embodiment of the invention.
6. Description détaillée de modes de réalisation de l'invention 6. Detailed description of embodiments of the invention
La figure 1 représente très schématiquement un système selon un mode de réalisation de l'invention comprenant un réseau de machines, dit réseau privé 5, et regroupant une machine hébergeant des fichiers propriétaires, dite hébergeur 6 de fichiers, une machine sollicitant l'utilisation d'un fichier propriétaire, dite client 7 de fichiers et une machine qui pilote le système, dite serveur central 8.  FIG. 1 very schematically represents a system according to one embodiment of the invention comprising a network of machines, said private network 5, and grouping a machine hosting proprietary files, called file host 6, a machine requesting the use of a proprietary file, called client 7 files and a machine that controls the system, called central server 8.
Ledit hébergeur 6 de fichiers, ledit client 7 de fichiers et le serveur central 8 sont par exemple des ordinateurs ou d'une manière plus générale des machines électroniques fonctionnant par une lecture séquentielle d'un ensemble d'instructions.  Said file host 6, said file client 7 and the central server 8 are for example computers or, more generally, electronic machines operating by a sequential reading of a set of instructions.
Le système selon l'invention comprend en outre une base de données formée d'une chaîne de blocs ordonnés, dite blockchain 9, distribuée sur le réseau privé 5 et associée à un protocole d'écriture/lecture et de validation cryptographique de transactions effectuées sur le réseau privé entre les différentes machines du réseau privé 5.  The system according to the invention furthermore comprises a database formed of an ordered blockchain 9, distributed on the private network 5 and associated with a write / read and cryptographic validation protocol for transactions carried out on the private network 5. the private network between the different machines of the private network 5.
Le système comprend également un module mineur 11 dont le rôle est de valider les transactions de la blockchain 9. Ce module mineur 11 peut être un module indépendant ou être intégré à l'une des machines du réseau privé 5. L'action de minage et les moyens permettant ce minage sont connus de l'homme du métier et ne sont pas décrits ici en détail.  The system also includes a minor module 11 whose role is to validate the transactions of the blockchain 9. This minor module 11 can be an independent module or be integrated into one of the machines of the private network 5. The action of mining and the means for this mining are known to those skilled in the art and are not described here in detail.
Sur la figure 1, une seule copie de la blockchain 9 a été représentée à des fins de clarté, étant entendu qu'en pratique, la blockchain étant distribuée sur le réseau privé, chaque machine peut héberger une copie de la blockchain 9.  In Figure 1, only one copy of the blockchain 9 has been shown for clarity, it being understood that in practice, the blockchain being distributed on the private network, each machine can host a copy of the blockchain 9.
Le système selon l'invention comprend en outre un canal dédié, dit canal The system according to the invention further comprises a dedicated channel, called a channel
10 de transmission sécurisé, reliant entre elles les différentes machines du réseau privé, et notamment ledit hébergeur 6 de fichiers et ledit client 7 de fichiers. 10 of secure transmission, interconnecting the different machines of the private network, and in particular said file host 6 and said file client 7.
Ce canal 10 de transmission sécurisé met de préférence en œuvre un protocole de sécurisation des échanges de données permettant une authentification de chaque partie interagissant par le biais de ce canal 10 de transmission sécurisé. Ce protocole est par exemple le protocole TLS (pour la dénomination anglaise Transport Loyer Security) ou le protocole SFTP (pour la dénomination anglaise Secure File Transfer Protocol) ou tout protocole équivalent. This secure transmission channel 10 preferably implements a secure data exchange protocol enabling authentication of each interacting part via this secure transmission channel. This protocol is for example the TLS protocol (for the English name Transport Rent Security) or the SFTP protocol (for Secure File Transfer Protocol) or any equivalent protocol.
Selon l'invention, la blockchain 9 est dédiée aux échanges d'informations permettant d'organiser et de suivre le transfert des fichiers de l'hébergeur 6 de fichiers vers le client 7 de fichiers. La blockchain 9 permet également de suivre l'utilisation du fichier par le client 7 de fichiers. La blockchain 9 permet également de suivre les échanges d'information entre le serveur central 8 et l'hébergeur 6 de fichiers. Le canal 10 de transmission sécurisé est utilisé pour le transfert des fichiers en tant que tel. Il est également utilisé pour échanger des informations entre le serveur central 8 et ledit hébergeur 6 de fichiers.  According to the invention, the blockchain 9 is dedicated to the exchange of information for organizing and tracking the transfer of files from the file host 6 to the file client 7. The blockchain 9 also makes it possible to track the use of the file by the file client 7. The blockchain 9 also makes it possible to follow the exchanges of information between the central server 8 and the file host 6. The secure transmission channel 10 is used for the transfer of the files as such. It is also used to exchange information between the central server 8 and said file host 6.
Chaque machine comprend en outre un module 19 blockchain (représenté sur la figure 3 uniquement), configuré pour pouvoir lire/écrire des transactions dans la blockchain 9 de manière à pouvoir interagir avec les autres machines par le biais de la blockchain 9. Ce module 19 blockchain est par exemple une couche logicielle configurée pour interagir avec la blockchain 9.  Each machine further comprises a blockchain module 19 (shown in Figure 3 only), configured to read / write transactions in blockchain 9 so as to interact with other machines through the blockchain 9. This module 19 blockchain is for example a software layer configured to interact with the blockchain 9.
Chaque machine comprend également un module 12 applicatif blockchain (représenté sur la figure 3 uniquement) configuré pour pouvoir interagir sur le canal 10 de transmission sécurisé et notamment pour assurer le transfert des fichiers propriétaires de l'hébergeur 6 de fichiers vers le client 5 de fichiers par le biais du canal 10 de transmission sécurisé.  Each machine also comprises a blockchain application module 12 (shown in FIG. 3 only) configured to be able to interact on the secure transmission channel 10 and in particular to ensure the transfer of the proprietary files from the file host 6 to the file client 5. through the secure transmission channel 10.
Selon un mode préférentiel de réalisation de l'invention, le protocole d'écriture/lecture et de validation crypto graphique de transactions effectuées sur le réseau privé de la blockchain 9 est le protocole Ethereum® mettant en œuvre des entités programmables, dits contrats intelligents, associés chacun à une structure de données et à des méthodes de modification de ces données, de sorte qu'une écriture d'une transaction dans la blockchain 9 est une modification d'au moins une des données associées à un contrat intelligent obtenue par une exécution d'une des méthodes associées à un contrat intelligent.  According to a preferred embodiment of the invention, the protocol for writing / reading and crypto-graphical validation of transactions carried out on the private network of blockchain 9 is the Ethereum® protocol implementing programmable entities, called smart contracts, each associated with a data structure and methods for modifying that data, so that a write of a transaction in the blockchain 9 is a modification of at least one of the data associated with an intelligent contract obtained by an execution one of the methods associated with a smart contract.
Dans toute la suite, la notion d'écriture/lecture d'une transaction dans la blockchain 9 fait indifféremment référence à l'exécution d'une méthode de modification de données associées à un contrat intelligent (dans le cas où le protocole Ethereum® est utilisé) ou à écriture/lecture en tant que telle de la transaction dans la blockchain 9 (dans le cas où un autre protocole est utilisé). In the following, the notion of writing / reading a transaction in the blockchain 9 refers indifferently to the execution of a data modification method associated with a smart contract (in the case where the Ethereum® protocol is used) or write / read as such of the transaction in blockchain 9 (in case another protocol is used).
Sur la figure 2, l'hébergeur de fichiers et le serveur central sont formés de la même machine. Dans toute la description qui suit en référence à la figure 2, cette machine est désignée serveur central 3 étant entendu qu'elle assure également la fonction d'hébergeur de fichiers. Cet hébergement est schématisé par une zone 32 de stockage des fichiers propriétaires.  In Figure 2, the file host and the central server are formed from the same machine. Throughout the following description with reference to Figure 2, this machine is designated central server 3 being understood that it also performs the function of file host. This hosting is shown schematically by a zone 32 for storing the proprietary files.
Le système selon le mode de réalisation de la figure 2 comprend donc un serveur central 3 et un client 2 de fichiers qui peuvent interagir l'un avec l'autre soit par le biais d'un protocole 41 Ethereum® et de la blockchain 9 associée, soit par le biais d'un canal 42 de communication sécurisée.  The system according to the embodiment of FIG. 2 thus comprises a central server 3 and a file client 2 which can interact with each other either by means of an Ethereum® protocol and the associated blockchain 9. or via a channel 42 of secure communication.
Le serveur central 3 et le client 2 de fichiers héberge chacun, au niveau d'une terminaison 38, 28 respective IPC (acronyme de la dénomination anglaise Inter-Process Communication) une instance client Ethereum®, par exemple l'application pyethapp, geth ou eth. Dans toute la suite, on désigne cette instance client Ethereum® par la référence 25 pour le client 2 de fichiers et 35 pour le serveur central 3.  The central server 3 and the file client 2 each host, at a termination 38, respectively 28 IPC (acronym for the English name Inter-Process Communication) an Ethereum® client instance, for example the application pyethapp, geth or eth. In the following, this Ethereum® client instance is designated by the reference 25 for the client 2 of files and 35 for the central server 3.
Selon ce mode de réalisation, la blockchain 9 est synchronisée à la fois par le client 2 de fichiers et par le serveur central 3. En outre, on considère qu'au moins le serveur central 3 ou le client 2 de fichiers héberge un module mineur configuré pour valider les transactions effectuées sur la blockchain 9. Selon une autre variante, et comme indiqué précédemment, le module mineur peut être un module indépendant hébergé sur une machine dédiée à la validation des transactions de la blockchain.  According to this embodiment, the blockchain 9 is synchronized both by the file client 2 and by the central server 3. In addition, it is considered that at least the central server 3 or the file client 2 hosts a minor module. configured to validate the transactions performed on the blockchain 9. According to another variant, and as indicated above, the minor module may be an independent module hosted on a machine dedicated to the validation of transactions of the blockchain.
Selon le mode de réalisation de la figure 2, le client 2 de fichiers héberge l'instance client Ethereum® 25, une application en Javascript® 26 qui utilise la plateforme logicielle node.js qui est en interaction avec l'instance client Ethereum® 25 et une application 27 par exemple implémentée en python qui est en interaction avec une imprimante additive 22. L'instance client Ethereum® 25 et l'application en Javascript® 26 forment selon ce mode de réalisation le module blockchain du client 2 de fichiers, et l'application 27 forme le module applicatif en interaction avec l'imprimante 22. According to the embodiment of FIG. 2, the file client 2 hosts the Ethereum® client instance 25, an application in Javascript® 26 that uses the node.js software platform that is in interaction with the Ethereum® client instance. and an application 27, for example, implemented in python which is in interaction with an additive printer 22. The Ethereum® client instance 25 and the application in Javascript® 26 form, according to this embodiment, the blockchain module of the file client 2, and the application 27 forms the application module interacting with the printer 22.
Le serveur central 3 héberge l'instance client Ethereum® 35, une application en Javascript® 36 qui utilise la plateforme logicielle node.js qui est en interaction avec l'instance client Ethereum® 35 et une application 37 configurée pour pouvoir interagir à la fois avec l'application en Javascript® 36 et avec la zone de stockage 32 des fichiers propriétaires.  The central server 3 hosts the Ethereum® client instance 35, an application in Javascript® 36 that uses the node.js software platform that is in interaction with the Ethereum® client instance 35 and an application 37 configured to be able to interact at a time. with the application in Javascript® 36 and with the storage area 32 of the proprietary files.
L'instance client Ethereum® 35 et l'application en Javascript® 36 forment selon ce mode de réalisation le module blockchain du serveur central 3, et l'application 37 forme le module applicatif en interaction avec la zone de stockage 32.  In this embodiment, the Ethereum® client instance 35 and the application in Javascript® 36 form the blockchain module of the central server 3, and the application 37 forms the application module in interaction with the storage area 32.
Le procédé de transfert sécurisé d'un fichier propriétaire du serveur central 3 au client 2 de fichiers est obtenu par la succession des étapes suivantes :  The method of securely transferring a file from the central server 3 to the file client 2 is obtained by the succession of the following steps:
- Le client 2 de fichiers requiert le téléchargement d'un fichier propriétaire. Cette requête prend la forme d'une transaction dans un contrat de la blockchain 9. Cette transaction est effectuée par l'application 27 en interaction avec l'imprimante 22 additive vers l'instance client 25 Ethereum® par le biais de l'application 26 Javascript ®. L'instance client 25 Ethereum® envoie cette requête au serveur 3 central ou l'ajoute directement dans la blockchain 9 si le client 2 de fichiers héberge un module mineur configuré pour valider les transactions. Le protocole Ethereum® devp2p qui est exécuté à la fois par le client 2 de fichiers et par le serveur central 3 synchronise la transaction et ajoute un nouveau bloc sur chaque copie respective de la blockchain 9.  - The file client 2 requires the download of a proprietary file. This request takes the form of a transaction in a blockchain 9 contract. This transaction is performed by the application 27 interacting with the additive printer 22 to the Ethereum® client instance through the application 26. Javascript ®. The Ethereum® client instance sends this request to the central server 3 or adds it directly to the blockchain 9 if the file client 2 hosts a minor module configured to validate the transactions. The Ethereum® protocol devp2p which is executed by both the file client 2 and the central server 3 synchronizes the transaction and adds a new block on each respective copy of the blockchain 9.
- Le serveur central 3 détermine la validité de la requête, par le canal 42 de transmission sécurisé, puis effectue une transaction dans le contrat de la blockchain 9 pour autoriser ou non la requête du client en fonction de cette détermination. Si la requête est valable, le serveur central 3 (qui fait office d'hébergeur de fichiers) fournit une clé représentative de l'adresse du fichier requis.  - The central server 3 determines the validity of the request, through the channel 42 of secure transmission, then performs a transaction in the contract of blockchain 9 to allow or not the request of the client based on this determination. If the request is valid, the central server 3 (which acts as a file host) provides a key representative of the address of the required file.
- Le client 2 de fichiers fait des interrogations régulières du contrat de la blockchain 9 pour déceler le retour du serveur central 3. Dès qu'il détecte la clé représentative de l'adresse du fichier, il détermine l'adresse du fichier à partir de la clé représentative fournie par le serveur dans la blockchain 9. Cette détermination de l'adresse est obtenue par exemple par une fonction mathématique prédéterminée qui combine ladite clé représentative fournie par l'hébergeur de fichiers, une clé publique prédéterminée et une signature du fichier requis (hashfile). - The client 2 files makes regular queries of the contract of blockchain 9 to detect the return of the central server 3. As soon as it detects the key representative of the address of the file, it determines the address of the file from the representative key provided by the server in the blockchain 9. determination of the address is obtained for example by a predetermined mathematical function that combines said representative key provided by the file host, a predetermined public key and a signature of the required file (hashfile).
- Le client 2 de fichiers commence le téléchargement du fichier par le biais de l'application 27 et du canal 42 de transmission sécurisé. - The file client 2 starts downloading the file through the application 27 and the channel 42 secure transmission.
- Une fois le fichier récupéré, le client 2 de fichiers peut notifier l'utilisation dans la blockchain 9 et utiliser le fichier récupéré. Once the file has been recovered, the file client 2 can notify the use in the blockchain 9 and use the recovered file.
La figure 2 n'est qu'un mode de réalisation possible pour implémenter le module blockchain et le module application dans une machine d'un système selon l'invention. L'homme du métier est à même de déterminer d'autres implémentations logicielles ou matérielles de ces modules. En outre, les détails logiciels et matériels de l'implémentation du protocole Ethereum® ne sont pas décrits ici en détail dans la mesure où le protocole Ethereum® prévoit des tutoriels d' implémentations des routines associées (voir par exemple le site Internet de l'Ethereum® project à https://www.ethereum.org/).  FIG. 2 is only one possible embodiment for implementing the blockchain module and the application module in a machine of a system according to the invention. The skilled person is able to determine other software or hardware implementations of these modules. In addition, the software and hardware details of the Ethereum® protocol implementation are not described here in detail since the Ethereum® protocol provides tutorials for implementing the associated routines (see, for example, the website of the Ethereum® project at https://www.ethereum.org/).
La figure 3 est un mode de réalisation particulier de l'invention pour les fichiers propriétaires dédiés aux imprimantes additives.  FIG. 3 is a particular embodiment of the invention for the proprietary files dedicated to additive printers.
Selon ce mode de réalisation particulier, le système comprend un hébergeur 16 de fichiers et un serveur 18 central. Il comprend en outre une machine associée à une imprimante 3D, désignée dans la suite par imprimerie 17. Cette imprimerie 17 fait office de client de fichiers dans la mesure où elle récupère de manière sécurisée le fichier propriétaire de l'hébergeur de fichiers. Le système comprend également une machine sollicitant l'impression d'un fichier propriétaire par l'imprimerie 17, désignée ci-après par client 17' de fichiers. L'imprimerie 17 et le client 17' de fichier forment un client de fichiers particulier constitué de deux entités qui peuvent échanger par le biais de la blockchain. Selon ce mode de réalisation particulier, les fichiers informatiques propriétaires sont donc des fichiers d'impression 3D. Un système selon le mode de réalisation de la figure 3 permet non seulement de sécuriser le transfert d'un fichier propriétaire d'un serveur de fichiers vers un client de fichiers, mais il permet également de fournir au client de fichiers des informations sur la qualité de l'impression de la pièce correspondant au serveur de fichiers par le partage d'un journal d'impression comme expliqué ci-après. According to this particular embodiment, the system comprises a file host 16 and a central server 18. It further comprises a machine associated with a 3D printer, hereinafter referred to as a printing press 17. This printing works 17 acts as a file client insofar as it securely retrieves the proprietary file of the file host. The system also includes a machine requesting the printing of a proprietary file by the printing press 17, hereinafter referred to as the file client 17 '. The printer 17 and the client 17 'file form a particular file client consisting of two entities that can exchange through the blockchain. according to this particular embodiment, the proprietary computer files are therefore 3D printing files. A system according to the embodiment of FIG. 3 not only makes it possible to secure the transfer of a file from a file server to a file client, but it also makes it possible to provide the client with files with information on the quality. printing the part corresponding to the file server by sharing a print log as explained below.
Sur la figure 3, les flèches en pointillés représentent des étapes du procédé selon l'invention mettant en œuvre la blockchain 9 et les flèches en traits continus représentent des étapes du procédé selon l'invention mettant en œuvre le canal 10 de transmission sécurisé. Les étapes El à E10, concentrées sur la partie droite de la figure, sont les étapes mises en œuvre pour transférer un fichier propriétaire de l'hébergeur 16 de fichiers vers l'imprimerie 17. Les étapes Ε à Ε1 , concentrées sur la partie gauche de la figure sont les étapes mises en œuvre pour utiliser le fichier informatique par le client 17' de fichiers qui se caractérise par l'impression d'une pièce 3D par l'imprimerie 17.  In FIG. 3, the dashed arrows represent steps of the method according to the invention implementing the blockchain 9 and the dotted arrows represent steps of the method according to the invention implementing the secure transmission channel 10. The steps E1 to E10, concentrated on the right-hand part of the figure, are the steps implemented to transfer a proprietary file from the file host 16 to the printing press 17. Steps Ε to Ε1, concentrated on the left-hand side of the figure are the steps implemented to use the computer file by the file client 17 'which is characterized by the printing of a 3D part by the printing press 17.
Sur la figure 3, le module mineur 11 n'est pas représenté à des fins de clarté. Ce module est hébergé par le serveur central 18. Aussi, dans la description de la figure 3, la validation des transactions est effectuée par le serveur central 18. Selon d'autres modes de réalisation, la validation peut être effectuée par un autre module d'un autre nœud configuré pour faire du minage de transactions.  In Figure 3, the minor module 11 is not shown for clarity. This module is hosted by the central server 18. Also, in the description of FIG. 3, the validation of the transactions is carried out by the central server 18. According to other embodiments, the validation can be carried out by another module of FIG. another node configured to mine transactions.
Les étapes nécessaires pour que l'imprimerie 17 récupère un fichier propriétaire auprès de l'hébergeur 16 de fichiers sont les suivantes :  The steps necessary for the printer 17 to retrieve a proprietary file from the file host 16 are as follows:
- Etape El : l'imprimerie 17 requiert le transfert d'un fichier propriétaire par l'écriture d'une transaction dans la blockchain 9. El step: the printing press 17 requires the transfer of a proprietary file by writing a transaction in the blockchain 9.
Cette transaction consiste selon le mode préférentiel de réalisation de l'invention à exécuter une méthode associée à un contrat intelligent de la blockchain 9. Le serveur 18 central qui scrute régulièrement l'état du contrat intelligent accuse réception de la requête par l'écriture d'une transaction correspondante dans la blockchain 9. Selon une autre variante, le serveur central 18 reçoit une requête par le biais du canal 10 de transmission sécurisé de sorte qu'il n'a pas à scruter régulièrement l'état du contrat de la blockchain. Il accuse alors réception de cette requête par l'écriture d'une transaction dans la blockchain. This transaction consists, according to the preferred embodiment of the invention, of executing a method associated with an intelligent contract of the blockchain 9. The central server 18, which regularly polls the state of the smart contract, acknowledges receipt of the request by writing the message. corresponding transaction in the blockchain 9. According to another variant, the central server 18 receives a request through the secure transmission channel 10 so that it does not have to regularly check the state of the blockchain contract. It then acknowledges receipt of this request by writing a transaction in the blockchain.
Etape E2 : Le serveur 18 central informe l'hébergeur 16 de fichiers par le biais du canal 10 de transmission sécurisé qu'une requête a été émise par l'imprimerie 17. Selon une variante, l'hébergeur 16 de fichiers et le serveur 18 central sont une seule et même machine, auquel cas, l'étape E2 n'est pas nécessaire. Selon une autre variante, l'information transite par la blockchain 9, auquel cas l'hébergeur 16 de fichiers doit présenter les mêmes fonctionnalités que le serveur central.  Step E2: The central server 18 informs the host 16 of files via the secure transmission channel 10 that a request has been issued by the printing house 17. According to a variant, the file host 16 and the server 18 central office are one and the same machine, in which case step E2 is not necessary. According to another variant, the information passes through the blockchain 9, in which case the file host 16 must have the same functionality as the central server.
Etape E3 : L'hébergeur 16 de fichiers écrit une transaction dans la blockchain 9 en mettant des données du contrat intelligent à jour et en fournissant une clé représentative d'une adresse unique et valable qu'une fois du fichier requis. En parallèle, ledit hébergeur 16 de fichiers crée le localisateur uniforme de ressources correspondant (plus connu sous l'acronyme anglais URL pour Uniform Resource Locator) qui n'est accessible que par l'imprimerie 17. La transaction est validée par le serveur central 18.  Step E3: The file host 16 writes a transaction in blockchain 9 by updating intelligent contract data and providing a key representative of a unique and valid address only once of the required file. In parallel, said file host 16 creates the corresponding uniform resource locator (better known by the acronym URL for Uniform Resource Locator) which is accessible only by the print shop 17. The transaction is validated by the central server 18 .
Etape E4 : L'imprimerie 17 scrute l'état du contrat intelligent. Dès que la transaction a été validée par le serveur central 18 et que la clé représentative de l'adresse du fichier est décelée, l'imprimerie détermine l'adresse du fichier. Step E4: The printing house 17 scrutinizes the state of the smart contract. As soon as the transaction has been validated by the central server 18 and the key representative of the address of the file is detected, the printer determines the address of the file.
Etape E5 : L'imprimerie 17 récupère le fichier de l'hébergeur 16 de fichiers par le biais du canal 10 de transmission sécurisé.  Step E5: The printer 17 retrieves the file from the file host 16 via the secure transmission channel 10.
Etape E6 : L'imprimerie 17 confirme le début du téléchargement du fichier par l'écriture d'une transaction dans la blockchain 9, qui est validée par le serveur central 18. Step E6: The printing press 17 confirms the beginning of the downloading of the file by the writing of a transaction in the blockchain 9, which is validated by the central server 18.
Etape E7 : L'hébergeur 16 de fichiers confirme le début du téléchargement par l'écriture d'une transaction dans la blockchain 9, qui est validée par le serveur central 18. Step E7: The file host 16 confirms the start of the download by writing a transaction in blockchain 9, which is validated by the central server 18.
- Etape E8 : L'imprimerie 17 termine le téléchargement du fichier depuis l'hébergeur de fichiers 16.  - Step E8: The printer 17 completes the download of the file from the file host 16.
- Etape E9 : L'imprimerie 17 met à jour l'état du contrat intelligent et confirme que le fichier a bien été récupéré. La transaction correspondante est validée par le serveur central 18.  - Step E9: The printer 17 updates the status of the smart contract and confirms that the file has been recovered. The corresponding transaction is validated by the central server 18.
- Etape E10 : L'hébergeur de fichiers 16 confirme la fin de la transmission du fichier et le serveur central 18 valide la transaction. Step E10: The file hosting server 16 confirms the end of the transmission of the file and the central server 18 validates the transaction.
Selon le mode de réalisation de la figure 3, une fois le fichier récupéré par l'imprimerie 17, le client 17' de fichiers doit ensuite lancer l'opération d'impression du fichier. Pour ce faire, les étapes suivantes sont mises en œuvre : According to the embodiment of FIG. 3, once the file has been recovered by the printer 17, the client 17 'of files must then start the printing operation of the file. To do this, the following steps are implemented:
- Etape El ' : Le client 17' de fichiers émet une requête d'impression du fichiers par l'imprimerie 17. Cette requête prend la forme d'une transaction dans la blockchain 9 qui est validée par le serveur central 18.  - Step El ': The file client 17' sends a request to print the file by the print shop 17. This request takes the form of a transaction in the blockchain 9 which is validated by the central server 18.
- Etape E2' : Le serveur central 18 détecte la requête dans la blockchain 9 et la notifie à l'imprimerie 17 par le biais du canal 10 de transmission sécurisé. Selon un autre mode de réalisation, la requête est notifiée par le canal 10 de transmission sécurisé et le serveur 18 vérifie sa validité par une lecture de la transaction dans la blockchain.  Step E2 ': The central server 18 detects the request in the blockchain 9 and notifies it to the printing press 17 via the secure transmission channel 10. According to another embodiment, the request is notified by the secure transmission channel 10 and the server 18 verifies its validity by reading the transaction in the blockchain.
- Etape E3' : L'imprimerie notifie la validité de la requête par l'écriture d'une transaction dans la blockchain 9, qui est validée par le serveur central 18.  - Step E3 ': The printing office notifies the validity of the request by writing a transaction in blockchain 9, which is validated by the central server 18.
- Etape E4' : Le client 17' lit la réponse par la lecture d'une transaction dans la blockchain 9 et crée un URL.  Step E4 ': The client 17' reads the response by reading a transaction in the blockchain 9 and creates a URL.
- Etape E5' : Le client 17' confirme le début de l'impression du fichier.  Step E5 ': The client 17' confirms the beginning of the printing of the file.
- Etape E6' : Le client 17' effectue une transaction dans la blockchain 9 pour confirmer le début de l'impression. La transaction est validée par le serveur central 18. - Etape E7' : L'imprimerie 17 lit la transaction de confirmation dans la blockchain 9 et accuse réception par l'écriture d'une transaction correspondante dans la blockchain 9. La transaction est validée par le serveur central 18. Step E6 ': Client 17' performs a transaction in blockchain 9 to confirm the start of printing. The transaction is validated by the central server 18. - Step E7 ': The printing house 17 reads the confirmation transaction in the blockchain 9 and acknowledges receipt by writing a corresponding transaction in the blockchain 9. The transaction is validated by the central server 18.
- Etape E8' : Lorsque l'imprimerie 17 a terminé l'impression du fichier, elle effectue une transaction dans la blockchain 9 pour fournir une clé représentative d'un URL de téléchargement d'un journal d'impression. Ce journal d'impression (plus connu sous la dénomination de log d'impression) fournit des données sur la qualité de l'impression. L'imprimerie 17 créé alors l'URL correspondant. La transaction est validée par le serveur central 18. Step E8 ': When the printing house 17 has finished printing the file, it performs a transaction in the blockchain 9 to provide a key representative of a download URL of a print log. This print log (better known as the print log) provides print quality data. The printing office 17 then creates the corresponding URL. The transaction is validated by the central server 18.
- Etape E9' : Le serveur central 18 lit la clé représentative de l'URL dans la blockchain 9 et détermine l'adresse correspondante. Step E9 ': The central server 18 reads the key representative of the URL in the blockchain 9 and determines the corresponding address.
- Etape E10' : Le serveur central 18 commence le téléchargement du journal d'impression et le notifie dans la blockchain 9 par l'écriture d'une transaction. La transaction est validée par le serveur central 18 (ou par tout module configuré pour miner les transactions).  Step E10 ': The central server 18 begins downloading the print log and notifies it in the blockchain 9 by writing a transaction. The transaction is validated by the central server 18 (or by any module configured to undermine the transactions).
- Etape Ε1 : Lorsque le serveur central 18 a terminé le téléchargement du journal d'impression, il le notifie dans la blockchain par l'écriture d'une transaction correspondante. La transaction est validée par le serveur central 18 (ou par tout module configuré pour miner les transactions).  Step Ε1: When the central server 18 has finished downloading the print log, it notifies it in the blockchain by writing a corresponding transaction. The transaction is validated by the central server 18 (or by any module configured to undermine the transactions).
Un système et un procédé selon ce mode de réalisation permet donc non seulement de sécuriser le transfert d'un fichier propriétaire d'un hébergeur de fichiers propriétaires vers une imprimante additive, d'identifier et de tracer l'utilisation faite du fichier propriétaire, et également de fournir une information sur la qualité de l'impression de la pièce.  A system and method according to this embodiment thus makes it possible not only to secure the transfer of a proprietary file of a proprietary file host to an additive printer, to identify and trace the use made of the proprietary file, and also to provide information on the quality of the printing of the piece.
Un système selon l'invention ne se limite pas uniquement aux modes de réalisation décrits. En particulier, un système et un procédé selon l'invention peuvent être mise en œuvre pour d'autres applications que celles décrites en lien avec l'impression additive. D'une manière générale, l'invention peut être mise en œuvre pour toutes les applications nécessitant un transfert sécurisé et une utilisation traçable de fichiers informatiques propriétaires. A system according to the invention is not limited solely to the described embodiments. In particular, a system and a method according to the invention can be implemented for other applications than those described in connection with additive printing. In general, the invention can be implemented works for all applications requiring secure transfer and traceable use of proprietary computer files.

Claims

REVENDICATIONS
\. Procédé de transfert sécurisé et d'utilisation identifiée de fichiers informatiques entre au moins une machine hébergeant des fichiers informatiques propriétaires, dite hébergeur (6 ; 16 ; 3) de fichiers, et au moins une machine sollicitant la réception et l'utilisation d'au moins un desdits fichiers informatiques propriétaires, dite client (7 ; 17, 17' ; 2) de fichiers, lesdites machines étant reliées à un réseau de machines, dit réseau (5) privé, et comprenant au moins un serveur central (8 ; 18) et une base de données formée d'une chaîne de blocs ordonnés, dite blockchain (9), distribuée sur le réseau (5) privé et associée à un protocole d'écriture/lecture et de validation crypto graphique de transactions effectuées sur le réseau privé, lesdites machines étant en outre reliées les unes aux autres par un canal (10 ; 42) de transmission sécurisé, ledit procédé comprenant au moins les étapes suivantes : \. A method of secure transfer and identified use of computer files between at least one machine hosting proprietary computer files, said host (6; 16; 3) files, and at least one machine requesting the receipt and use of least one of said proprietary computer files, said client (7; 17, 17 '; 2) files, said machines being connected to a network of machines, said network (5) private, and comprising at least one central server (8; ) and a database formed of an ordered blockchain (9), distributed on the private network (5) and associated with a write / read protocol and crypto-graphic validation of transactions carried out on the network said machines being further connected to each other by a secure transmission channel (10; 42), said method comprising at least the following steps:
un client (7 ; 17, 17' ; 2) de fichiers requiert le transfert d'un fichier propriétaire par une écriture d'une transaction correspondante dans ladite blockchain (9),  a client (7; 17, 17 '; 2) of files requires the transfer of a proprietary file by a writing of a corresponding transaction in said blockchain (9),
ledit serveur central (8 ; 18) détermine la validité de la requête et informe, en cas de requête valide, ledit hébergeur (6 ; 16 ; 3) de fichiers hébergeant ledit fichier requis par ledit client (7 ; 17, 17' ; 2) de fichiers,  said central server (8; 18) determines the validity of the request and informs, in case of valid request, said host (6; 16; 3) of files hosting said file requested by said client (7; 17, 17 '; 2 ) files,
ledit hébergeur (6 ; 16 ; 3) de fichiers fournit audit client de fichiers une clé représentative de l'adresse du fichier requis par une opération d'écriture d'une transaction correspondante dans ladite blockchain (9),  said host (6; 16; 3) of files provides said file client with a key representative of the file address required by a write operation of a corresponding transaction in said blockchain (9),
ledit client (7 ; 17, 17' ; 2) de fichiers récupère ledit fichier propriétaire à ladite adresse du fichier requis auprès de l'hébergeur (6 ; 16 ; 3) de fichiers par le biais dudit canal (10 ; 42) de transmission sécurisé,  said client (7; 17,17; 2) of files retrieves said proprietary file from said address of the requested file from the host (6; 16; 3) of files through said transmission channel (10; 42) secured,
ledit client (7 ; 17, 17' ; 2) de fichiers notifie l'utilisation du fichier propriétaire récupéré par l'écriture d'une transaction correspondante dans ladite blockchain (9), et utilise ledit fichier propriétaire avec une application dédiée. said client (7; 17, 17 '; 2) of files notifies the use of the file owner retrieved by writing a corresponding transaction in said blockchain (9), and uses said proprietary file with a dedicated application.
2. Procédé selon la revendication 1, caractérisé en ce que ledit protocole d'écriture/lecture et de validation crypto graphique de transactions met en œuvre au moins un module, dit module mineur (11), configuré pour pouvoir valider les transactions d'écriture/lecture dans ladite blockchain (9).  2. Method according to claim 1, characterized in that said transaction write / read and crypto graphical validation protocol implements at least one module, said minor module (11), configured to be able to validate the write transactions. / reading in said blockchain (9).
3. Procédé selon l'une des revendications 1 ou 2, caractérisé en ce que ledit protocole d'écriture/lecture et de validation crypto graphique de transactions effectuées sur ledit réseau (5) privé de ladite blockchain (9) est le protocole Ethereum® mettant en œuvre des entités programmables, dits contrats intelligents, associés chacun à une structure de données et à des méthodes de modification de ces données, de sorte qu'une écriture d'une transaction dans ladite blockchain (9) est une modification d'au moins une desdites données associées à un contrat intelligent obtenue par une exécution d'une desdites méthodes associées à un contrat intelligent.  3. Method according to one of claims 1 or 2, characterized in that said write / read protocol and crypto graphical validation of transactions performed on said network (5) private blockchain (9) is the Ethereum® protocol implementing programmable entities, called intelligent contracts, each associated with a data structure and methods for modifying the data, so that a transaction write in said blockchain (9) is a modification of at least one of said data associated with an intelligent contract obtained by executing one of said methods associated with a smart contract.
4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que ladite blockchain (9) est initialisée en fournissant dans un premier bloc, dit bloc genesis, une liste prédéterminée d'identifiants, chaque identifiant, dit adresse, étant déterminé à partir d'une clé numérique privée et destiné à désigner une machine du réseau.  4. Method according to one of claims 1 to 3, characterized in that said blockchain (9) is initialized by providing in a first block, said block genesis, a predetermined list of identifiers, each identifier, said address, being determined from a private digital key and intended to designate a network machine.
5. Procédé selon la revendication 4, caractérisé en ce que chaque clé numérique privée associée à une adresse enregistrée dans ledit bloc genesis est obtenue à partir d'une même clé racine prédéterminée et d'une fonction de dérivation prédéterminée.  5. Method according to claim 4, characterized in that each private digital key associated with an address registered in said genesis block is obtained from a same predetermined root key and a predetermined derivation function.
6. Procédé selon l'une des revendications 4 ou 5, caractérisé en ce que chaque adresse est associée à un montant aléatoire supérieur à un seuil prédéterminé de crypto monnaie pour permettre à chaque machine d'effectuer des transactions sur ladite blockchain.  6. Method according to one of claims 4 or 5, characterized in that each address is associated with a random amount greater than a predetermined threshold of cryptocurrency to allow each machine to perform transactions on said blockchain.
7. Procédé selon l'une des revendications 4 à 6, caractérisé en ce qu'au moins un module mineur (11) de validation crypto graphique des transactions dans ladite blockchain (9) est hébergé par ledit serveur central (8 ; 18). 7. Method according to one of claims 4 to 6, characterized in that at least one minor module (11) crypto graphical validation of transactions in said blockchain (9) is hosted by said central server (8; 18).
8. Procédé selon l'une des revendications 1 à 7, caractérisé en ce que ledit hébergeur (6 ; 16 ; 3) de fichiers et ledit serveur central (8 ; 18) sont une seule et même machine.  8. Method according to one of claims 1 to 7, characterized in that said host (6; 16; 3) files and said central server (8; 18) are a single machine.
9. Procédé selon l'une des revendications 1 à 8, caractérisé en ce que ledit canal (10 ; 42) de transmission sécurisé met en œuvre un protocole de sécurisation des échanges de données permettant une authentification de chaque machine émettrice et réceptrice de données. 9. Method according to one of claims 1 to 8, characterized in that said channel (10; 42) of secure transmission implements a secure data exchange protocol for authentication of each transmitting machine and receiving data.
10. Procédé selon l'une des revendications 1 à 9, caractérisé en ce que lesdits fichiers informatiques propriétaires sont des fichiers d'impression destinés à des imprimantes additives.  10. Method according to one of claims 1 to 9, characterized in that said proprietary computer files are printing files for additive printers.
11. Procédé selon la revendication 10, caractérisé en ce que ledit client de fichiers qui utilise un fichier d'impression récupéré avec une imprimante additive et qui le notifie par l'écriture d'une transaction correspondante dans ladite blockchain (9) y inclut un numéro de série associé audit produit fabriqué à partir dudit fichier d'impression.  The method of claim 10, wherein said file client that uses a print file retrieved with an additive printer and notifies it by writing a corresponding transaction in said blockchain (9) includes a serial number associated with said product made from said print file.
12. Procédé selon l'une des revendications 1 à 9, caractérisé en ce que lesdits fichiers informatiques propriétaires sont des fichiers d'installation ou de mise à jour de logiciels propriétaires.  12. Method according to one of claims 1 to 9, characterized in that said proprietary computer files are installation files or updating proprietary software.
13. Système de transfert sécurisé et d'utilisation identifiée de fichiers informatiques entre au moins une machine hébergeant lesdits fichiers informatiques propriétaires, dite hébergeur (6 ; 16 ; 3) de fichiers, et au moins une machine sollicitant la réception et l'utilisation d'au moins un desdits fichiers informatiques propriétaires, dite client (7 ; 17, 17' ; 2) de fichiers, ledit système comprenant : 13. System for secure transfer and identified use of computer files between at least one machine hosting said proprietary computer files, said host (6; 16; 3) of files, and at least one machine requesting the reception and use of at least one of said proprietary computer files, said client (7; 17, 17 '; 2) files, said system comprising:
un réseau de machines, dit réseau (5) privé, comprenant chaque hébergeur (6 ; 16 ; 3) de fichiers, chaque client (7 ; 17, 17' ; 2) de fichiers, et ledit serveur central (8 ; 18),  a network of machines, said private network (5), comprising each host (6; 16; 3) of files, each client (7; 17, 17 '; 2) of files, and said central server (8; 18),
une base de données formée d'une chaîne de blocs ordonnés, dite blockchain (9), distribuée sur le réseau privé et associée à un protocole d'écriture/lecture et de validation crypto graphique de transactions effectuées sur ledit réseau (5) privé, a database formed of an ordered blockchain (9), distributed on the private network and associated with a crypto-graphic read / write and read protocol; transactions carried out on said private network (5),
un canal (10 ; 42) de transmission sécurisé reliant lesdites machines entre elles,  a secure transmission channel (10; 42) connecting said machines to each other,
un module blockchain (19) hébergé par chaque machine du réseau privé et configuré pour pouvoir lire/écrire des transactions dans ladite blockchain (9) de manière à pouvoir interagir avec les autres machines par le biais de la blockchain (9) pour autoriser le transfert des fichiers propriétaires de l'hébergeur (8 ; 18 ; 3) de fichiers vers le client (7 ; 17, 17' ; 2) de fichiers si des conditions prédéterminées de transfert sont remplies et pour suivre l'utilisation faite par ledit client (7 ; 17, 17' ; 2) de fichiers des fichiers propriétaires transférés,  a blockchain module (19) hosted by each machine of the private network and configured to read / write transactions in said blockchain (9) so as to interact with the other machines through the blockchain (9) to allow the transfer files hosting the host (8; 18; 3) files to the client (7; 17; 17 '; 2) files if predetermined transfer conditions are met and to track the use made by said client ( 7; 17, 17 '; 2) files transferred proprietary files,
un module applicatif (12) hébergé par chaque machine du réseau privé et configuré pour pouvoir assurer le transfert des fichiers propriétaires de l'hébergeur (8 ; 18 ; 3) de fichiers vers le client (7 ; an application module (12) hosted by each machine of the private network and configured to be able to transfer the proprietary files of the host (8; 18; 3) of files to the client (7;
17, 17' ; 2) de fichiers par le biais du canal (10 ; 42) de transmission sécurisé si lesdites conditions prédéterminées de transfert sont enregistrées et validées dans ladite blockchain (9). 17, 17 '; 2) files through the secure transmission channel (10; 42) if said predetermined transfer conditions are registered and validated in said blockchain (9).
14. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en œuvre du procédé de transfert sécurisé et d'utilisation identifiée de fichiers informatiques, selon l'une des revendications 1 à 12, lorsque le programme est exécuté sur un ordinateur. 14. Computer program product downloadable from a communication network and / or recorded on a computer readable medium and / or executable by a processor, characterized in that it comprises program code instructions for the implementation of the method of secure transfer and identified use of computer files, according to one of claims 1 to 12, when the program is run on a computer.
15. Moyen de stockage lisible par ordinateur, totalement ou partiellement amovible, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur pour mettre en œuvre le procédé de transfert sécurisé et d'utilisation identifiée de fichiers informatiques, selon l'une des revendications 1 à 12. 15. Computer-readable storage medium, totally or partially removable, storing a computer program comprising a set of instructions executable by a computer for implementing the method of secure transfer and identified use of computer files, according to the one of claims 1 to 12.
PCT/FR2017/053082 2016-11-14 2017-11-13 System and method for secure transfer and identified and traceable use of proprietary computer files WO2018087493A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1660948A FR3058856B1 (en) 2016-11-14 2016-11-14 SYSTEM AND METHOD FOR SECURE TRANSFER AND IDENTIFIED AND TRACABLE USE OF OWN COMPUTER FILE
FR1660948 2016-11-14

Publications (1)

Publication Number Publication Date
WO2018087493A1 true WO2018087493A1 (en) 2018-05-17

Family

ID=58347501

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2017/053082 WO2018087493A1 (en) 2016-11-14 2017-11-13 System and method for secure transfer and identified and traceable use of proprietary computer files

Country Status (2)

Country Link
FR (1) FR3058856B1 (en)
WO (1) WO2018087493A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109639711A (en) * 2018-12-29 2019-04-16 成都康赛信息技术有限公司 A kind of Distributed C AS authentication method based on privately owned chain session id
CN112000068A (en) * 2020-05-22 2020-11-27 上海飞鱼医疗科技有限公司 Medical instrument performance quality management system based on block chain technology
US10972478B2 (en) 2018-10-15 2021-04-06 Cloudminds (Shanghai) Robotics Co., Ltd. Data processing method and apparatus, terminal, and access point computer
US20220006648A1 (en) * 2018-11-13 2022-01-06 Sang Yub Lee Contract apparatus and method of blockchain using digital contents orginal key
CN115879063A (en) * 2023-02-22 2023-03-31 深圳市智能派科技有限公司 Block chain based 3D printing work certification method and system
US11706280B2 (en) 2019-03-18 2023-07-18 Red Hat, Inc. Methods and system for auditing batch jobs using blockchain

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2701090A1 (en) * 2012-08-22 2014-02-26 Aahlstö OÜ Method and system for enforcing 3D restricted rights in a rapid manufacturing and prototyping environment
EP2757736A1 (en) 2013-01-19 2014-07-23 Fabulonia OÜ Secure streaming method in a numerically controlled manufacturing system, and a secure numerically controlled manufacturing system
US20160180061A1 (en) * 2014-12-23 2016-06-23 Oleg POGORELIK Technologies for enhanced user authentication using advanced sensor monitoring

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2701090A1 (en) * 2012-08-22 2014-02-26 Aahlstö OÜ Method and system for enforcing 3D restricted rights in a rapid manufacturing and prototyping environment
EP2757736A1 (en) 2013-01-19 2014-07-23 Fabulonia OÜ Secure streaming method in a numerically controlled manufacturing system, and a secure numerically controlled manufacturing system
US20160180061A1 (en) * 2014-12-23 2016-06-23 Oleg POGORELIK Technologies for enhanced user authentication using advanced sensor monitoring

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10972478B2 (en) 2018-10-15 2021-04-06 Cloudminds (Shanghai) Robotics Co., Ltd. Data processing method and apparatus, terminal, and access point computer
US20220006648A1 (en) * 2018-11-13 2022-01-06 Sang Yub Lee Contract apparatus and method of blockchain using digital contents orginal key
CN109639711A (en) * 2018-12-29 2019-04-16 成都康赛信息技术有限公司 A kind of Distributed C AS authentication method based on privately owned chain session id
US11706280B2 (en) 2019-03-18 2023-07-18 Red Hat, Inc. Methods and system for auditing batch jobs using blockchain
CN112000068A (en) * 2020-05-22 2020-11-27 上海飞鱼医疗科技有限公司 Medical instrument performance quality management system based on block chain technology
CN115879063A (en) * 2023-02-22 2023-03-31 深圳市智能派科技有限公司 Block chain based 3D printing work certification method and system

Also Published As

Publication number Publication date
FR3058856B1 (en) 2018-11-16
FR3058856A1 (en) 2018-05-18

Similar Documents

Publication Publication Date Title
WO2018087493A1 (en) System and method for secure transfer and identified and traceable use of proprietary computer files
US10158611B2 (en) System for multiplexing and demultiplexing blockchain ledgers via a cryptographic hash
EP3547202B1 (en) Method for access to anonymised data
EP3547203A1 (en) Method and system for managing access to personal data by means of an intelligent contract
CN111047324B (en) Method and apparatus for updating a set of public keys at a blockchain node
CN102077506B (en) Security architecture for peer-to-peer storage system
EP2323306B1 (en) Secured data transmission method and encryption and decryption system enabling such a transmission
US11943350B2 (en) Systems and methods for re-using cold storage keys
CN111292041B (en) Electronic contract generation method, device, equipment and storage medium
CN109729041B (en) Method and device for issuing and acquiring encrypted content
EP3403213A2 (en) Methods and systems implemented in a network architecture with nodes capable of performing message-based transactions
FR2922702A1 (en) SECURING TELECHARGEABLE COMPUTER FILE DATA ON AN AIRCRAFT BASED ON IDENTITY OF ENTITIES, AUTHENFICATION METHOD, SYSTEM AND AIRCRAFT
WO2011073560A1 (en) Access to a network for distributing digital content
CN101404576A (en) Network resource query method and system
FR3041798A1 (en) IMPROVED AUTHENTICATION METHOD AND DEVICE
FR3104869A1 (en) Secure, decentralized, automated and multi-stakeholder platform for managing object identities through the use of blockchain technology.
CA3142763A1 (en) Method for encrypting and storing system files and associated encryption and storage device
FR3104870A1 (en) Secure, decentralized, automated and multi-stakeholder platform for managing object identities through the use of blockchain technology.
EP3857413A1 (en) Method for processing a transaction, device, system and corresponding program
FR3059445A1 (en) CHIFFREMENT PROCESS
EP3493459B1 (en) Method for sharing a key used to divert session keys for encrypting and authenticating communications between an object and a server
WO2017162930A2 (en) Adaptive device for biometric authentication using ultrasound, infrared and contrast visible light photographs, without disclosure, via a decentralised computer network
US11310044B2 (en) Authenticate transactions of secured file in blockchain
FR3022716A1 (en) METHOD FOR SHARING DIGITAL FILES BETWEEN SEVERAL COMPUTERS, AND COMPUTER, DATA STORAGE ASSEMBLY AND SYSTEM FOR SHARING DIGITAL FILES THEREOF
CN112350920A (en) Instant communication system based on block chain

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17804628

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17804628

Country of ref document: EP

Kind code of ref document: A1