CH716269A2 - Procédé de stockage de données informatiques par distribution sur un réseau public, avec sauvegarde sur un réseau privé ayant un noeud maître équipé d'une enclave. - Google Patents

Procédé de stockage de données informatiques par distribution sur un réseau public, avec sauvegarde sur un réseau privé ayant un noeud maître équipé d'une enclave. Download PDF

Info

Publication number
CH716269A2
CH716269A2 CH00743/19A CH7432019A CH716269A2 CH 716269 A2 CH716269 A2 CH 716269A2 CH 00743/19 A CH00743/19 A CH 00743/19A CH 7432019 A CH7432019 A CH 7432019A CH 716269 A2 CH716269 A2 CH 716269A2
Authority
CH
Switzerland
Prior art keywords
enclave
node
network
nodes
data
Prior art date
Application number
CH00743/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 CH00743/19A priority Critical patent/CH716269A2/fr
Publication of CH716269A2 publication Critical patent/CH716269A2/fr

Links

Classifications

    • 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
    • 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
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • 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
    • 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/0822Key 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 key encryption key
    • 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/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Procédé de stockage de données ( 15 ) sur un réseau ( HN ) hybride, dans lequel un conteneur ( 22 ) crypté contenant des données est distribué sur un premier groupe de nœuds ( 2A ) de stockage d'une partie ( 1 ) publique du réseau ( HN ), une clé ( 23 ) de déchiffrement du conteneur ( 22 ) est fragmentée et distribuée sur un deuxième groupe de nœuds ( 2B ) de stockage de la partie ( 1 ) publique du réseau ( HN ), et dans laquelle le conteneur ( 22 ) crypté et la clé ( 23 ) sous forme chiffrée sont sauvegardés en étant distribués au sein d'une partie ( 1' ) privée du réseau ( HN ) hybride à partir d'un nœud ( 2M ) maître pourvu, pour le chiffrement et la distribution de la clé ( 23 ), d'une enclave ( 8 ).

Description

DOMAINE TECHNIQUE
[0001] L'invention a trait au domaine de l'informatique, et plus précisément au domaine du stockage sécurisé des données informatiques en réseau.
ART ANTERIEUR
[0002] La sécurisation du stockage en réseau des données informatiques a pour double objectif d'éviter la perte des données (c'est-à-dire leur effacement intempestif) et leur exploitation (ce terme incluant la lecture ainsi que la copie partielle ou totale des données) par des tiers non autorisés. En d'autres termes, la sécurisation vise à garantir la pérennité et la confidentialité des données.
[0003] Pour minimiser le risque de perte des données (en d'autres termes, pour maximiser la pérennité des données), on procède généralement à des réplications, c'est-à-dire que l'on effectue une distribution des données parmi plusieurs espaces de stockage. Les données sont par conséquent stockées de manière redondante.
[0004] Pour garantir (autant que possible) la confidentialité des données stockées en réseau, on recourt généralement à deux méthodes : La première consiste à restreindre (typiquement via des mots de passe ou des certificats électroniques) l'accès à un serveur sur lequel sont stockées les données, ce qui minimise les risques de lecture ou de copie ; La deuxième consiste à chiffrer les données elles-mêmes au moyen de techniques cryptographiques.
[0005] La première méthode est efficace à deux conditions principales.
[0006] Première condition : le risque de faille dans les restrictions d'accès au serveur doit être nul ou, à tout le moins, minimum.
[0007] L'expérience montre toutefois que certaines attaques permettent de contourner ces restrictions, typiquement en récupérant les identifiants et mots de passe d'utilisateurs et en usurpant leur identité pour accéder à leurs données.
[0008] Deuxième condition : l'administrateur du serveur doit lui-même être digne de confiance.
[0009] L'expérience montre toutefois que certains fournisseurs de services en ligne (notamment de réseaux sociaux), qui administrent des serveurs sur lesquels sont stockées les données personnelles de nombreux utilisateurs, se permettent d'accéder à ces données et d'en faire une exploitation pour leur propre compte, typiquement en revendant les données à des sociétés commerciales ou à des agences gouvernementales, ou en analysant elles-mêmes les données.
[0010] La deuxième méthode résout les problèmes de la première, puisque les tiers non autorisés ne peuvent faire aucune exploitation des données, sauf à craquer les algorithmes de cryptage, ce qui, jusqu'à présent, s'est révélé infaisable pour les algorithmes les plus couramment utilisés, tels que l'algorithme RSA (Rivest, Shamir, Adleman) ou l'algorithme des courbes elliptiques.
[0011] Généralement, les données sont chiffrées localement au sein d'un terminal émetteur (typiquement un ordinateur personnel), puis les données chiffrées sont transmises au réseau pour y être stockées tandis qu'une clé cryptographique de déchiffrement des données est stockée localement au sein du terminal émetteur.
[0012] Cette méthode présente cependant un risque : la perte de la clé cryptographique de déchiffrement des données, ce qui rend les données définitivement inexploitables (et ce par quiconque, y compris leur propriétaire), car indéchiffrables.
[0013] Il est envisageable de déléguer au réseau (typiquement à un serveur mandataire distant) le soin de procéder au chiffrement des données et d'administrer la clé cryptographique de déchiffrement.
[0014] Dans ce cas se pose à nouveau le problème d'un potentiel accès aux données par l'administrateur du serveur mandataire, soit que celui-ci les copie avant leur chiffrement, soit qu'il prenne la liberté de les déchiffrer en exploitant la clé cryptographique générée. Se pose également le problème de la récupération des données après une défaillance majeure du réseau, ayant affecté une grande partie de ses nœuds.
[0015] L'invention vise à offrir une solution efficace à ces problèmes.
RESUME DE L'INVENTION
[0016] Il est proposé un procédé de stockage sécurisé de données informatiques au sein d'un réseau hybride comprenant : Un réseau public 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, Un réseau privé comprenant un nœud maître appartenant au réseau public, équipé d'une unité de traitement informatique dans laquelle est implémenté un environnement d'exécution sécurisé par cryptographie, dit enclave, et une pluralité de nœuds esclaves reliés au nœud maître ;
[0017] Ce procédé comprenant les opérations consistant à : <tb><SEP>- Emettre, à partir d'un terminal émetteur dans lequel sont stockées les données, une requête de stockage à destination du réseau public ; <tb><SEP>- A réception de la requête de stockage par au moins un nœud du réseau public, sélectionner au sein du réseau public au moins un nœud, dit nœud d'entrée, é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 d'entrée ; <tb><SEP>- Charger les données, à partir du terminal émetteur et via une ligne de communication sécurisée, vers l'enclave ; <tb><SEP>- Inscrire dans un bloc de la chaîne de blocs, par un ou plusieurs nœuds du réseau public, au moins une transaction contenant une empreinte numérique de la requête de stockage et/ou du chargement ainsi effectué ; <tb><SEP>- Dans l'enclave du nœud d'entrée : <tb><SEP><SEP>o Chiffrer les données pour former un conteneur crypté, en lui associant une clé de déchiffrement ; <tb><SEP><SEP>o Fragmenter la clé de déchiffrement pour former un nombre N prédéterminé de fragments ; <tb><SEP><SEP>o Désigner, parmi le réseau public, un ou plusieurs nœuds primaires de stockage et distribuer le conteneur crypté vers ce ou ces nœuds primaires de stockage ; <tb><SEP><SEP>o Désigner, parmi le réseau public, un groupe de nœuds secondaires de stockage en nombre égal aux fragments ; <tb><SEP><SEP>o Distribuer chaque fragment de la clé de déchiffrement vers un ou plusieurs nœuds secondaires de stockage, chaque nœud secondaire de stockage recevant un unique fragment ; <tb><SEP><SEP>o Transmettre le conteneur crypté au nœud maître du réseau privé ; <tb><SEP>- A partir du nœud maître, désigner parmi le réseau privé un premier groupe de nœuds esclaves, et distribuer le conteneur crypté vers les nœuds esclaves du premier groupe ; <tb><SEP>- Instancier l'enclave du nœud maître ; <tb><SEP>- Etablir une liaison sécurisée entre l'enclave du nœud d'entrée et l'enclave du nœud maître ; <tb><SEP>- Transmettre la clé de déchiffrement du conteneur depuis l'enclave du nœud d'entrée à l'enclave du nœud maître ; <tb><SEP>- Dans l'enclave du nœud maître : <tb><SEP><SEP>o Chiffrer la clé de déchiffrement du conteneur, en associant à la clé, en tant que clé de déchiffrement, une clé cryptographique associée à l'enclave du nœud maître ; <tb><SEP><SEP>o Désigner, parmi le réseau privé, un deuxième groupe de nœuds esclaves ; <tb><SEP><SEP>o Distribuer la clé ainsi chiffrée vers ce ou ces nœuds esclaves ; <tb><SEP>- Dans chaque nœud esclave du deuxième groupe, et hors de l'enclave, mémoriser la clé ainsi chiffrée, <tb><SEP>- Inscrire dans un bloc de la chaîne de blocs, par un ou plusieurs nœuds du réseau public, au moins une transaction contenant une empreinte numérique des mémorisations ainsi effectuées.
BREVE DESCRIPTION DES FIGURES
[0018] 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 pour partie une architecture réseau, pour partie des étapes d'un procédé de stockage, et pour partie des fichiers produits, échangés ou stockés au sein du réseau pour les besoins (ou en application) de ce procédé ; <tb><SEP>LaFIG.4est un diagramme fonctionnel illustrant différentes étapes du procédé de stockage.
DESCRIPTION DETAILLEE DE L'INVENTION
[0019] Sans s'y restreindre, le procédé de stockage 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).
[0020] 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“.
[0021] 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.
[0022] 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.
[0023] 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.
[0024] 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 oeuvre 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.
[0025] 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.
[0026] 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.
[0027] 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.
[0028] 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.
[0029] 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.
[0030] 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“.
[0031] 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.
[0032] Sauf mention contraire, et par souci de simplification, l'expression simple „chaîne de blocs“ ou „blockchain“ désigne le registre5blockchain lui-même.
[0033] 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.
[0034] On décrit à présent succinctement la technologie des contrats intelligents.
[0035] 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.
[0036] 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.
[0037] 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.
[0038] Le compte initiateur récupère (c'est-à-dire, en pratique, télécharge) le résultat lors de sa synchronisation au registre5blockchain.
[0039] On introduit à présent brièvement les environnements d'exécution sécurisé.
[0040] 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.
[0041] 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).
[0042] 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 oeuvre 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.
[0043] 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.
[0044] 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.
[0045] L'enclave8comprend, en deuxième lieu, des clés cryptographiques natives, qui lui sont associées et sont 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). Dans la technologie SGX, une clé native employée pour chiffrer les données est dérivée d'une clé cryptographique implémentée dans le processeur lui-même, appelée Clé de Scellement Racine (en anglais Root Sealing Key ou RSK).
[0046] 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)).
[0047] 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).
[0048] 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.
[0049] 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.
[0050] On a, sur laFIG.2, représenté de manière fonctionnelle l'enclave 8 sous 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.
[0051] Nous expliquerons ci-après comment sont exploitées les enclaves.
[0052] On a représenté sur laFIG.3un réseau HN hybride au sein duquel des données15issues d'un terminal16émetteur doivent être stockées.
[0053] Ce réseau HN hybride comprend deux réseau inter-corrélés, à savoir : <tb><SEP>- Un réseau1blockchain, public, qui comprend une pluralité de nœuds2sur lesquels est distribuée une blockchain5 ; et <tb><SEP>- Un réseau1'privé, qui peut être du type client-serveur et qui comprend : <tb><SEP><SEP>o Un nœud2Mmaître appartenant au réseau1public (et ayant à ce titre un exemplaire de la blockchain5) et sur lequel est implémentée une enclave8 ; <tb><SEP><SEP>o Une pluralité de nœuds2Sesclaves reliés au nœud2Mmaître.
[0054] Le réseau HN a pour fonction de constituer un espace de stockage distribué des données15sous forme cryptée. Comme nous le verrons, les données15sont distribuées non seulement au réseau1public mais également, via le nœud2Mmaître, au réseau1'privé, qui sert de sauvegarde permettant de redistribuer les données15sur le réseau1public, après une défaillance partielle ou totale de celui-ci.
[0055] La traçabilité des données15tant au sein du réseau1public que du réseau1'privé peut être réalisée par inscription, dans le registre5blockchain, d'une ou plusieurs empreintes numériques des mémorisations ainsi effectuées.
[0056] Le stockage distribué des données15est avantageusement piloté par un contratSCintelligent (FIG.4), activé par exemple par le terminal16émetteur qui, tout en transmettant les données15à stocker au réseau1, transmet au contratSCintelligent un appel par la procédure décrite précédemment.
[0057] Il est ici proposé de distribuer sur le réseau1non seulement les données15(sous forme cryptée), mais également une clé de déchiffrement de celles-ci, via une enclave8instanciée sur un nœud2E, dit nœud d'entrée, du réseau1(FIG.3).
[0058] A cet effet, une opération préliminaire consiste, à partir du terminal16émetteur dans lequel sont stockées les données15, à transmettre une requête de stockage des données15à destination du réseau1, typiquement en activant un contratSCintelligent déployé sur la blockchain5.
[0059] A réception de la requête de stockage par au moins un nœud2du réseau1, le contratSCintelligent sélectionne ou désigne (DES) au sein du réseau1au moins un nœud2Ed'entrée, équipé d'une unité de traitement informatique dans laquelle est implémentée une enclave 8.
[0060] Cette enclave8est alors instanciée en application des instructions du contrat intelligent, et les données15y sont chargées à partir du terminal16émetteur et via une ligne17de communication sécurisée (par ex. utilisant le protocole Transport Layer Security ou TLS). A cet effet, l'enclave8peut être pourvue, dès son instanciation, d'une émulation d'interface18de communication supportant le protocole choisi (ici TLS) pour l'échange des données sécurisées.
[0061] Le protocole blockchain est avantageusement chargé dans l'enclave8, pour former un module19blockchain apte à interroger le registre5blockchain et/ou à participer au processus de création et validation des blocs4.
[0062] Une transaction20contenant une empreinte numérique du chargement des données ainsi effectué est inscrite dans un bloc4de la blockchain5, aux fins de traçabilité.
[0063] Cette transaction20peut être transmise au module19blockchain par le terminal16émetteur, pour être inscrite par un ou plusieurs nœuds2du réseau (par le processus décrit plus haut) dans un nouveau bloc4du registre5blockchain. En variante, le module19blockchain émet de lui-même une transaction20pour inscription dans un nouveau bloc4.
[0064] Dans l'enclave8se déroule alors un processus qui comprend les opérations suivantes.
[0065] Une première opération consiste à chiffrer les données15au moyen d'une clé21cryptographique de chiffrement pour former un conteneur22crypté, en lui associant une clé23cryptographique de déchiffrement. A cet effet, les données15reçues du terminal16émetteur sont relayées par l'interface18de communication à un module24de chiffrement implémenté dans l'enclave8.
[0066] Selon un mode préféré de réalisation, le chiffrement est symétrique. Dans ce cas, la clé21de chiffrement et la clé23de déchiffrement sont une seule et même clé.
[0067] Une deuxième opération consiste à fragmenter la clé23de déchiffrement. Plus précisément, la clé23de déchiffrement est fragmentée en un nombre N prédéterminé de fragments23.i, (i un entier, 2≤i≤N).
[0068] Selon un mode préféré de réalisation, N est tel que N>3 et la fragmentation est réalisée en application des règles de Shamir (dite du Partage de Secret de Shamir, en anglais Shamir's Secret Sharing), et plus précisément du schéma seuil, où un nombre entier prédéterminé K (1<K<N) est choisi tel qu'un nombre K de fragments23.isont suffisants pour reconstituer la clé23de déchiffrement.
[0069] Une troisième opération consiste à désigner, parmi le réseau1public, un ou plusieurs nœuds2Aprimaires de stockage.
[0070] A cet effet, l'enclave8est avantageusement pourvue d'un module25de distribution de données, auquel le module24de chiffrement communique le conteneur22crypté pour distribution aux nœuds2Aprimaires de stockage.
[0071] Une quatrième opération consiste à désigner, parmi le réseau1public, un groupe de plusieurs nœuds2Bsecondaires de stockage, en nombre N égal au nombre de fragments23.ide la clé23de déchiffrement.
[0072] Ces nœuds2Bsecondaires de stockage sont de préférence distinct(s) des nœuds2Aprimaires de stockage - en d'autres termes, les nœuds2Aprimaires de stockage et les nœuds2Bsecondaires de stockage forment deux groupes disjoints (représentés en pointillés sur laFIG.3).
[0073] Une cinquième opération consiste à distribuer le conteneur22crypté vers le ou les nœuds2Aprimaires de stockage.
[0074] Une sixième opération consiste à transmettre le conteneur22crypté vers le nœud2Mmaître du réseau1'privé.
[0075] Une septième opération consiste à distribuer les fragments23.ide la clé23de déchiffrement vers les nœuds2Bsecondaires de stockage, chaque nœud2Bsecondaire de stockage recevant un unique fragment23.i.
[0076] A cet effet, et selon un mode préféré de réalisation illustré sur laFIG.3, l'enclave8est pourvue d'un module26de fragmentation et de distribution de clé, auquel le module24de chiffrement communique la clé23de déchiffrement pour fragmentation et distribution aux nœuds2Bsecondaires de stockage.
[0077] Ces opérations achevées, l'enclave8peut être refermée.
[0078] Hors de l'enclave8, les opérations suivantes sont réalisées : <tb><SEP>o Le conteneur22crypté est mémorisé au sein de chaque nœud2Aprimaire de stockage ; <tb><SEP>o Chaque fragment23.ide la clé23cryptographique de déchiffrement est mémorisé au sein de chaque nœud2Brespectif secondaire de stockage.
[0079] Pour assurer la traçabilité de ces opérations, au moins une transaction contenant une empreinte numérique des distributions ou des mémorisations ainsi effectuées est inscrite dans un bloc4de la chaîne5de blocs, par un ou plusieurs nœuds2du réseau1. Cette transaction peut être initiée par les nœuds2Aprimaires et2Bsecondaires de stockage, mais elle peut également être initiée par l'enclave8elle-même (et plus précisément par le module19blockchain) avant sa fermeture.
[0080] Comme déjà évoqué, le réseau1'public sert de sauvegarde pour les données15, qui, sous forme cryptée, et avec la clé23de déchiffrement (également sous forme cryptée), sont déployés à nouveau parmi les nœuds2Sesclaves à partir du nœud2Mmaître.
[0081] A cet effet, une opération préliminaire consiste, à partir du nœud2Mmaître, à désigner parmi le réseau1'privé un premier groupe de nœuds2Sesclaves. Le conteneur22crypté (reçu de l'enclave du nœud2Ed'entrée) est ensuite distribué vers ces nœuds2Sesclaves du premier groupe (FIG.4).
[0082] L'enclave8du nœud maître est instanciée, et une liaison sécurisée est établie entre l'enclave8du nœud2Ed'entrée et l'enclave8du nœud2Mmaître.
[0083] La clé23de déchiffrement est alors transmise depuis l'enclave8du nœud2Ed'entrée à l'enclave8du nœud2Mmaître.
[0084] Dans l'enclave8du nœud maître se déroule alors un processus qui comprend les opérations suivantes.
[0085] Une première opération consiste à chiffrer la clé23de déchiffrement du conteneur22crypté, pour former une clé23'chiffrée, en associant à celle-ci, en tant que clé de déchiffrement (à partir de laquelle la clé23'chiffrée peut être déchiffrée pour fournir la clé23), une clé27cryptographique native associée à l'enclave8.
[0086] Une deuxième opération consiste à désigner, parmi le réseau1'privé, un deuxième groupe de nœuds2Sesclaves, avantageusement disjoint du premier groupe de nœuds2Sesclaves.
[0087] Une troisième opération consiste à distribuer la clé23'chiffrée vers ce nœud ou ces nœuds2Sesclaves du deuxième groupe.
[0088] Hors de l'enclave8, la clé23'est alors mémorisée dans chaque nœud2Sesclave du deuxième groupe.
[0089] Une opération finale consiste alors, par un ou plusieurs nœuds du réseau1public, inscrire dans un bloc4de la blockchain5, au moins une transaction contenant une empreinte numérique des mémorisations ainsi effectuées, afin d'en conserver une traçabilité.
[0090] Le procédé qui vient d'être décrit présente les avantages suivants.
[0091] En fonctionnement normal du réseau1public, les données15peuvent être récupérées à partir de celui-ci par les opérations (avantageusement pilotées par un contrat intelligent) consistant à : Charger, dans une enclave8d'un nœud2prédéfini, le conteneur22crypté et K fragments23.ide la clé23de déchiffrement ; Reconstituer la clé23à partir de ses fragments23.i ; Déchiffrer les données15du conteneur22en appliquant à celui-ci la clé23de déchiffrement ainsi reconstituée.
[0092] Les données15peuvent ensuite être retransmises à un destinataire, ou exploitées, en fonction des instructions du contrat intelligent.
[0093] Cependant, en cas de défaillance partielle ou totale du réseau1public (typiquement lors d'une attaque), les données15risquent de ne plus pouvoir être récupérées à partir de celui-ci, soit que le conteneur22crypté ait été perdu ou corrompu, soit que certains fragments23.i(ou tous les fragments23.i) aient connu un sort similaire.
[0094] Dans ce cas, il est possible de redéployer le conteneur22crypté et/ou la clé23de déchiffrement à partir du réseau1'privé, via le nœud2Mmaître.
[0095] Le redéploiement du conteneur22peut être effectué comme suit.
[0096] Une copie du conteneur22peut être directement transmise par les nœuds2Sesclaves du premier groupe vers un groupe de nœuds2Adu réseau1public, en passant par le nœud2Mmaître qui est relié à ceux-ci au sein du réseau1.
[0097] Le redéploiement de la clé23de déchiffrement est réalisé à partir de l'enclave8du nœud2Mmaître. A partir de l'enclave8instanciée, un exemplaire de la clé23'chiffrée est collecté auprès d'un nœud2Sesclave, puis déchiffrée au sein de l'enclave8à l'aide de la clé27native pour reconstituer la clé23de déchiffrement du conteneur22.
[0098] Ainsi obtenue, la clé23de déchiffrement peut être fragmentée selon la même procédure que celle conduite dans l'enclave8du nœud d'entrée et décrite ci-dessus. Les fragments ainsi obtenus peuvent alors être distribués parmi de nouveaux nœuds2Bde stockage.

Claims (1)

1. Procédé de stockage sécurisé de données (15) informatiques au sein d'un réseau (HN) hybride comprenant : - Un réseau (1) public 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, - Un réseau (1') privé comprenant un nœud (2M) maître appartenant au réseau (1) public, équipé d'une unité de traitement informatique dans laquelle est implémenté un environnement d'exécution sécurisé par cryptographie, dit enclave (8), et une pluralité de nœuds (2S) esclaves reliés au nœud (2M) maître ; Ce procédé comprenant les opérations consistant à : - Emettre, à partir d'un terminal (16) émetteur dans lequel sont stockées les données (15), une requête de stockage à destination du réseau (1) public ; - A réception de la requête de stockage par au moins un nœud (2) du réseau (1) public, sélectionner au sein du réseau (1) public au moins un nœud (2E), dit nœud d'entrée, équipé d'une unité 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 d'entrée (2E) ; - Charger les données (14), à partir du terminal (16) émetteur et via une ligne18de communication sécurisée, vers l'enclave (8) ; - Inscrire dans un bloc (4) de la chaîne (5) de blocs, par un ou plusieurs nœuds (2) du réseau public, au moins une transaction contenant une empreinte numérique de la requête de stockage et/ou du chargement ainsi effectué ; - Dans l'enclave (8) du nœud (2E) d'entrée : o Chiffrer les données (15) pour former un conteneur (22) crypté, en lui associant une clé (23) de déchiffrement ; o Fragmenter la clé (23) de déchiffrement pour former un nombre N prédéterminé de fragments (23.i) ; o Désigner, parmi le réseau (1) public, un ou plusieurs nœuds (2A) primaires de stockage et distribuer le conteneur (22) crypté vers ce ou ces nœuds primaires de stockage ; o Désigner, parmi le réseau (1) public, un groupe de nœuds (2B) secondaires de stockage en nombre égal aux fragments (23.i); o Distribuer chaque fragment (23.i) de la clé (23) de déchiffrement vers un ou plusieurs nœuds (2B) secondaires de stockage, chaque nœud secondaire (2B) de stockage recevant un unique fragment (23.i) ; o Transmettre le conteneur (22) crypté au nœud (2M) maître du réseau (1') privé ; - A partir du nœud (2M) maître, désigner parmi le réseau (1) privé un premier groupe de nœuds (2S) esclaves, et distribuer le conteneur (22) crypté vers les nœuds (2S) esclaves du premier groupe ; - Instancier l'enclave (8) du nœud (2M) maître ; - Etablir une liaison sécurisée entre l'enclave (8) du nœud (2E) d'entrée et l'enclave (8) du nœud (2M) maître ; - Transmettre la clé (23) de déchiffrement du conteneur (22) depuis l'enclave (8) du nœud (2E) d'entrée à l'enclave (8) du nœud (2M) maître ; - Dans l'enclave (8) du nœud (2M) maître : o Chiffrer la clé (23) de déchiffrement du conteneur (22), en associant à la clé (23), en tant que clé de déchiffrement, une clé (27) cryptographique associée à l'enclave (8) du nœud (2M) maître ; o Désigner, parmi le réseau (1') privé, un deuxième groupe de nœuds (2S) esclaves ; o Distribuer la clé (23') ainsi chiffrée vers ce ou ces nœuds (2S) esclaves ; - Dans chaque nœud (2S) esclave du deuxième groupe, et hors de l'enclave, mémoriser la clé (23') ainsi chiffrée, - Inscrire dans un bloc (4) de la chaîne (5) de blocs, par un ou plusieurs nœuds (2) du réseau (1) public, au moins une transaction contenant une empreinte numérique des mémorisations ainsi effectuées.
CH00743/19A 2019-06-07 2019-06-07 Procédé de stockage de données informatiques par distribution sur un réseau public, avec sauvegarde sur un réseau privé ayant un noeud maître équipé d'une enclave. CH716269A2 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CH00743/19A CH716269A2 (fr) 2019-06-07 2019-06-07 Procédé de stockage de données informatiques par distribution sur un réseau public, avec sauvegarde sur un réseau privé ayant un noeud maître équipé d'une enclave.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CH00743/19A CH716269A2 (fr) 2019-06-07 2019-06-07 Procédé de stockage de données informatiques par distribution sur un réseau public, avec sauvegarde sur un réseau privé ayant un noeud maître équipé d'une enclave.

Publications (1)

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

Family

ID=73727397

Family Applications (1)

Application Number Title Priority Date Filing Date
CH00743/19A CH716269A2 (fr) 2019-06-07 2019-06-07 Procédé de stockage de données informatiques par distribution sur un réseau public, avec sauvegarde sur un réseau privé ayant un noeud maître équipé d'une enclave.

Country Status (1)

Country Link
CH (1) CH716269A2 (fr)

Similar Documents

Publication Publication Date Title
EP3673620B1 (fr) Stockage de données de chaîne de blocs partagées
EP3669280B1 (fr) Stockage de données de chaînes de blocs partagées
US20210014066A1 (en) Shared blockchain data storage
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.
CH716269A2 (fr) Procédé de stockage de données informatiques par distribution sur un réseau public, avec sauvegarde sur un réseau privé ayant un noeud maître équipé d&#39;une enclave.
CH716272A2 (fr) Procédé de stockage de données informatiques par distribution sur un réseau public, avec sauvegarde sur un réseau privé ayant des noeuds équipés d&#39;enclaves.
CH716273A2 (fr) Procédé de stockage de données informatiques sur un réseau, avec double distribution sur deux ensembles disjoints de noeuds du réseau.
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.
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.
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.
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.
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.
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.
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.
CN114239043A (zh) 一种基于区块链技术构建的共享加密存储系统
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.
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.
CH716264A2 (fr) Procédé de stockage de données informatiques sur un réseau avec preuve de stockage obtenue par un noeud de stockage équipé d&#39;une enclave cryptographique.
CH716265A2 (fr) Procédé de stockage de données informatiques sur un réseau avec preuve de stockage à partir d&#39;un noeud de calcul équipé d&#39;une enclave cryptographique.
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.
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.
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.
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é.
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.

Legal Events

Date Code Title Description
AZW Rejection (application)