CH716277A2 - Process for processing, within a blockchain and sub-enclave network, computer data encrypted by means of an encrypted application, subject to geolocation. - Google Patents
Process for processing, within a blockchain and sub-enclave network, computer data encrypted by means of an encrypted application, subject to geolocation. Download PDFInfo
- Publication number
- CH716277A2 CH716277A2 CH00749/19A CH7492019A CH716277A2 CH 716277 A2 CH716277 A2 CH 716277A2 CH 00749/19 A CH00749/19 A CH 00749/19A CH 7492019 A CH7492019 A CH 7492019A CH 716277 A2 CH716277 A2 CH 716277A2
- Authority
- CH
- Switzerland
- Prior art keywords
- data
- network
- container
- enclave
- geolocation
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/107—Network architectures or network communication protocols for network security for controlling access to devices or network resources wherein the security policies are location-dependent, e.g. entities privileges depend on current location or allowing specific operations only from locally connected terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/53—Network services using third party service providers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0872—Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3231—Biological data, e.g. fingerprint, voice or retina
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2111—Location-sensitive, e.g. geographical location, GPS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Power Engineering (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biodiversity & Conservation Biology (AREA)
- Biomedical Technology (AREA)
- Storage Device Security (AREA)
Abstract
L'invention concerne un procédé de traitement, au sein d'un réseau ( 1 ) blockchain, de données ( 15 ) informatiques contenues dans un premier conteneur ( 19 ) chiffré, au moyen d'une application ( 17 ) tierce contenue dans un deuxième conteneur ( 21 ) chiffré, ce traitement étant conduit, après vérification préalable d'une condition de géolocalisation dans une liste sur la blockchain, au sein d'une enclave ( 8 ) cryptographique dans laquelle les conteneurs ( 19 , 21 ) sont déchiffrés pour permettre l'exécution de l'application ( 17 ) ainsi déchiffrée sur les données ( 15 ) ainsi déchiffrées. Le résultat ( 29 ) est inscrit en tant que transaction sur la blockchain.The invention relates to a method for processing, within a blockchain network (1), computer data (15) contained in a first encrypted container (19), by means of a third-party application (17) contained in a second. encrypted container (21), this processing being carried out, after prior verification of a geolocation condition in a list on the blockchain, within a cryptographic enclave (8) in which the containers (19, 21) are decrypted to allow the execution of the application (17) thus decrypted on the data (15) thus decrypted. The result (29) is recorded as a transaction on the blockchain.
Description
DOMAINE TECHNIQUETECHNICAL AREA
[0001] L'invention a trait au domaine de l'informatique, et plus précisément au domaine du traitement des données informatiques, en réseau, au moyen d'une application. The invention relates to the field of computing, and more specifically to the field of computer data processing, in a network, by means of an application.
ART ANTERIEURPRIOR ART
[0002] Un programme d'ordinateur comprend des instructions au moyen desquelles, par l'intermédiaire d'une unité de traitement, des opérations sont réalisées sur des données d'entrée (en anglais input), pour fournir, à partir de celles-ci, des données de sortie ou résultat (en anglais output). A computer program comprises instructions by means of which, by means of a processing unit, operations are carried out on input data, to provide, from these- ci, output data or result.
[0003] Le traitement de données en masse (en anglais big data) tend à s'industrialiser. Des programmes spécialisés scrutent les flux de données (tout particulièrement les données personnelles des usagers) circulant sur la Toile, procèdent à des analyses de ces données, effectuent des calculs (notamment statistiques) puis stockent leurs résultats sur des bases de données aux fins d'une exploitation ultérieure (notamment commerciale). [0003] Mass data processing (in English big data) is tending to industrialize. Specialized programs scrutinize the data flows (in particular the personal data of users) circulating on the Web, analyze this data, perform calculations (in particular statistics) and then store their results in databases for the purposes of subsequent exploitation (especially commercial).
[0004] Pour éviter que leurs données personnelles soient exploitées sans leur autorisation, ou pour conserver un relatif anonymat sur la Toile, certains usagers prennent la précaution de les chiffrer. To prevent their personal data from being used without their authorization, or to maintain relative anonymity on the Web, some users take the precaution of encrypting them.
[0005] Certaines données font d'ailleurs (ou devraient faire) l'objet d'un chiffrement systématique, en raison de leur caractère confidentiel (typiquement les données de santé ou les données financières), les instances chargées de leur gestion (hôpitaux, banques) étant soumises à des obligations professionnelles de secret, et responsables à ce titre de l'usage qui pourrait en être fait par des tiers non autorisés. [0005] Some data are moreover (or should be) the subject of systematic encryption, because of their confidential nature (typically health data or financial data), the bodies responsible for their management (hospitals, banks) being subject to professional secrecy obligations, and as such responsible for any use that may be made of it by unauthorized third parties.
[0006] Les données chiffrées sont cependant inaccessibles - et donc inexploitables - pour qui ne dispose pas d'une clé cryptographique appropriée permettant leur déchiffrement. [0006] The encrypted data is however inaccessible - and therefore unusable - for those who do not have an appropriate cryptographic key allowing their decryption.
[0007] Pourtant il existe de nombreux cas où le propriétaire des données (typiquement un patient d'un institut médical ou un client d'une banque) peut souhaiter, sous conditions, autoriser un tiers intéressé à procéder à un traitement des données, sans pour autant communiquer à ce tiers la clé de déchiffrement, ni l'autoriser à accéder pleinement aux données lorsque seule une partie de ces données est susceptible de l'intéresser. However, there are many cases where the owner of the data (typically a patient of a medical institute or a client of a bank) may wish, under conditions, to authorize an interested third party to process the data, without however, communicate the decryption key to this third party, nor authorize him to fully access the data when only part of this data is likely to interest him.
[0008] Inversement, le tiers intéressé peut souhaiter conserver secrètes, vis-à-vis d'autres tiers encore, ses propres routines d'analyse, et chiffrer les données programmatiques de ses applications, dont le développement est le fruit d'un savoir-faire précieux. Conversely, the interested third party may wish to keep secret, vis-à-vis still other third parties, its own analysis routines, and encrypt the programmatic data of its applications, the development of which is the result of knowledge. -make valuable.
[0009] Il peut en outre être souhaitable de soumettre le traitement à autorisation, en minimisant dans ce cas le risque de fraude. [0009] It may also be desirable to subject the processing to authorization, in this case minimizing the risk of fraud.
[0010] Par ailleurs, il peut être souhaitable, notamment pour l'émetteur, de conserver (ou d'accéder à) une trace de ce que les données ont fait l'objet d'un traitement. [0010] Furthermore, it may be desirable, in particular for the sender, to keep (or access) a trace of what data has been processed.
[0011] L'invention vise à offrir une solution à ces problèmes, en proposant un procédé de traitement, en réseau, de données chiffrées qui permette à la fois à une application de traiter ces données sans affecter leur confidentialité, et à l'application elle-même de demeurer confidentielle. The invention aims to offer a solution to these problems, by proposing a method of processing, in a network, of encrypted data which allows both an application to process these data without affecting their confidentiality, and the application. itself to remain confidential.
RESUME DE L'INVENTIONSUMMARY OF THE INVENTION
[0012] Il est proposé un procédé de traitement de données informatiques au sein d'un réseau pair-à-pair composé d'une pluralité de nœuds formant une base de données distribuée sur laquelle est mémorisée, par réplication sur chaque nœud, une chaîne de blocs, au moyen d'une application tierce sous forme d'un ou plusieurs fichier(s) de données programmatiques, ce procédé comprenant les opérations consistant à: <tb><SEP>- Chiffrer les données à traiter pour former un premier conteneur crypté de données ; <tb><SEP>- Mémoriser séparément le premier conteneur crypté et une première clé cryptographique de déchiffrement de celui-ci ; <tb><SEP>- Chiffrer le(s) fichier(s) de données programmatiques de l'application tierce pour former un deuxième conteneur crypté ; <tb><SEP>- Mémoriser séparément le deuxième conteneur et une deuxième clé cryptographique de déchiffrement associée ; <tb><SEP>- Emettre, à partir d'un terminal tiers équipé d'une balise de géolocalisation et à destination du réseau, une requête de traitement des données par l'application tierce, cette requête contenant des données instantanées de géolocalisation issues de la balise ; <tb><SEP>- A réception de la requête de traitement par au moins un nœud du réseau, identifier dans la chaîne de blocs une condition prédéfinie de géolocalisation ; <tb><SEP>- Si les données instantanées de géolocalisation vérifient la condition prédéfinie de géolocalisation, sélectionner au sein du réseau au moins un nœud, dit nœud de calcul, équipé d'une unité de traitement informatique dans laquelle est implémenté un environnement d'exécution sécurisé par cryptographie, dit enclave ; <tb><SEP>- Instancier l'enclave du nœud de calcul ; <tb><SEP>- Charger dans l'enclave du nœud de calcul le premier conteneur et la première clé cryptographique de déchiffrement associée, ainsi que le deuxième conteneur et la deuxième clé cryptographique de déchiffrement associée ; <tb><SEP>- Inscrire dans un bloc de la chaîne de blocs, par un ou plusieurs nœuds du réseau, au moins une transaction contenant une empreinte numérique de la requête de traitement et/ou du chargement ainsi effectué ; <tb><SEP>- Dans l'enclave du nœud de calcul : <tb><SEP><SEP>o Déchiffrer les données du premier conteneur au moyen de la première clé cryptographique de déchiffrement ; <tb><SEP><SEP>o Déchiffrer le(s) fichier(s) de données programmatiques de l'application tierce contenus dans le deuxième conteneur au moyen de la deuxième clé cryptographique de déchiffrement ; <tb><SEP><SEP>o Exécuter l'application tierce sur les données ainsi déchiffrées ; <tb><SEP>- Hors de l'enclave du nœud de calcul, mémoriser le résultat de cette exécution sur un emplacement mémoire prédéfini. <tb><SEP>- Inscrire dans un bloc de la chaîne de blocs, par un ou plusieurs nœuds du réseau, au moins une transaction contenant une empreinte numérique de ce résultat.There is proposed a method of processing computer data within a peer-to-peer network composed of a plurality of nodes forming a distributed database on which is stored, by replication on each node, a chain of blocks, by means of a third-party application in the form of one or more programmatic data file (s), this method comprising the operations consisting in: <tb> <SEP> - Encrypt the data to be processed to form a first encrypted data container; <tb> <SEP> - Store separately the first encrypted container and a first decryption cryptographic key thereof; <tb> <SEP> - Encrypt the third party application programmatic data file (s) to form a second encrypted container; <tb> <SEP> - Store separately the second container and an associated second cryptographic decryption key; <tb> <SEP> - Send, from a third-party terminal equipped with a geolocation beacon and to the network, a request for data processing by the third-party application, this request containing instantaneous geolocation data from of the tag; <tb> <SEP> - On receipt of the processing request by at least one node of the network, identify in the chain of blocks a predefined geolocation condition; <tb> <SEP> - If the instantaneous geolocation data verify the predefined condition of geolocation, select within the network at least one node, called a compute node, equipped with a computer processing unit in which a computer environment is implemented. execution secured by cryptography, called enclave; <tb> <SEP> - Instantiate the compute node enclave; <tb> <SEP> - Load the first container and the associated first cryptographic decryption key, as well as the second container and the second associated decryption cryptographic key, into the compute node enclave; <tb> <SEP> - Enter in a block of the chain of blocks, by one or more nodes of the network, at least one transaction containing a digital fingerprint of the processing request and / or of the loading thus carried out; <tb> <SEP> - In the compute node enclave: <tb><SEP> <SEP> o Decrypt the data of the first container using the first cryptographic decryption key; <tb><SEP> <SEP> o Decrypt the third-party application programmatic data file (s) contained in the second container using the second cryptographic decryption key; <tb><SEP> <SEP> o Run the third-party application on the data thus decrypted; <tb> <SEP> - Outside the compute node enclave, store the result of this execution on a predefined memory location. <tb> <SEP> - Write in a block of the blockchain, by one or more nodes of the network, at least one transaction containing a digital fingerprint of this result.
BREVE DESCRIPTION DES FIGURESBRIEF DESCRIPTION OF THE FIGURES
[0013] D'autres objets et avantages de l'invention apparaîtront à la lumière de la description d'un mode de réalisation, faite ci-après en référence aux dessins annexés dans lesquels : <tb><SEP>LaFIG.1est un schéma fonctionnel simplifié illustrant un réseau pair-à-pair sur lequel est distribuée une chaîne de blocs ; <tb><SEP>LaFIG.2est un schéma fonctionnel simplifié illustrant différents composants d'une unité de traitement informatique impliqués dans la création et l'exploitation d'un environnement d'exécution sécurisé appelé enclave ; <tb><SEP>LaFIG.3est un schéma fonctionnel illustrant le stockage de données chiffrées à traiter et d'une application également chiffrée ; <tb><SEP>LaFIG.4est un schéma fonctionnel illustrant le traitement des données par l'application ; <tb><SEP>LaFIG.5est un diagramme illustrant les échanges entre les différents intervenants pour le traitement des données.Other objects and advantages of the invention will become apparent in the light of the description of an embodiment, given below with reference to the accompanying drawings in which: <tb> <SEP> LaFIG.1 is a simplified block diagram illustrating a peer-to-peer network on which a chain of blocks is distributed; <tb> <SEP> LaFIG.2 is a simplified functional diagram illustrating different components of a computer processing unit involved in the creation and operation of a secure execution environment called an enclave; <tb> <SEP> LaFIG.3 is a functional diagram illustrating the storage of encrypted data to be processed and of an also encrypted application; <tb> <SEP> LaFIG.4 is a functional diagram illustrating the processing of data by the application; <tb> <SEP> LaFIG.5 is a diagram illustrating the exchanges between the various stakeholders for data processing.
DESCRIPTION DETAILLEE DE L'INVENTIONDETAILED DESCRIPTION OF THE INVENTION
[0014] Le procédé proposé vise à traiter, de manière confidentielle, des données informatiques au moyen d'une application tierce (c'est-à-dire provenant d'un éditeur distinct de l'émetteur des données). The proposed method aims to treat, confidentially, computer data by means of a third-party application (that is to say from a publisher separate from the sender of the data).
[0015] Sans s'y restreindre, le procédé de traitement proposé exploite, en les combinant, des fonctionnalités offertes par deux technologies relativement récentes dont il paraît utile de faire une description préalable avant d'entrer dans les détails du procédé, à savoir : La technologie de la chaîne de blocs ou, en terminologie anglo-saxonne, blockchain (dans ce qui suit, on préférera la terminologie anglo-saxonne, en raison de son emploi courant dans la plupart des langues, y compris en langue française) ; La technologie de l'environnement d'exécution sécurisé ou, en terminologie anglo-saxonne, du trusted execution environment (TEE).Without being limited to it, the proposed treatment method exploits, by combining them, the functionalities offered by two relatively recent technologies, of which it seems useful to make a preliminary description before going into the details of the method, namely: Blockchain technology or, in Anglo-Saxon terminology, blockchain (in what follows, Anglo-Saxon terminology will be preferred, because of its common use in most languages, including French); The technology of the secure execution environment or, in English terminology, of the trusted execution environment (TEE).
[0016] La technologie blockchain est organisée en couches. Elle comprend : Une couche d'infrastructure matérielle, appelée „réseau blockchain“ ; Une couche protocolaire appelée „protocole blockchain“ ; Une couche informationnelle, appelée „registre blockchain“.[0016] Blockchain technology is organized in layers. She understands : A layer of hardware infrastructure, called a “blockchain network”; A protocol layer called the “blockchain protocol”; An information layer, called the “blockchain register”.
[0017] Le réseau blockchain est un réseau informatique décentralisé, dit réseau pair-à-pair (en terminologie anglo-saxonne Peer-to-Peer ou P2P), constitué d'une pluralité d'ordinateurs (au sens fonctionnel du terme : il s'agit d'un appareil pourvu d'une unité de traitement informatique programmable, qui peut se présenter sous forme d'un smartphone, d'une tablette, d'un ordinateur de bureau, d'une station de travail, d'un serveur physique ou virtuel, c'est-à-dire un espace de calcul et de mémoire alloué au sein d'un serveur physique et sur lequel tourne un système d'exploitation ou une émulation de système d'exploitation), appelés „nœuds“ en référence à la théorie des graphes, capables de communiquer entre eux (c'est-à-dire de s'échanger des données informatiques), deux à deux, au moyen de liaisons filaires ou sans fil. The blockchain network is a decentralized computer network, called a peer-to-peer network (in Peer-to-Peer or P2P terminology), made up of a plurality of computers (in the functional sense of the term: it is a device provided with a programmable computer processing unit, which can be in the form of a smartphone, a tablet, a desktop computer, a workstation, a physical or virtual server, that is to say a computing and memory space allocated within a physical server and on which an operating system or an operating system emulation is running), called "nodes" with reference to the theory of graphs, capable of communicating with each other (ie exchanging computer data), two by two, by means of wired or wireless links.
[0018] Un réseau1blockchain comprenant des nœuds2communiquant par des liaisons3est illustré sur laFIG.1. Par souci de simplification et de conformité à la théorie des graphes, sur laFIG.1, les nœuds2du réseau1sont représentés par des cercles ; les liaisons3, par des arêtes reliant les cercles. Pour ne pas surcharger de traits le dessin, seules certaines liaisons3entre les nœuds2sont représentées. A network1blockchain comprising nodes2communicating by links3is illustrated in theFIG.1. For the sake of simplification and conformity with graph theory, on FIG.1, the nodes2 of the network1 are represented by circles; the bonds3, by edges connecting the circles. In order not to overload the drawing with lines, only certain links3 between nodes2 are shown.
[0019] Les nœuds2peuvent être disséminés sur de larges régions géographiques ; ils peuvent également être regroupés dans des régions géographiques plus restreintes. [0019] The nodes2 can be scattered over large geographic regions; they can also be grouped into smaller geographic regions.
[0020] Le protocole blockchain se présente sous forme d'un programme informatique implémenté dans chaque nœud2du réseau1blockchain, et qui inclut, outre des fonctions de dialogue - c'est-à-dire d'échange des données informatiques - avec les autres nœuds2du réseau1, un algorithme de calcul qui, à partir de données d'entrée appelées „transactions“ (qui sont des transcriptions d'interactions entre un ou plusieurs terminaux informatiques émetteurs et un ou plusieurs terminaux informatiques destinataires) : <tb><SEP>- Élabore des fichiers4de données structurées appelés „blocs“, chaque bloc4comprenant un corps4Acontenant des empreintes numériques de transactions, et un en-tête4Bcontenant : <tb><SEP><SEP>o Un numéro d'ordre, ou rang, ou encore hauteur (height en anglais), sous forme d'un nombre entier qui désigne la position du bloc4au sein d'une chaîne dans l'ordre croissant à partir d'un bloc initial (Genesis block en anglais) ; <tb><SEP><SEP>o Une empreinte numérique unique des données du corps4A ; <tb><SEP><SEP>o Une empreinte numérique unique, appelée pointeur, de l'en-tête du bloc4précédent, <tb><SEP><SEP>o Une donnée d'horodatage (timestamp en anglais) ; <tb><SEP>- Met en œuvre un mécanisme de validation des blocs4par consensus entre tout ou partie des nœuds2 ; <tb><SEP>- Concatène les blocs4validés pour former un registre5(le registre blockchain) sous forme d'un agrégat dans lequel chaque bloc4est relié mathématiquement au précédent par son pointeur.The blockchain protocol is in the form of a computer program implemented in each node2 of the network1 blockchain, and which includes, in addition to dialogue functions - that is to say exchange of computer data - with the other nodes2 of the network1 , a calculation algorithm which, from input data called "transactions" (which are transcriptions of interactions between one or more transmitting computer terminals and one or more recipient computer terminals): <tb> <SEP> - Builds structured data files4 called "blocks", each block4 including a body4containing digital transaction fingerprints, and a header4Bcontaining: <tb><SEP> <SEP> o A sequence number, or row, or height (height in English), in the form of an integer which designates the position of block4 within a chain in the order growing from an initial block (Genesis block); <tb><SEP> <SEP> o A unique digital fingerprint of body4A data; <tb><SEP> <SEP> o A unique digital fingerprint, called a pointer, of the header of the previous block4, <tb><SEP> <SEP> o A timestamp data; <tb> <SEP> - Implements a mechanism for validating blocks4 by consensus between all or part of the nodes2; <tb> <SEP> - Concatenates validated blocks4 to form a register5 (the blockchain register) in the form of an aggregate in which each block4 is mathematically linked to the previous one by its pointer.
[0021] La moindre modification des données du corps4Aou de l'en-tête4Bd'un bloc4affecte la valeur de son empreinte numérique et rompt par conséquent le lien existant entre ce bloc4ainsi modifié et le bloc4suivant dont le pointeur ne correspond plus. The slightest modification of the data of the body4Aou of the header4B of a bloc4affects the value of its digital fingerprint and consequently breaks the link existing between this bloc4 thus modified and the next bloc4 whose pointer no longer corresponds.
[0022] Selon un mode particulier de réalisation, l'empreinte numérique de chaque bloc4est un condensé (ou condensat, en anglais hash) des données du bloc4, c'est-à-dire le résultat d'une fonction de hachage appliquée aux données du bloc4(y compris le corps4Aet l'en-tête4Bà l'exception de l'empreinte numérique elle-même). La fonction de hachage est typiquement SHA-256. [0022] According to a particular embodiment, the digital fingerprint of each bloc4 is a digest (or hash) of the data of bloc4, that is to say the result of a hash function applied to the data of block4 (including body4A and header4B except for the digital fingerprint itself). The hash function is typically SHA-256.
[0023] Pour un bloc4donné de rang N (N un entier), le pointeur assure avec le bloc4précédent de rang N-1 une liaison inaltérable. En effet, toute modification des données du bloc4de rang N-1 aboutirait à la modification de son empreinte, et donc à un défaut de correspondance entre cette empreinte (modifiée) du bloc4de rang N-1 et le pointeur mémorisé parmi les métadonnées du bloc4de rang N. [0023] For a bloc4donné of rank N (N an integer), the pointer ensures with the precedes bloc4 of rank N-1 an unalterable link. Indeed, any modification of the data of block4 of rank N-1 would lead to the modification of its fingerprint, and therefore to a lack of correspondence between this (modified) fingerprint of block4 of rank N-1 and the pointer stored among the metadata of block4 of rank NOT.
[0024] La succession des blocs4reliés entre eux deux à deux par correspondance du pointeur d'un bloc4donné de rang N avec l'empreinte numérique du bloc précédent de rang N-1 constitue par conséquent le registre5blockchain sous forme d'un agrégat de blocs4corrélés, dans lequel la moindre modification des données d'un bloc4de rang N-1 se traduit par une rupture du lien avec le bloc4suivant de rang N - et donc la rupture du registre blockchain. The succession of blocks4 linked together two by two by correspondence of the pointer of a bloc4donné of rank N with the digital fingerprint of the previous block of rank N-1 therefore constitutes the register5blockchain in the form of an aggregate of correlated blocks4, in which the slightest modification of the data of a block4 of rank N-1 results in a breaking of the link with the following block4 of rank N - and therefore the breaking of the blockchain register.
[0025] C'est cette structure particulière qui procure aux données contenues dans le registre5blockchain une réputation d'immuabilité, garantie par le fait que le registre5blockchain est répliqué sur tous les nœuds2du réseau1, obligeant tout attaquant, non seulement à modifier tous les blocs4de rang supérieur au bloc4modifié, mais à déployer ces modifications (alors même que le registre5blockchain continue de se constituer par les nœuds2appliquant le protocole blockchain) à l'ensemble des nœuds2. It is this particular structure which gives the data contained in the register5blockchain a reputation for immutability, guaranteed by the fact that the register5blockchain is replicated on all the nodes2 of the network1, obliging any attacker, not only to modify all the blocks4 of rank greater than the modified block4, but to deploy these modifications (even though the register5blockchain continues to be constituted by the nodes2 applying the blockchain protocol) to all the nodes2.
[0026] Quel que soit le type de consensus appliqué par le mécanisme de validation des blocs4, la plupart des technologies blockchain ont pour fonction primaire d'enregistrer, dans leur registre5blockchain, des transactions passées entre un ou plusieurs terminaux émetteurs, et un ou plusieurs terminaux récepteurs, indifféremment appelés „utilisateurs“. Regardless of the type of consensus applied by the block validation mechanism4, most blockchain technologies have the primary function of recording, in their blockchain ledger, transactions between one or more issuing terminals, and one or more. receiving terminals, interchangeably called "users".
[0027] A chaque utilisateur est associé un compte, appelé de manière simplificatrice „portefeuille électronique“ (en anglais digital wallet), qui contient une zone mémoire et une interface programmatique ayant des fonctions d'interaction avec le réseau1blockchain pour lui soumettre des transactions, et des fonctions de synchronisation avec le registre5blockchain pour inscrire, dans la zone mémoire, les transactions validées par inscription dans le registre5blockchain. Each user is associated with an account, called in a simplified manner "electronic wallet" (in English digital wallet), which contains a memory area and a programmatic interface having interaction functions with the 1blockchain network to submit transactions to it, and synchronization functions with the 5blockchain register to register, in the memory area, the transactions validated by registration in the 5blockchain register.
[0028] Sauf mention contraire, et par souci de simplification, l'expression simple „chaîne de blocs“ ou „blockchain“ désigne le registre5blockchain lui-même. [0028] Unless otherwise indicated, and for the sake of simplicity, the simple expression "blockchain" or "blockchain" designates the register5blockchain itself.
[0029] Certaines technologies blockchain récentes (Ethereum, typiquement) ajoutent aux trois couches matérielle (réseau blockchain), protocolaire (protocole blockchain) et informationnelle (registre blockchain) une couche applicative qui se présente sous forme d'un environnement de développement permettant de programmer des applications, appelées „contrats intelligents“ (en anglais Smart contracts), qui peuvent être déployées sur le registre5blockchain à partir des nœuds2. Some recent blockchain technologies (Ethereum, typically) add to the three hardware (blockchain network), protocol (blockchain protocol) and informational (blockchain register) layers an application layer which is in the form of a development environment for programming applications, called “smart contracts”, which can be deployed on the ledger5blockchain from nodes2.
[0030] On décrit à présent succinctement la technologie des contrats intelligents. We will now briefly describe the technology of smart contracts.
[0031] Un contrat intelligent comprend deux éléments : Un compte, appelé „compte de contrat“ (en anglais Contract account), dans la zone mémoire duquel est inscrit un code source contenant des instructions informatiques implémentant les fonctions attribuées au contrat intelligent ; Un code exécutable (en anglais Executable Bytecode) résultant d'une compilation du code source, ce code exécutable étant mémorisé ou déployé au sein du registre5blockchain, c'est-à-dire inséré en tant que transaction dans un bloc4du registre5blockchain.[0031] A smart contract comprises two elements: An account, called a “Contract account”, in the memory area of which is written a source code containing computer instructions implementing the functions assigned to the smart contract; An executable code (in English Executable Bytecode) resulting from a compilation of the source code, this executable code being stored or deployed within the register5blockchain, that is to say inserted as a transaction in a block4 of the register5blockchain.
[0032] Dans la technologie blockchain proposée par Ethereum, un smart contrat est activé par un appel (en anglais Call) adressé par un autre compte, dit compte initiateur (qui peut être un compte utilisateur ou un compte de contrat), cet appel se présentant sous forme d'une transaction contenant, d'une part, un fonds de réserve à transférer (c'est-à-dire un paiement) depuis le compte initiateur au compte de contrat et, d'autre part, des conditions initiales. In the blockchain technology proposed by Ethereum, a smart contract is activated by a call (in English Call) sent by another account, said initiator account (which can be a user account or a contract account), this call is presenting in the form of a transaction containing, on the one hand, a reserve fund to be transferred (i.e. a payment) from the initiating account to the contract account and, on the other hand, initial conditions.
[0033] Cet appel est inscrit en tant que transaction dans le registre5blockchain. Il déclenche : Le transfert du fonds de réserve du compte initiateur au compte de contrat ; La désignation, parmi le réseau1blockchain, d'un nœud d'exécution associé à un compte utilisateur ; L'activation, dans une unité de traitement informatique du nœud d'exécution, d'un environnement d'exécution ou machine virtuelle (appelé Ethereum Virtual Machine ou EVM dans le cas d'Ethereum) ; L'exécution pas-à-pas des étapes de calcul du code exécutable par la machine virtuelle à partir des conditions initiales, chaque étape de calcul étant accompagnée d'un transfert d'une fraction (appelée gas dans le cas d'Ethereum) du fonds de réserve depuis le compte de contrat vers le compte utilisateur du nœud d'exécution, et ce jusqu'à épuisement des étapes de calcul, au terme desquelles est obtenu un résultat ; L'inscription (éventuellement sous forme d'une empreinte numérique) de ce résultat en tant que transaction dans le registre5blockchain.This call is recorded as a transaction in the register5blockchain. It triggers: The transfer of the reserve fund from the initiating account to the contract account; The designation, among the network1blockchain, of an execution node associated with a user account; The activation, in a computer processing unit of the execution node, of an execution environment or virtual machine (called Ethereum Virtual Machine or EVM in the case of Ethereum); The step-by-step execution of the steps for calculating the executable code by the virtual machine from the initial conditions, each step of calculation being accompanied by a transfer of a fraction (called gas in the case of Ethereum) of the reserve fund from the contract account to the user account of the execution node, until the calculation steps are exhausted, at the end of which a result is obtained; The entry (possibly in the form of a digital fingerprint) of this result as a transaction in the ledger5blockchain.
[0034] Le compte initiateur récupère (c'est-à-dire, en pratique, télécharge) le résultat lors de sa synchronisation au registre5blockchain. The initiating account retrieves (that is to say, in practice, downloads) the result when it is synchronized with the register5blockchain.
[0035] On introduit à présent brièvement les environnements d'exécution sécurisé. We now briefly introduce secure execution environments.
[0036] Un environnement d'exécution sécurisé (Trusted execution environment ou TEE) est, au sein d'une unité6de traitement informatique pourvue d'un processeur ou CPU (Central Processing Unit)7, un espace temporaire de calcul et de stockage de données, appelé (par convention) enclave, ou encore enclave cryptographique, qui se trouve isolé, par des moyens cryptographiques, de toute action non autorisée résultant de l'exécution d'une application hors de cet espace, typiquement du système d'exploitation. A secure execution environment (Trusted execution environment or TEE) is, within a computer processing unit provided with a processor or CPU (Central Processing Unit) 7, a temporary space for computing and storing data. , called (by convention) an enclave, or even cryptographic enclave, which is isolated, by cryptographic means, from any unauthorized action resulting from the execution of an application outside this space, typically the operating system.
[0037] Intel® a, par exemple, revu à partir de 2013 la structure et les interfaces de ses processeurs pour y inclure des fonctions d'enclave, sous la dénomination Software Guard Extension, plus connue sous l'acronyme SGX. SGX équipe la plupart des processeurs de type XX86 commercialisés par Intel® depuis 2015, et plus précisément à partir de la sixième génération incorporant la microarchitecture dite Skylake. Les fonctions d'enclave proposées par SGX ne sont pas accessibles d'office : il convient de les activer via le système élémentaire d'entrée/sortie (Basic Input Output System ou BIOS). [0037] Intel®, for example, from 2013 revised the structure and interfaces of its processors to include enclave functions, under the name Software Guard Extension, better known by the acronym SGX. SGX equips most of the XX86 type processors marketed by Intel® since 2015, and more specifically from the sixth generation incorporating the so-called Skylake microarchitecture. The enclave functions offered by SGX are not automatically accessible: they must be activated via the elementary input / output system (Basic Input Output System or BIOS).
[0038] Il n'entre pas dans les nécessités de la présente description de détailler l'architecture des enclaves, dans la mesure où : En dépit de sa relative jeunesse, cette architecture est relativement bien documentée, notamment par Intel® qui a déposé de nombreux brevets, cf. par ex., parmi les plus récents, la demande de brevet américain US 2019/0058696 ; Des processeurs permettant de les implémenter sont disponibles sur le marché - notamment les processeur Intel® précités ; Seules les fonctionnalités permises par l'enclave nous intéressent ici, ces fonctionnalités pouvant être mises en œuvre via des lignes de commande spécifiques. A ce titre, l'homme du métier pourra se référer au guide édité en 2016 par Intel® : Software Guard Extensions, Developer Guide.It does not come within the requirements of the present description to detail the architecture of the enclaves, insofar as: Despite its relative youth, this architecture is relatively well documented, in particular by Intel® which has filed numerous patents, cf. e.g., among the most recent, the US patent application US 2019/0058696; Processors making it possible to implement them are available on the market - in particular the aforementioned Intel® processors; Only the functionalities allowed by the enclave are of interest to us here, these functionalities being able to be implemented via specific command lines. As such, those skilled in the art may refer to the guide published in 2016 by Intel®: Software Guard Extensions, Developer Guide.
[0039] Pour une description plus accessible des enclaves, et plus particulièrement d'Intel® SGX, l'homme du métier peut également se référer à A. Adamski, Overview of Intel SGX - Part 1, SGX Internal, ou à D. Boneh, Surnaming Schemes, Fast Verification, and Applications to SGX Technology, in Topics in Cryptology, CT - RSA 2017, The Cryptographers' Track at the RSA Conférence 2017, San Francisco, CA, USA, Feb.14-17, 2017, Proceedings, pp.149-164, ou encore à K. Severinsen, Secure Programming with Intel SGX and Novel Applications, Thesis submitted for the Degree of Master in Programming and Networks, Dept. Of Informatics, Faculty of Mathematics and Natural Science, University of Oslo, Autumn 2017. For a more accessible description of the enclaves, and more particularly of Intel® SGX, those skilled in the art can also refer to A. Adamski, Overview of Intel SGX - Part 1, SGX Internal, or to D. Boneh , Nickaming Schemes, Fast Verification, and Applications to SGX Technology, in Topics in Cryptology, CT - RSA 2017, The Cryptographers' Track at the RSA Conférence 2017, San Francisco, CA, USA, Feb. 14-17, 2017, Proceedings, pp. 149-164, or to K. Severinsen, Secure Programming with Intel SGX and Novel Applications, Thesis submitted for the Degree of Master in Programming and Networks, Dept. Of Informatics, Faculty of Mathematics and Natural Science, University of Oslo, Autumn 2017.
[0040] Pour résumer, en référence à laFIG.2, une enclave8comprend, en premier lieu, une zone9mémoire sécurisée (dénommée Page Cache d'enclave, en anglais Enclave Page Cache ou EPC), qui contient du code et des données relatives à l'enclave elle-même, et dont le contenu est chiffré et déchiffré en temps réel par une puce dédiée dénommée Moteur de Chiffrement de Mémoire (en anglais Memory Encryption Engine ou MEE). L'EPC9est implémentée au sein d'une partie de la mémoire vive dynamique (DRAM)10allouée au processeur7, et à laquelle les applications ordinaires (notamment le système d'exploitation) n'ont pas accès. To summarize, with reference to theFIG.2, an enclave8includes, first of all, a secure memory zone9 (called Enclave Page Cache, in English Enclave Page Cache or EPC), which contains code and data relating to the 'enclave itself, and whose content is encrypted and decrypted in real time by a dedicated chip called the Memory Encryption Engine (MEE). The EPC9 is implemented within a part of the dynamic random access memory (DRAM) 10 allocated to the processor7, and to which ordinary applications (in particular the operating system) do not have access.
[0041] L'enclave8comprend, en deuxième lieu, des clés cryptographiques employées pour chiffrer ou signer à la volée les données sortant de l'EPC9, ce grâce à quoi l'enclave8peut être identifiée (notamment par d'autres enclaves), et les données qu'elle génère peuvent être chiffrées pour être stockées dans des zones de mémoire non protégées (c'est-à-dire hors de l'EPC9). [0041] The enclave8 comprises, secondly, cryptographic keys used to encrypt or sign on the fly the data leaving the EPC9, whereby the enclave8 can be identified (in particular by other enclaves), and the The data it generates can be encrypted to be stored in unprotected memory areas (i.e. outside of the EPC9).
[0042] Pour pouvoir exploiter une telle enclave8, une application11doit être segmentée en, d'une part, une ou plusieurs parties12non sécurisées (en anglais untrusted part(s), et, d'autre part, une ou plusieurs parties13sécurisées (en anglais trusted part(s). In order to be able to use such an enclave8, an application11 must be segmented into, on the one hand, one or more unsecured parts12 (in English untrusted part (s), and, on the other hand, one or more secure parts13 (in English trusted part (s).
[0043] Seuls les processus induits par la (les) partie(s)13sécurisée(s) de l'application11peuvent accéder à l'enclave8. Les processus induits par la (les) partie(s)12non sécurisée(s) ne peuvent pas accéder à l'enclave8, c'est-à-dire qu'ils ne peuvent pas dialoguer avec les processus induits par la (les) partie(s)13sécurisée(s). Only the processes induced by the secure part (s) 13 of the application11 can access the enclave8. The processes induced by the unsecured part (s) 12 cannot access the enclave8, i.e. they cannot dialogue with the processes induced by the part (s) (s) 13secure (s).
[0044] La création (également dénommée instanciation) de l'enclave8et le déroulement de processus en son sein sont commandés via un jeu14d'instructions particulières exécutables par le processeur7et appelées par la (les) partie(s)13sécurisée(s) de l'application11. The creation (also called instantiation) of the enclave8 and the flow of processes within it are controlled via a set of particular instructions executable by the processor7et called by the part (s) 13secure (s) of the application11.
[0045] Parmi ces instructions : ECREATE commande la création d'une enclave8 ; EINIT commande l'initialisation de l'enclave8 ; EADD commande le chargement de code dans l'enclave8 ; EENTER commande l'exécution de code dans l'enclave8 ; ERESUME commande une nouvelle exécution de code dans l'enclave8 ; EEXIT commande la sortie de l'enclave8, typiquement à la fin d'un processus exécuté dans l'enclave8.[0045] Among these instructions: ECREATE commands the creation of an enclave8; EINIT commands the initialization of the enclave8; EADD commands code loading into the enclave8; EENTER commands code execution in the enclave8; ERESUME commands a new execution of code in the enclave8; EEXIT controls the exit of enclave8, typically at the end of a process running in enclave8.
[0046] On a, sur laFIG.2, représenté de manière fonctionnelle l'enclave8sous la forme d'un bloc (en traits pointillés) englobant la partie13sécurisée de l'application11, le jeu14d'instructions du processeur7, et l'EPC9. Cette représentation n'est pas réaliste ; elle vise simplement à regrouper visuellement les éléments qui composent ou exploitent l'enclave8. We have, on laFIG.2, functionally represented the enclave8 in the form of a block (in dotted lines) encompassing the secure part of the application11, the set14d'instructions of the processor7, and the EPC9. This representation is not realistic; it simply aims to visually group together the elements that make up or exploit the enclave8.
[0047] Nous expliquerons ci-après comment sont exploitées les enclaves. We will explain below how the enclaves are exploited.
[0048] Comme cela est visible sur laFIG.3, on a représenté des données15à traiter sous forme d'un dossier. Ces données15peuvent se présenter sous forme d'un ou plusieurs fichiers informatiques. Les données15peuvent être structurées, par ex. sous forme de fichiers de bases de données, de formulaires, de tableurs, de documents. Il peut également s'agir de données brutes, non structurées. As can be seen in laFIG.3, there is shown data 15 to be processed in the form of a file. These data15 can be in the form of one or more computer files. Data15 can be structured, e.g. in the form of database files, forms, spreadsheets, documents. It can also be raw, unstructured data.
[0049] Ces données15sont créées, ou temporairement stockées, en clair (c'est-à-dire sous forme non chiffrée), au sein d'un terminal16dit émetteur, relié à un réseau1blockchain. These data15sont created, or temporarily stored, in clear (that is to say in unencrypted form), within a terminal16dit transmitter, connected to a network1blockchain.
[0050] Le traitement des données est destiné à être réalisé au moyen d'une application17tierce qui se présente sous forme d'un ou plusieurs fichiers de données programmatiques (c'est-à-dire de données représentant des instructions d'un programme d'ordinateur). The data processing is intended to be carried out by means of an application17tierce which is in the form of one or more programmatic data files (that is to say data representing instructions of a program of 'computer).
[0051] Les données programmatiques peuvent être des lignes de code en langage haut niveau (code source). Dans ce cas, les données programmatiques se présentent typiquement sous forme de fichiers texte. Elles peuvent également se présenter sous forme d'un ou plusieurs fichiers de code intermédiaire (bytecode), ou encore sous forme d'un ou plusieurs fichiers de code exécutable directement par un processeur. The programmatic data can be lines of code in high level language (source code). In this case, the programmatic data is typically in the form of text files. They can also be in the form of one or more intermediate code files (bytecode), or else in the form of one or more code files that can be executed directly by a processor.
[0052] L'application17est créée (ou éditée), ou temporairement stockée, en clair (c'est-à-dire sous forme non chiffrée), au sein d'un terminal18dit éditeur, également relié au réseau1. The application 17 is created (or edited), or temporarily stored, in clear (that is to say in unencrypted form), within a terminal 18 said editor, also connected to the network1.
[0053] Avant d'être stockées sur le réseau1en vue d'un futur traitement, les données15sont d'abord chiffrées pour former un premier conteneur19crypté de données. Le déchiffrement du premier conteneur19crypté ne peut être réalisé qu'au moyen d'une première clé20cryptographique de déchiffrement. Selon un mode particulier de réalisation, une seule clé20est utilisée à la fois pour le chiffrement et le déchiffrement. Dans ce cas, le chiffrement est dit symétrique. Before being stored on the network1 for future processing, the data15 is first encrypted to form a first encrypted data container19. The decryption of the first encrypted container can only be carried out by means of a first cryptographic decryption key. According to a particular embodiment, a single key 20 is used for both the encryption and the decryption. In this case, the encryption is said to be symmetric.
[0054] Dans l'exemple illustré, le chiffrement est réalisé au sein du terminal16émetteur. In the example illustrated, the encryption is carried out within the transmitter terminal16.
[0055] Une fois les données15chiffrées, le premier conteneur19et la première clé20de déchiffrement sont mémorisés séparément (ici sur des nœuds2distincts) sur le réseau1. Once the encrypted data15, the first container19et the first decryption key20 are stored separately (here on distinct nodes2) on the network1.
[0056] De même, avant d'être stockée sur le réseau1en vue d'une future utilisation, l'application17est d'abord chiffrée pour former un deuxième conteneur21crypté. Le déchiffrement du deuxième conteneur21crypté ne peut être réalisé qu'au moyen d'une deuxième clé22cryptographique de déchiffrement. Selon un mode particulier de réalisation, une seule clé22est utilisée à la fois pour le chiffrement et le déchiffrement. Dans ce cas, le chiffrement est dit symétrique. Likewise, before being stored on the network1 for future use, the application17 is first encrypted to form a second encrypted container21. The decryption of the second encrypted container21 can only be carried out by means of a second decryption cryptographic key22. According to a particular embodiment, a single key 22 is used for both encryption and decryption. In this case, the encryption is said to be symmetric.
[0057] Dans l'exemple illustré, le chiffrement est réalisé au sein du terminal18éditeur. In the example illustrated, the encryption is carried out within the terminal18 Editor.
[0058] Une fois l'application17chiffrée, le deuxième conteneur21et la deuxième clé22de déchiffrement sont mémorisés séparément (ici sur des nœuds2distincts) sur le réseau1. Once the application17 has been encrypted, the second container21 and the second decryption key22 are stored separately (here on distinct nodes2) on the network1.
[0059] Le traitement des données15peut être sollicité par un terminal23tiers (qui peut être confondu avec l'éditeur18) équipé d'une baliseBde géolocalisation. Dans ce cas, une requête (REQ,FIG.5) de traitement des données15par l'application17est émise par le terminal23tiers. Selon un mode de réalisation illustré sur laFIG.5, la requête est adressée à un contrat24intelligent déployé sur la blockchain5. The processing of the data 15 can be requested by a third-party terminal (which can be confused with the publisher 18) equipped with a geolocation beacon. In this case, a request (REQ, FIG. 5) for processing the data 15 by the application 17 is sent by the terminal 23 third parties. According to an embodiment illustrated on theFIG.5, the request is addressed to an intelligent contract24 deployed on the blockchain5.
[0060] Cette requêteREQcontient des donnéesLOCinstantanées de géolocalisation issues de la baliseB. A titre d'exemple, les donnéesLOCsont des coordonnées géographiques bi- ou tridimensionnelles. This REQ request contains instantaneous geolocation LOC data from the B beacon. By way of example, the LOC data are two- or three-dimensional geographic coordinates.
[0061] Le traitement des données15par l'application17est alors conditionné à la vérification que ces donnéesLOCvérifient une conditionREFprédéfinie de géolocalisation, inscrite dans la blockchain5. Cette conditionREFcomprend par ex. la définition d'une zone géographique. The processing of the data 15 by the application 17 is then conditioned on the verification that this data LOC verifies a predefined condition REF of geolocation, registered in the blockchain 5. This REF condition includes e.g. the definition of a geographical area.
[0062] Une opération préalable consiste par conséquent, à réception de la requête de traitement par au moins un nœud2du réseau1, à vérifier si les donnéesLOCde géolocalisation vérifient la conditionREFde géolocalisation inscrite dans la blockchain5. Ainsi, par exemple, les donnéesLOCde géolocalisation vérifient la conditionREFsi les coordonnées géographiques contenues dans les donnéesLOCsont situées dans la zone définie par la conditionREF. A prior operation therefore consists, upon receipt of the processing request by at least one node2 of the network1, in verifying whether the geolocation dataLOCs verify the geolocation conditionREF recorded in the blockchain5. Thus, for example, the geolocation LOC data verifies the REF condition if the geographic coordinates contained in the LOC data are located in the area defined by the REF condition.
[0063] Si la conditionREFest effectivement satisfaite par les donnéesLOC, alors le traitement est autorisé (ici par le contrat24intelligent). If the condition REF is actually satisfied by the LOC data, then the processing is authorized (here by the intelligent contract).
[0064] Pour conduire le traitement, une première opération consiste à sélectionner (SEL), au sein du réseau1, au moins un nœud, dit nœud2Cde calcul, équipé d'une unité6de traitement informatique dans laquelle est implémentée une enclave8. To carry out the processing, a first operation consists in selecting (SEL), within the network1, at least one node, called calculation node2C, equipped with a computer processing unit6 in which an enclave8 is implemented.
[0065] Une deuxième opération consiste à instancier l'enclave8. A second operation consists in instantiating the enclave8.
[0066] Une troisième opération consiste (ici sur requête du contrat24intelligent) à charger dans l'enclave8(de préférence via des lignes25de communication sécurisées, typiquement utilisant le protocole Transport Layer Security ou TLS) : Le premier conteneur19crypté et la première clé20cryptographique de déchiffrement qui lui est associée ; Le deuxième21conteneur et la deuxième clé22cryptographique de déchiffrement qui lui est associée.A third operation consists (here at the request of the intelligent contract24) in loading into the enclave8 (preferably via secure communication lines, typically using the Transport Layer Security or TLS protocol): The first encrypted container19 and the first decryption cryptographic key20 associated with it; The second container 21 and the second decryption cryptographic key 22 associated with it.
[0067] A cet effet, l'enclave8est avantageusement pourvue, dès son instanciation, d'une émulation d'interface26de communication supportant le protocole choisi (ici TLS) pour l'échange des données sécurisées. For this purpose, the enclave8est advantageously provided, from its instantiation, with a communication interface26de emulation supporting the chosen protocol (here TLS) for the exchange of secure data.
[0068] Une quatrième opération consiste à inscrire dans un bloc4de la chaîne5de blocs, par un ou plusieurs nœuds2du réseau, au moins une transaction contenant une empreinte numérique de la requête de traitement et/ou du chargement ainsi effectué. A fourth operation consists in entering in a bloc4de the chain5de blocks, by one or more nodes2 of the network, at least one transaction containing a digital imprint of the processing request and / or of the loading thus carried out.
[0069] Une cinquième opération consiste, dans l'enclave8, à déchiffrer les données du premier conteneur19au moyen de la première clé20de déchiffrement. A l'issue de cette opération, les données15sont accessibles en clair dans l'enclave8(mais pas depuis l'extérieur de celle-ci). A fifth operation consists, in the enclave8, in decrypting the data of the first container19 by means of the first decryption key20. At the end of this operation, the data15 are accessible in clear in the enclave8 (but not from outside it).
[0070] A cet effet, l'enclave8est avantageusement pourvue d'un module27de déchiffrement. For this purpose, the enclave8est advantageously provided with a decryption module27de.
[0071] Une sixième opération consiste, dans l'enclave8, à déchiffrer le(s) fichier(s) de données programmatiques de l'application17tierce contenu(s) dans le deuxième conteneur21, au moyen de la deuxième clé22de déchiffrement. Cette opération est ici réalisée par le module27de déchiffrement. A l'issue de cette opération, l'application17est accessible en clair dans l'enclave8(mais pas depuis l'extérieur de celle-ci). A sixth operation consists, in the enclave8, in decrypting the program (s) data file (s) of the application17thierce contained in the second container21, by means of the second decryption key22. This operation is performed here by the decryption module 27. At the end of this operation, the application 17 is accessible in clear in the enclave8 (but not from outside it).
[0072] Une septième opération consiste alors à exécuter l'application17ainsi déchiffrée sur les données15ainsi déchiffrées. Cette opération est avantageusement conduite par un module28de calcul dont est pourvue l'enclave5. A seventh operation then consists in executing the application17 thus decrypted on the data15 thus decrypted. This operation is advantageously carried out by a calculation module 28 with which the enclave5 is provided.
[0073] Lorsque l'application17se présente sous forme d'un (ou plusieurs) fichier(s) exécutable(s), cette exécution peut être conduite directement. Lorsque l'application17se présente sous forme de code source ou de bytecode, il convient de le compiler au préalable. Dans ce cas, on peut charger dans l'enclave8, préalablement à l'exécution, un programme de compilation. When the application 17 is in the form of one (or more) executable file (s), this execution can be carried out directly. When the application17 is in the form of source code or bytecode, it should be compiled first. In this case, a compilation program can be loaded into the enclave8, prior to execution.
[0074] L'exécution de l'application17sur les données produit un résultat29. Ce résultat29est mémorisé, hors de l'enclave8, sur un emplacement mémoire prédéfini. The execution of the application17 on the data produces a result29. This result29 is stored, outside the enclave8, on a predefined memory location.
[0075] Il est alors inscrit, dans un bloc4de la chaîne5de blocs, par un ou plusieurs nœuds2du réseau, au moins une transaction contenant une empreinte numérique de ce résultat29. It is then registered, in a block4of the chain5de blocks, by one or more nodes2 of the network, at least one transaction containing a digital fingerprint of this result29.
[0076] Grâce à ce procédé, les données15peuvent être analysées sans être disponibles en clair hors de l'enclave8, à laquelle les tiers n'ont pas accès. En outre, les données15ne sont pas non plus communiquées à l'éditeur18pour qu'il procède lui-même à l'exécution de son application17. L'éditeur18ne dispose donc pas des données15 : il ne dispose que du résultat fourni par l'exécution de son application17. Il en résulte le maintien de la confidentialité des données15y compris vis-à-vis des tiers qui souhaitent (et peuvent être autorisés à) les analyser. By virtue of this method, the data15 can be analyzed without being available in the clear outside the enclave8, to which third parties do not have access. In addition, the data15 is not communicated to the publisher18 for it to carry out its application itself17. The editor18 therefore does not have the data15: it only has the result provided by the execution of its application17. This results in maintaining the confidentiality of data15, including vis-à-vis third parties who wish (and may be authorized to) analyze them.
[0077] De même, l'application14n'est pas non plus connue des tiers (ou copiable par eux), en dépit de sa disponibilité pour le traitement des données15dans l'enclave5. Il en résulte que l'éditeur18est protégé de la copie tout en pouvant traiter les données15dès lors qu'il y est autorisé. Likewise, the application14 is not known to third parties (or can be copied by them) either, despite its availability for the processing of data15 in the enclave5. As a result, the publisher18 is copy-protected while being able to process the data15 when authorized to do so.
[0078] L'utilisation de la blockchain5permet en outre de conserver, de manière infalsifiable : La conditionREFde géolocalisation (au bénéfice de la sécurité de l'émetteur16, qui souhaite par exemple s'assurer que les tiers sollicitant l'exploitation de ses données se trouvent dans une région géographique déterminée, pour limiter notamment le risque de fraude) ; Une trace de l'exploitation des données (au bénéfice de l'identification, par l'émetteur16, des tiers ayant sollicité et/ou effectué une telle exploitation).The use of the blockchain5 also makes it possible to preserve, in a tamper-proof manner: The geolocation REF condition (for the benefit of the security of the issuer16, which wishes, for example, to ensure that third parties requesting the use of its data are located in a specific geographic region, in particular to limit the risk of fraud); A trace of the use of the data (for the benefit of the identification, by the issuer16, of third parties who requested and / or carried out such exploitation).
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CH00749/19A CH716277A2 (en) | 2019-06-07 | 2019-06-07 | Process for processing, within a blockchain and sub-enclave network, computer data encrypted by means of an encrypted application, subject to geolocation. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CH00749/19A CH716277A2 (en) | 2019-06-07 | 2019-06-07 | Process for processing, within a blockchain and sub-enclave network, computer data encrypted by means of an encrypted application, subject to geolocation. |
Publications (1)
Publication Number | Publication Date |
---|---|
CH716277A2 true CH716277A2 (en) | 2020-12-15 |
Family
ID=73727410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CH00749/19A CH716277A2 (en) | 2019-06-07 | 2019-06-07 | Process for processing, within a blockchain and sub-enclave network, computer data encrypted by means of an encrypted application, subject to geolocation. |
Country Status (1)
Country | Link |
---|---|
CH (1) | CH716277A2 (en) |
-
2019
- 2019-06-07 CH CH00749/19A patent/CH716277A2/en not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2021527274A (en) | Distributed access, storage, and transfer of blockchain | |
CN111814156B (en) | Data acquisition method, device and equipment based on trusted equipment | |
EP3903463A1 (en) | Platform for securing data | |
CH716295A2 (en) | A method of multiple signature of a transaction intended for a blockchain, by means of cryptographic keys distributed among the nodes of a peer-to-peer network. | |
CH716298A2 (en) | A method of storing, in encrypted form, an application on a blockchain network, with prior audit of the source code of this application. | |
CH716285A2 (en) | Method for checking the biometric data of an individual, with registration, in a blockchain, of an analysis result. | |
CH716277A2 (en) | Process for processing, within a blockchain and sub-enclave network, computer data encrypted by means of an encrypted application, subject to geolocation. | |
CH716276A2 (en) | A method of processing, within a blockchain and sub-enclave network, computer data encrypted by means of an encrypted application, for an authorized third party. | |
CH716275A2 (en) | A method of processing, within a blockchain and sub-enclave network, encrypted computer data by means of an encrypted application. | |
CH716294A2 (en) | Decentralized signature process, under biometric control and under conditions of personal identification and geolocation, of a transaction intended for a blockchain. | |
CH716279A2 (en) | A method of processing, within a blockchain and sub-enclave network, encrypted computer data by means of an encrypted application containing source code. | |
CH716293A2 (en) | Decentralized signature process, under biometric control and subject to personal identification, of a transaction intended for a blockchain. | |
CH716281A2 (en) | A method of processing, within a blockchain and sub-enclave network, encrypted computer data by means of an encrypted application. | |
CH716283A2 (en) | A method of distributed processing, within a blockchain network and sub-enclaves, of computer data encrypted by means of an encrypted application. | |
CH716297A2 (en) | A method of processing, in an enclave, encrypted computer data by means of an encrypted application containing source code, with prior auditing thereof. | |
CH716284A2 (en) | Process for distributed processing, within a blockchain network and sub-enclaves, of computer data encrypted with a fragmented key. | |
CH716261A2 (en) | A method of storing computer data by distributing an encrypted container and its decryption key on a blockchain network. | |
CH716263A2 (en) | A method of storing computer data by distributing an encrypted container and its fragmented decryption key on a blockchain network. | |
CH716266A2 (en) | A method of storing computer data on a blockchain network with proof of storage from a storage node equipped with a cryptographic enclave. | |
CH716262A2 (en) | A method of storing computer data by distributing an encrypted container and its decryption key on separate nodes of a blockchain network. | |
CH716267A2 (en) | A method of storing computer data on a blockchain network with proof of storage from a computing node equipped with a cryptographic enclave. | |
CH716286A2 (en) | A method of checking the biometric data of an individual under condition of geolocation, with registration, in a blockchain, of an analysis result. | |
CH716287A2 (en) | Process for processing biometric data of an individual, with phases of calibration and control and registration, in a blockchain, of an analysis result. | |
CH716288A2 (en) | Process for processing biometric data of an individual, with phases of calibration and control and registration, in a blockchain, subject to geolocation, of an analysis result. | |
CH716289A2 (en) | A method of checking the biometric data of an individual, with registration, in a blockchain, subject to personal identification, of an analysis result. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AZW | Rejection (application) |