CH716277A2 - Procédé de traitement, au sein d'un réseau blockchain et sous enclave, de données informatiques chiffrées au moyen d'une application chiffrée, sous condition de géolocalisation. - Google Patents

Procédé de traitement, au sein d'un réseau blockchain et sous enclave, de données informatiques chiffrées au moyen d'une application chiffrée, sous condition de géolocalisation. Download PDF

Info

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
Application number
CH00749/19A
Other languages
English (en)
Inventor
Attia Jonathan
Louiset Raphaël
Original Assignee
Lapsechain Sa C/O Leax Avocats
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 Lapsechain Sa C/O Leax Avocats filed Critical Lapsechain Sa C/O Leax Avocats
Priority to CH00749/19A priority Critical patent/CH716277A2/fr
Publication of CH716277A2 publication Critical patent/CH716277A2/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/74Protecting 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/107Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0825Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0872Generation 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3226Cryptographic 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/3231Biological data, e.g. fingerprint, voice or retina
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3234Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3239Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2111Location-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.

Description

DOMAINE TECHNIQUE
[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.
ART ANTERIEUR
[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).
[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).
[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.
[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.
[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.
[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.
[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.
[0009] Il peut en outre être souhaitable de soumettre le traitement à autorisation, en minimisant dans ce cas le risque de fraude.
[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.
[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.
RESUME DE L'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.
BREVE DESCRIPTION DES 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.
DESCRIPTION DETAILLEE DE L'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).
[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).
[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“.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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“.
[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.
[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.
[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.
[0030] On décrit à présent succinctement la technologie des contrats intelligents.
[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.
[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.
[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.
[0034] Le compte initiateur récupère (c'est-à-dire, en pratique, télécharge) le résultat lors de sa synchronisation au registre5blockchain.
[0035] On introduit à présent brièvement les environnements d'exécution sécurisé.
[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.
[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).
[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.
[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.
[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.
[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).
[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).
[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).
[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.
[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.
[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.
[0047] Nous expliquerons ci-après comment sont exploitées les enclaves.
[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.
[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.
[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).
[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.
[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.
[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.
[0054] Dans l'exemple illustré, le chiffrement est réalisé au sein du terminal16émetteur.
[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.
[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.
[0057] Dans l'exemple illustré, le chiffrement est réalisé au sein du terminal18éditeur.
[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.
[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.
[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.
[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.
[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.
[0063] Si la conditionREFest effectivement satisfaite par les donnéesLOC, alors le traitement est autorisé (ici par le contrat24intelligent).
[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.
[0065] Une deuxième opération consiste à instancier l'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.
[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.
[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é.
[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).
[0070] A cet effet, l'enclave8est avantageusement pourvue d'un module27de déchiffrement.
[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).
[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.
[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.
[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.
[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.
[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.
[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é.
[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).

Claims (1)

1. Procédé de traitement de données (15) informatiques au sein d'un réseau (1) pair-à-pair composé d'une pluralité de nœuds (2) formant une base de données distribuée sur laquelle est mémorisée, par réplication sur chaque nœud (2), une chaîne (5) de blocs, au moyen d'une application (17) tierce sous forme d'un ou plusieurs fichier(s) de données programmatiques, ce procédé comprenant les opérations consistant à : - Chiffrer les données (15) à traiter pour former un premier conteneur (19) crypté de données ; - Mémoriser séparément, sur le réseau (1), le premier conteneur (19) crypté et une première clé (20) cryptographique de déchiffrement de celui-ci ; - Chiffrer le(s) fichier(s) de données programmatiques de l'application (17) tierce pour former un deuxième conteneur (21) crypté ; - Mémoriser séparément, sur le réseau (1), le deuxième conteneur (21) et une deuxième clé (22) cryptographique de déchiffrement associée ; - Emettre, à partir d'un terminal (24) tiers équipé d'une balise (B) de géolocalisation et à destination du réseau (1), une requête de traitement des données (15) par l'application (17) tierce, cette requête contenant des données (LOC) instantanées de géolocalisation issues de la balise (B) ; - A réception de la requête de traitement par au moins un nœud (2) du réseau (1), identifier dans la chaîne (5) de blocs une condition (REF) prédéfinie de géolocalisation ; - Si les données (LOC) instantanées de géolocalisation vérifient la condition (REF) prédéfinie de géolocalisation, sélectionner au sein du réseau (1) au moins un nœud, dit nœud (2C) de calcul, équipé d'une unité (6) de traitement informatique dans laquelle est implémenté un environnement d'exécution sécurisé par cryptographie, dit enclave (8) ; - Instancier l'enclave (8) du nœud (2C) de calcul ; - Charger dans l'enclave (8) du nœud (2C) de calcul le premier conteneur (19) et la première clé (20) cryptographique de déchiffrement associée, ainsi que le deuxième conteneur (21) et la deuxième clé (22) cryptographique de déchiffrement associée ; - Inscrire dans un bloc (4) de la chaîne (5) de blocs, par un ou plusieurs nœuds (2) du réseau (1), au moins une transaction contenant une empreinte numérique de la requête de traitement et/ou du chargement ainsi effectué ; - Dans l'enclave (8) du nœud (2C) de calcul : o Déchiffrer les données (15) du premier conteneur (19) au moyen de la première clé (20) cryptographique de déchiffrement ; o Déchiffrer le(s) fichier(s) de données programmatiques de l'application (17) tierce contenu(s) dans le deuxième conteneur (21), au moyen de la deuxième clé (22) cryptographique de déchiffrement ; o Exécuter l'application (17) tierce sur les données (15) ainsi déchiffrées ; - Hors de l'enclave (8) du nœud (2C) de calcul, mémoriser le résultat (29) de cette exécution sur un emplacement mémoire prédéfini. - Inscrire dans un bloc (4) de la chaîne (5) de blocs, par un ou plusieurs nœuds (2) du réseau (1), au moins une transaction contenant une empreinte numérique de ce résultat (29).
CH00749/19A 2019-06-07 2019-06-07 Procédé de traitement, au sein d'un réseau blockchain et sous enclave, de données informatiques chiffrées au moyen d'une application chiffrée, sous condition de géolocalisation. CH716277A2 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CH00749/19A CH716277A2 (fr) 2019-06-07 2019-06-07 Procédé de traitement, au sein d'un réseau blockchain et sous enclave, de données informatiques chiffrées au moyen d'une application chiffrée, sous condition de géolocalisation.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CH00749/19A CH716277A2 (fr) 2019-06-07 2019-06-07 Procédé de traitement, au sein d'un réseau blockchain et sous enclave, de données informatiques chiffrées au moyen d'une application chiffrée, sous condition de géolocalisation.

Publications (1)

Publication Number Publication Date
CH716277A2 true CH716277A2 (fr) 2020-12-15

Family

ID=73727410

Family Applications (1)

Application Number Title Priority Date Filing Date
CH00749/19A CH716277A2 (fr) 2019-06-07 2019-06-07 Procédé de traitement, au sein d'un réseau blockchain et sous enclave, de données informatiques chiffrées au moyen d'une application chiffrée, sous condition de géolocalisation.

Country Status (1)

Country Link
CH (1) CH716277A2 (fr)

Similar Documents

Publication Publication Date Title
CN111814156B (zh) 一种基于可信设备的数据获取方法、装置及设备
CH716295A2 (fr) Procédé de signature multiple d&#39;une transaction destinée à une blockchain, au moyen de clés cryptographiques distribuées parmi les noeuds d&#39;un réseau pair-à-pair.
WO2020136206A1 (fr) Plateforme de sécurisation de données
CH716298A2 (fr) Procédé de stockage, sous forme cryptée, d&#39;une application sur un réseau blockchain, avec audit préalable du code source de cette application.
CH716285A2 (fr) Procédé de contrôle de données biométriques d&#39;un individu, avec inscription, dans une blockchain, d&#39;un résultat d&#39;analyse.
CH716277A2 (fr) Procédé de traitement, au sein d&#39;un réseau blockchain et sous enclave, de données informatiques chiffrées au moyen d&#39;une application chiffrée, sous condition de géolocalisation.
CH716276A2 (fr) Procédé de traitement, au sein d&#39;un réseau blockchain et sous enclave, de données informatiques chiffrées au moyen d&#39;une application chiffrée, pour un tiers autorisé.
CH716275A2 (fr) Procédé de traitement, au sein d&#39;un réseau blockchain et sous enclave, de données informatiques chiffrées au moyen d&#39;une application chiffrée.
CH716294A2 (fr) Procédé de signature décentralisée, sous contrôle biométrique et sous conditions d&#39;identification personnelle et de géolocalisation, d&#39;une transaction destinée à une blockchain.
CH716279A2 (fr) Procédé de traitement, au sein d&#39;un réseau blockchain et sous enclave, de données informatiques chiffrées au moyen d&#39;une application chiffrée contenant du code source.
CH716281A2 (fr) Procédé de traitement, au sein d&#39;un réseau blockchain et sous enclave, de données informatiques chiffrées au moyen d&#39;une application chiffrée.
CH716283A2 (fr) Procédé de traitement distribué, au sein d&#39;un réseau blockchain et sous enclaves, de données informatiques chiffrées au moyen d&#39;une application chiffrée.
CH716297A2 (fr) Procédé de traitement, sous enclave, de données informatiques chiffrées au moyen d&#39;une application chiffrée contenant du code source, avec audit préalable de celui-ci.
CH716284A2 (fr) Procédé de traitement distribué, au sein d&#39;un réseau blockchain et sous enclaves, de données informatiques chiffrées avec une clé fragmentée.
CH716261A2 (fr) Procédé de stockage de données informatiques par distribution d&#39;un conteneur crypté et de sa clé de déchiffrement sur un réseau blockchain.
CH716263A2 (fr) Procédé de stockage de données informatiques par distribution d&#39;un conteneur crypté et de sa clé de déchiffrement fragmentée sur un réseau blockchain.
CH716266A2 (fr) Procédé de stockage de données informatiques sur un réseau blockchain avec preuve de stockage à partir d&#39;un noeud de stockage équipé d&#39;une enclave cryptographique.
CH716262A2 (fr) Procédé de stockage de données informatiques par distribution d&#39;un conteneur crypté et de sa clé de déchiffrement sur des noeuds distincts d&#39;un réseau blockchain.
CH716267A2 (fr) Procédé de stockage de données informatiques sur un réseau blockchain avec preuve de stockage à partir d&#39;un noeud de calcul épuipé d&#39;une enclave cryptographique.
CH716286A2 (fr) Procédé de contrôle de données biométriques d&#39;un individu sous condition de géolocalisation, avec inscription, dans une blockchain, d&#39;un résultat d&#39;analyse.
CH716287A2 (fr) Procédé de traitement de données biométriques d&#39;un individu, avec phases de calibrage et de contrôle et inscription, dans une blockchain, d&#39;un résultat d&#39;analyse.
CH716288A2 (fr) Procédé de traitement de données biométriques d&#39;un individu, avec phases de calibrage et de contrôle et inscription, dans une blockchain, sous condition de géolocalisation, d&#39;un résultat d&#39;analyse.
CH716289A2 (fr) Procédé de contrôle de données biométriques d&#39;un individu, avec inscription, dans une blockchain, sous condition d&#39;identification personnelle, d&#39;un résultat d&#39;analyse.
CH716300A2 (fr) Procédé de signature d&#39;une transaction destinée à une blockchain, au moyen d&#39;une clé cryptographique distribuée parmi les noeuds d&#39;un réseau pair-à-pair sur lequel est déployée cette blockchain.
CH716302A2 (fr) Procédé de signature décentralisée d&#39;une transaction destinée à une blockchain, suivant les instructions d&#39;un contrat intelligent.

Legal Events

Date Code Title Description
AZW Rejection (application)