CH716265A2 - Procédé de stockage de données informatiques sur un réseau avec preuve de stockage à partir d'un noeud de calcul équipé d'une enclave cryptographique. - Google Patents
Procédé de stockage de données informatiques sur un réseau avec preuve de stockage à partir d'un noeud de calcul équipé d'une enclave cryptographique. Download PDFInfo
- Publication number
- CH716265A2 CH716265A2 CH00739/19A CH7392019A CH716265A2 CH 716265 A2 CH716265 A2 CH 716265A2 CH 00739/19 A CH00739/19 A CH 00739/19A CH 7392019 A CH7392019 A CH 7392019A CH 716265 A2 CH716265 A2 CH 716265A2
- Authority
- CH
- Switzerland
- Prior art keywords
- node
- group
- enclave
- storage
- decryption key
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0478—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/065—Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/18—Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2105—Dual mode as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/062—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Power Engineering (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
L'invention concerne un procédé de stockage sécurisé de données informatiques au sein d'un groupe de nœuds ( 2A ) de stockage d'un réseau, qui comprend une phase de contrôle conduite pour partie dans une enclave ( 8 ) d'un nœud ( 2G ) de calcul, et incluant le calcul d'un condensat ( 25' ) de contrôle d'un conteneur ( 22' ) crypté et la comparaison, au sein d'une enclave ( 8 ) d'un nœud ( 2F ) de contrôle, avec un condensat ( 25 ) de référence reconstitué à partir de fragments distribués sur un autre groupe de nœuds ( 2C ).
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. A supposer que l'on empêche tout ou partie du réseau d'organiser un accès non autorisé aux données, se pose cependant le problème d'obtenir du réseau une preuve, ponctuellement ou régulièrement, que le stockage se poursuit, notamment lorsqu'il est prévu pour durer.
[0015] L'invention vise à offrir une solution efficace à ces problèmes, en particulier au problème de la preuve de stockage.
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 informatique comprenant une pluralité de nœuds, ce procédé comprenant :
<tb><SEP>A) Une phase de distribution, qui comprend les opérations consistant à :
<tb><SEP><SEP>- Emettre, à partir d'un terminal émetteur dans lequel sont stockées les données, une requête de stockage à destination du réseau ;
<tb><SEP><SEP>- A réception de la requête de stockage par au moins un nœud du réseau, sélectionner au sein du réseau 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><SEP>- Instancier l'enclave ;
<tb><SEP><SEP>- Charger les données, à partir du terminal émetteur et via une ligne de communication sécurisée, vers l'enclave du nœud d'entrée ;
<tb><SEP><SEP>- Inscrire dans une entrée d'une base de données une empreinte numérique de la requête de stockage et/ou du chargement ainsi effectué ;
<tb><SEP><SEP>- Dans l'enclave du nœud d'entrée :
<tb><SEP><SEP><SEP>o Chiffrer les données pour former un premier conteneur crypté, en lui associant une première clé cryptographique de déchiffrement ;
<tb><SEP><SEP><SEP>o Fragmenter la première clé cryptographique de déchiffrement en un nombre prédéterminé de fragments ;
<tb><SEP><SEP><SEP>o Calculer un condensat, dit de référence, du premier conteneur crypté en lui appliquant une fonction de hachage prédéterminée ;
<tb><SEP><SEP><SEP>o Fragmenter le condensat de référence en un nombre prédéterminé de fragments ;
<tb><SEP><SEP><SEP>o Rechiffrer le premier conteneur pour former un deuxième conteneur crypté, en lui associant une deuxième clé cryptographique de déchiffrement ;
<tb><SEP><SEP><SEP>o Fragmenter la deuxième clé cryptographique de déchiffrement en un nombre prédéterminé de fragments ;
<tb><SEP><SEP><SEP>o Désigner, parmi le réseau, un premier groupe de nœuds de stockage ;
<tb><SEP><SEP><SEP>o Distribuer le deuxième conteneur crypté vers les nœuds du premier groupe ;
<tb><SEP><SEP><SEP>o Désigner, parmi le réseau, un deuxième groupe de nœuds de stockage en nombre égal aux fragments de la première clé cryptographique de déchiffrement ;
<tb><SEP><SEP><SEP>o Distribuer chaque fragment de la première clé cryptographique de déchiffrement vers un nœud du deuxième groupe, chaque nœud du deuxième groupe recevant un unique fragment ;
<tb><SEP><SEP><SEP>o Désigner, parmi le réseau, un troisième groupe de nœuds de stockage en nombre égal aux fragments du condensat de référence ;
<tb><SEP><SEP><SEP>o Distribuer chaque fragment du condensat de référence vers un nœud du troisième groupe, chaque nœud du troisième groupe recevant un unique fragment ;
<tb><SEP><SEP><SEP>o Désigner, parmi le réseau, un quatrième groupe de nœuds de stockage en nombre égal aux fragments de la deuxième clé cryptographique de déchiffrement ;
<tb><SEP><SEP><SEP>o Distribuer chaque fragment de la deuxième clé de déchiffrement vers un nœud du quatrième groupe, chaque nœud du quatrième groupe recevant un unique fragment ;
<tb><SEP><SEP>- Hors de l'enclave du nœud d'entrée :
<tb><SEP><SEP><SEP>o Mémoriser le deuxième conteneur crypté au sein de chaque nœud de stockage du premier groupe ;
<tb><SEP><SEP><SEP>o Mémoriser chaque fragment de la première clé cryptographique de déchiffrement au sein de chaque nœud de stockage du deuxième groupe ;
<tb><SEP><SEP><SEP>o Mémoriser chaque fragment du condensat de référence au sein de chaque nœud de stockage du troisième groupe ;
<tb><SEP><SEP><SEP>o Mémoriser chaque fragment de la deuxième clé cryptographique de déchiffrement au sein de chaque nœud de stockage du quatrième groupe ;
<tb><SEP><SEP>- Inscrire dans une entrée de la base de données une ou des empreintes numériques de ces distributions ou de ces mémorisations ;
<tb><SEP>B) Une phase de contrôle, qui comprend la désignation, parmi les nœuds du réseau, d'un nœud de contrôle et d'un nœud de calcul chacun équipé d'une unité de traitement informatique dans laquelle est implémentée une enclave, et, pour chaque nœud de stockage du premier groupe, les opérations consistant à :
<tb><SEP><SEP>- Instancier l'enclave du nœud de contrôle ;
<tb><SEP><SEP>- Instancier l'enclave du nœud de calcul ;
<tb><SEP><SEP>- Etablir une liaison sécurisée entre l'enclave du nœud de contrôle et l'enclave du nœud de calcul ;
<tb><SEP><SEP>- Dans l'enclave du nœud de contrôle :
<tb><SEP><SEP><SEP>o Charger, à partir d'un nombre prédéterminé de nœuds du troisième groupe, des fragments du condensat de référence ;
<tb><SEP><SEP><SEP>o Reconstituer le condensat de référence à partir de ces fragments ;
<tb><SEP><SEP><SEP>o Charger, à partir d'un nombre prédéterminé de nœuds du quatrième groupe, des fragments de la deuxième clé cryptographique de déchiffrement ;
<tb><SEP><SEP><SEP>o Reconstituer la deuxième clé cryptographique de déchiffrement ;
<tb><SEP><SEP><SEP>o Transmettre la deuxième clé cryptographique de déchiffrement à l'enclave du nœud de calcul ;
<tb><SEP><SEP>- Dans l'enclave du nœud de calcul :
<tb><SEP><SEP><SEP>o Charger le deuxième conteneur crypté à partir d'un nœud de stockage du premier groupe ;
<tb><SEP><SEP><SEP>o Déchiffrer le deuxième conteneur crypté au moyen de la deuxième clé cryptographique de déchiffrement reçue de l'enclave du nœud de contrôle, pour reconstituer une copie du premier conteneur crypté ;
<tb><SEP><SEP><SEP>o Calculer un condensat, dit de contrôle, de cette copie du premier conteneur crypté ;
<tb><SEP><SEP><SEP>o Transmettre le condensat de contrôle à l'enclave du nœud de contrôle ;
<tb><SEP><SEP>- Dans l'enclave du nœud de contrôle, comparer le condensat de contrôle au condensat de référence ;
<tb><SEP><SEP>- Hors de l'enclave, inscrire le résultat de cette comparaison ou une empreinte de ce résultat dans une entrée de la base de données.
BREVE DESCRIPTION DES FIGURES
[0017] 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 informatique sur lequel est mémorisée une base de données ;
<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 d'une phase de contrôle du procédé de stockage.
DESCRIPTION DETAILLEE DE L'INVENTION
[0018] Sur laFIG.1est représenté un réseau1informatique qui est avantageusement du type pair-à-pair, et qui comprend des nœuds2communiquant par des liaisons3. 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] Sur au moins l'un des nœuds2sont mémorisées des entrées4d'une base de données5, qui, selon un mode particulier de réalisation, peut être distribuée sur tout ou partie des nœuds.
[0021] Cette base de données5sert ici à mémoriser des traces d'un procédé de stockage de données, dont certaines des opérations reposent sur l'exploitation de fonctionnalités d'environnements d'exécution sécurisé.
[0022] 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.
[0023] 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).
[0024] 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.
[0025] 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.
[0026] 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.
[0027] 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).
[0028] 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)).
[0029] 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).
[0030] 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.
[0031] 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.
[0032] 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.
[0033] Nous expliquerons ci-après comment sont exploitées les enclaves.
[0034] Les nœuds2du réseau1étant tous équipés de zones mémoires, celles-ci peuvent être exploitées en tant qu'espace de stockage pour des données15issues d'un terminal16émetteur (ici représenté sous forme d'un smartphone) relié au réseau1. Pour minimiser le risque de perte des données15, il est avantageux de procéder à une réplication de celles-ci, c'est-à-dire d'effectuer une copie des données15, et de distribuer une copie à plusieurs nœuds2du réseau1. La traçabilité des données15peut être réalisée par inscription, dans au moins une entrée4de la base de données5, d'une ou plusieurs empreintes numériques des mémorisations ainsi effectuées.
[0035] Si la réplication des données15au sein du réseau1résout le problème de la pérennité des données15, il ne résout pas le problème de leur confidentialité.
[0036] Procéder à un chiffrement des données15au niveau du terminal16émetteur (lequel stockerait une clé de déchiffrement des données) résoudrait le problème de la confidentialité vis-à-vis des tiers non autorisés (sauf à admettre que la clé de déchiffrement pourrait être copiée par un tiers non autorisé à partir du terminal16émetteur), mais ne garantirait cependant pas que les données demeureraient accessibles par le terminal16émetteur lui-même, dans l'hypothèse - qui est réaliste en pratique - où la clé cryptographique serait perdue ou corrompue.
[0037] Se contenter de distribuer les données15cryptées parmi des nœuds2du réseau1peut sembler insuffisant : il apparaît en effet nécessaire de procéder à un contrôle (ponctuel ou régulier), aux fins de vérifier que les données sont effectivement stockées - et qu'elles continuent de l'être - par les nœuds2.
[0038] A cet effet, il est ici proposé un procédé de stockage des données15en deux phases, à savoir :
Une phase de distribution des données15sur le réseau1 ;
Une phase de contrôle que les données15sont effectivement stockées sur le réseau1.
[0039] Lors de la phase de distribution, ce sont non seulement les données15qui sont distribuées (sous forme cryptée), mais également des clés 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).
[0040] A cet effet, une opération préliminaire de la phase de distribution 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.
[0041] A réception de la requête de stockage par au moins un nœud2du réseau1, il est sélectionné, au sein du réseau1, au moins un nœud2Ed'entrée, équipé d'une unité de traitement informatique dans laquelle est implémentée une enclave8.
[0042] Cette enclave8est alors instanciée, 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.
[0043] L'enclave est avantageusement pourvue d'un module19d'interface avec la base de données5, apte à interroger celle-ci ou à y inscrire des données dans des entrées4.
[0044] Une information20contenant une empreinte numérique du chargement des données15ainsi effectué est ici inscrite dans une entrée4de la base de données5, aux fins de traçabilité.
[0045] Cette information20peut être transmise au module19d'interface par le terminal16émetteur, pour être inscrite (typiquement par un ou plusieurs nœuds2du réseau1) dans une entrée4de la base de données5. En variante, le module19d'interface émet de lui-même une information20pour inscription dans une entrée4.
[0046] Dans l'enclave8du nœud d'entrée se déroulent alors les opérations suivantes.
[0047] Une première opération consiste à chiffrer les données15au moyen d'une première clé21cryptographique de chiffrement pour former un premier conteneur22crypté, en lui associant une première 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.
[0048] Selon un mode préféré de réalisation, le chiffrement est symétrique. Dans ce cas, la première clé21de chiffrement et la première clé23de déchiffrement sont une seule et même clé.
[0049] Une deuxième opération consiste à fragmenter la première clé23de déchiffrement. Plus précisément, la première clé23de déchiffrement est fragmentée en un nombre N prédéterminé de fragments23.i(i un entier, 2≤i≤N).
[0050] Selon un mode préféré de réalisation, N est tel que N>3 et la fragmentation de la première clé23de déchiffrement 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 K entier prédéterminé (1<K<N) est choisi tel qu'un nombre K de fragments23.isont suffisants pour reconstituer la première clé23de déchiffrement.
[0051] Une troisième opération consiste à calculer un condensat25, dit de référence, du premier conteneur22, en lui appliquant une fonction de hachage prédéterminée - typiquement SHA-256.
[0052] Une quatrième opération consiste à fragmenter le condensat25de référence en un nombre prédéterminé M de fragments25.j(j un entier, 2≤j≤M).
[0053] Selon un mode préféré de réalisation, M est tel que M>3 et la fragmentation du condensat25est réalisée en application des règles de Shamir, et plus précisément du schéma seuil, où un nombre entier prédéterminé L (1<L<M) est choisi tel qu'un nombre L de fragments25.jsont suffisants pour reconstituer le condensat25.
[0054] Une cinquième opération consiste à rechiffrer le premier conteneur22(déjà crypté) au moyen d'une deuxième clé26cryptographique de chiffrement pour former un deuxième conteneur27crypté (deux fois, donc), en lui associant une deuxième clé28cryptographique de déchiffrement.
[0055] Selon un mode préféré de réalisation, le chiffrement est symétrique. Dans ce cas, la deuxième clé26de chiffrement et la deuxième clé28de déchiffrement sont une seule et même clé.
[0056] Une sixième opération consiste à fragmenter la deuxième clé28de déchiffrement. Plus précisément, la deuxième clé28de déchiffrement est fragmentée en un nombre P prédéterminé de fragments28.k(k un entier, 2≤k≤P).
[0057] Selon un mode préféré de réalisation, P est tel que P>3 et la fragmentation de la deuxième clé28de déchiffrement est réalisée en application des règles de Shamir, et plus précisément du schéma seuil, où un nombre entier prédéterminé Q (1<Q<P) est choisi tel qu'un nombre Q de fragments28.ksont suffisants pour reconstituer la deuxième clé28de déchiffrement.
[0058] Une septième opération consiste à désigner, parmi le réseau1, un premier groupe de nœuds2Ade stockage.
[0059] Une huitième opération consiste à distribuer le deuxième conteneur27crypté vers les nœuds2Ade stockage du premier groupe.
[0060] A cet effet, l'enclave8est avantageusement pourvue d'un module29de distribution de données, auquel le module24de chiffrement communique le deuxième conteneur27crypté pour distribution aux nœuds2Ade stockage du premier groupe.
[0061] Une neuvième opération consiste à désigner, parmi le réseau1, un deuxième groupe de nœuds2Bde stockage, en nombre N égal au nombre de fragments23.ide la première clé23de déchiffrement.
[0062] Ce deuxième groupe de nœuds2Bde stockage est de préférence disjoint du premier groupe de nœuds2Ade stockage (comme illustré en pointillés sur laFIG.3).
[0063] Une dixième opération consiste à distribuer les fragments23.ide la première clé23cryptographique de déchiffrement vers les nœuds2Bde stockage du deuxième groupe, chaque nœud2Bde stockage du deuxième groupe recevant un unique fragment23.i.
[0064] Selon un mode préféré de réalisation, l'enclave8est pourvue d'un module30de fragmentation et de distribution, auquel le module24de chiffrement communique la première clé23de déchiffrement pour fragmentation et distribution aux nœuds2Bde stockage du deuxième groupe.
[0065] Une onzième opération consiste à désigner, parmi le réseau1, un troisième groupe de nœuds2Cde stockage en nombre M égal aux fragments25.jdu condensat25de référence.
[0066] Une douzième opération consiste à distribuer chaque fragment25.jdu condensat25de référence vers un nœud2Cdu troisième groupe, chaque nœud2Cdu troisième groupe recevant un unique fragment25.j.
[0067] Ce troisième groupe de nœuds2Cde stockage est de préférence disjoint du premier groupe de nœuds2Ade stockage et du deuxième groupe de nœuds2Bde stockage (comme illustré en pointillés sur laFIG.3).
[0068] Une treizième opération consiste à désigner, parmi le réseau1, un quatrième groupe de nœuds2Dde stockage en nombrePégal aux fragments28.kde la deuxième clé28cryptographique de déchiffrement.
[0069] Ce quatrième groupe de nœuds2Dde stockage est de préférence disjoint du premier groupe de nœuds2Ade stockage, du deuxième groupe de nœuds2Bde stockage et du troisième groupe de nœuds2Cde stockage (comme illustré en pointillés sur laFIG.3).
[0070] Une quatorzième opération consiste à distribuer chaque fragment28.kde la deuxième clé28de déchiffrement vers un nœud2Ddu quatrième groupe, chaque nœud2Dde stockage du quatrième groupe recevant un unique fragment28.k.
[0071] Ces opérations achevées, l'enclave8peut être refermée.
[0072] Hors de l'enclave8, les opérations suivantes sont réalisées :
<tb><SEP>o Le deuxième conteneur27crypté est mémorisé au sein de chaque nœud2Ade stockage du premier groupe ;
<tb><SEP>o Chaque fragment23.ide la première clé23cryptographique de déchiffrement est mémorisé au sein de chaque nœud2Brespectif de stockage du deuxième groupe ;
<tb><SEP>o Chaque fragment25.jdu condensat25de référence est mémorisé au sein de chaque nœud2Crespectif de stockage du troisième groupe ;
<tb><SEP>o Chaque fragment28.kde la deuxième clé28cryptographique de déchiffrement est stocké au sein de chaque nœud2Drespectif de stockage du quatrième groupe.
[0073] Pour assurer la traçabilité de ces opérations, au moins une information contenant une empreinte numérique des distributions ou des mémorisations ainsi effectuées est avantageusement inscrite dans une entrée4de la base de données5. Cette information peut être transmise par les nœuds2A,2B,2Cet2Dde stockage, mais elle peut également être transmise par l'enclave8elle-même (et plus précisément par le module19d'interface) avant sa fermeture.
[0074] Comme on l'a déjà suggéré, il est important de s'assurer que les données15sont effectivement stockées sur les nœuds2Ade stockage du réseau1. Plus précisément, il est souhaitable d'obtenir (ponctuellement ou régulièrement) une preuve que chaque nœud2Adu premier groupe garde en mémoire, intact, les données15(sous forme du deuxième conteneur27crypté), sans toutefois permettre à un quelconque nœud2Adu premier groupe d'accéder aux données15.
[0075] A cet effet, la phase de contrôle comprend une succession d'opérations, décrites ci-après en référence à laFIG.4.
[0076] Une opération préalable consiste à désigner (DES), parmi les nœuds2du réseau1, un nœud2Fde contrôle et un nœud2Gde calcul chacun équipé d'une unité de traitement informatique dans laquelle est implémentée une enclave8. Le nœud2Gde calcul sert de mandataire aux nœuds2Ade stockage qui ne sont pas nécessairement équipés d'enclaves dans leurs unités de traitement.
[0077] Ensuite, pour chaque nœud2Ade stockage du premier groupe, tel que désigné (DES) successivement, la phase de contrôle comprend la répétition des opérations suivantes.
[0078] Une première opération consiste à instancier l'enclave8du nœud2Fde contrôle.
[0079] Une deuxième opération consiste à instancier l'enclave8du nœud2Gde calcul.
[0080] Une troisième opération consiste à établir une liaison sécurisée entre l'enclave8du nœud2Fde contrôle et l'enclave du nœud2Gde calcul.
[0081] Une quatrième opération consiste, pour le nœud2Fde contrôle, à requérir (REQ) auprès dePnœuds2Dde stockage du quatrième groupe, P fragments28.k(trois dans l'exemple purement illustratif de laFIG.4) de la deuxième clé28de déchiffrement.
[0082] Une cinquième opération consiste à charger cesPfragments28.kde la deuxième clé28de chiffrement dans l'enclave8du nœud2Fde contrôle.
[0083] Une sixième opération consiste à reconstituer, dans l'enclave8du nœud2Fde contrôle, la deuxième clé28de déchiffrement à partir desPfragments28.kainsi chargés.
[0084] Une septième opération consiste, depuis l'enclave8du nœud2Fde contrôle, à transmettre à l'enclave8du nœud2Gde calcul la deuxième clé28de déchiffrement ainsi reconstituée.
[0085] Une huitième opération consiste, pour le nœud2Fde contrôle, à requérir (REQ) L fragments25.jdu condensat25de référence
[0086] Une neuvième opération consiste à charger ces L fragments25.jdu condensat25de référence dans l'enclave8du nœud2Fde contrôle.
[0087] Une dixième opération110consiste à reconstituer, dans l'enclave8du nœud2Fde contrôle, le condensat25de référence à partir des L fragments25.jainsi chargés.
[0088] Une onzième opération consiste à charger dans l'enclave8du nœud2Gde calcul, à partir du nœud2Ade stockage, le deuxième conteneur27crypté.
[0089] Une douzième opération consiste, dans l'enclave8du nœud2Gde calcul, à déchiffrer le deuxième conteneur27crypté, au moyen de la deuxième clé28de déchiffrement reçue de l'enclave8du nœud2Fde contrôle, pour reconstituer une copie22'du premier conteneur22crypté.
[0090] Une treizième opération consiste, dans l'enclave8du nœud2Gde calcul, à calculer un condensat25', dit de contrôle, de cette copie22'du premier conteneur22crypté, par la même méthode que celle utilisée pour le calcul du condensat25de référence à partir de l'original du premier conteneur22crypté (ici SHA-256).
[0091] Une quatorzième opération consiste, à partir de l'enclave8du nœud2Gde calcul, à transmettre à l'enclave8du nœud2Fde contrôle, le condensat25'de contrôle ainsi calculé.
[0092] Une quinzième opération consiste, dans l'enclave8du nœud2Fde contrôle, à comparer (=) le condensat25'de contrôle au condensat25de référence. Si les deux condensat25',25sont égaux (résultat Y), cela signifie que la copie22'du premier conteneur22crypté correspond à l'original, et que le nœud2Ade stockage stocke effectivement le deuxième conteneur27, et ce sans altération de son contenu.
[0093] Si au contraire les deux condensats25',25sont différents (résultat N), cela signifie que la copie22'du premier conteneur22crypté ne correspond pas à l'original, que par conséquent le nœud2Ade stockage ne stocke pas correctement le deuxième conteneur27, et qu'il est donc probable que les données15qu'il contient soient, a minima, corrompues.
[0094] Dans les deux cas, hors de l'enclave8(tant du nœud2Gde calcul que du nœud2Fde contrôle), une opération supplémentaire consiste à inscrire, dans une entrée4de la base de données5, au moins une empreinte numérique de ce résultat (ici Y ou N).
[0095] Le procédé qui vient d'être décrit présente les avantages suivants.
[0096] Premièrement, le double chiffrement des données15limite drastiquement les risques d'accès non autorisé à celles-ci par un nœud2Ade stockage ou par un tiers ayant obtenu indûment le deuxième conteneur27crypté : il est en effet nécessaire d'obtenir Q fragments28.kde la deuxième clé28de déchiffrement et K fragments23.ide la première clé23de déchiffrement pour parvenir à extraire les données15du deuxième conteneur27crypté. Le succès d'une telle procédure est hautement improbable, car elle requiert des moyens de calcul prohibitifs.
[0097] Deuxièmement, le double chiffrement permet, via les enclaves8instanciées temporairement, lors de la phase de contrôle, dans le nœud2Fde contrôle et dans le nœud2Gde calcul, de reconstituer temporairement dans le nœud2Gde calcul une copie22'du premier conteneur22crypté pour en extraire le condensat de contrôle25'et, grâce à celui-ci, de prouver de manière non seulement simple, mais encore et surtout confidentielle, que le stockage des données15(au sein du deuxième conteneur27) se poursuit effectivement dans le nœud2Ade stockage.
[0098] Un nœud2Ade stockage ayant fourni (via le nœud2Gde calcul) cette preuve peut être considéré comme fiable et maintenu parmi le premier groupe. A contrario, un nœud2Ade stockage qui n'aurait pas fourni cette preuve doit être considéré comme défaillant et éliminé du premier groupe. Dans ce cas, il est possible de remplacer le(s) nœud(s) défaillant(s) ainsi détecté(s) par un (des) nouveau(x) nœud(s)2Ade stockage enrôlé(s) dans le premier groupe, et vers lequel (lesquels) le deuxième conteneur27est redéployé à partir d'une copie disponible sur l'un des nœuds2Ade stockage réputés fiables.
Claims (4)
1. Procédé de stockage sécurisé de données (15) informatiques au sein d'un réseau (1) informatique comprenant une pluralité de nœuds (2), ce procédé comprenant :
A) Une phase de distribution, qui comprend 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) ;
- A réception de la requête de stockage par au moins un nœud (2) du réseau (1), sélectionner au sein du réseau (1) 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) ;
- Charger les données (15), à partir du terminal (2E) émetteur et via une ligne (17) de communication sécurisée, vers l'enclave (8) du nœud (2E) d'entrée ;
- Inscrire dans une entrée (4) d'une base de données (5) 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 premier conteneur (22) crypté, en lui associant une première clé (23) cryptographique de déchiffrement ;
o Fragmenter la première clé (23) cryptographique de déchiffrement en un nombre N prédéterminé de fragments (23.i) ;
o Calculer un condensat (25), dit de référence, du premier conteneur (22) crypté en lui appliquant une fonction de hachage prédéterminée ;
o Fragmenter le condensat (25) de référence en un nombre prédéterminé de fragments (25.j) ;
o Rechiffrer le premier conteneur (22) pour former un deuxième conteneur (27) crypté, en lui associant une deuxième clé (28) cryptographique de déchiffrement ;
o Fragmenter la deuxième clé (28) cryptographique de déchiffrement en un nombre prédéterminé de fragments (28.k);
o Désigner, parmi le réseau (1), un premier groupe de nœuds (2A) de stockage ;
o Distribuer le deuxième conteneur (27) crypté vers les nœuds (2A) du premier groupe ;
o Désigner, parmi le réseau (1), un deuxième groupe de nœuds (2B) de stockage en nombre égal aux fragments (23.i) de la première clé (23) cryptographique de déchiffrement ;
o Distribuer chaque fragment (23.i) de la première clé (23) cryptographique de déchiffrement vers un nœud (2B) du deuxième groupe, chaque nœud (2B) du deuxième groupe recevant un unique fragment (23.i) ;
o Désigner, parmi le réseau (1), un troisième groupe de nœuds (2C) de stockage en nombre égal aux fragments (25.j) du condensat (25) de référence ;
o Distribuer chaque fragment (25.j) du condensat (25) de référence vers un nœud (2C) du troisième groupe, chaque nœud (2C) du troisième groupe recevant un unique fragment (25.j);
o Désigner, parmi le réseau (1), un quatrième groupe de nœuds (2D) de stockage en nombre égal aux fragments (28.k) de la deuxième clé (28) cryptographique de déchiffrement ;
o Distribuer chaque fragment (28.k) de la deuxième clé (28) de déchiffrement vers un nœud (2D) du quatrième groupe, chaque nœud (2D) du quatrième groupe recevant un unique fragment (28.k) ;
- Hors de l'enclave (8) du nœud (2E) d'entrée :
o Mémoriser le deuxième conteneur (27) crypté au sein de chaque nœud (2A) de stockage du premier groupe ;
o Mémoriser chaque fragment (23.i) de la première clé (23) cryptographique de déchiffrement au sein de chaque nœud (2B) de stockage du deuxième groupe ;
o Mémoriser chaque fragment (25.j) du condensat (25) de référence au sein de chaque nœud (2C) de stockage du troisième groupe ;
o Mémoriser chaque fragment (28.k) de la deuxième clé (28) cryptographique de déchiffrement au sein de chaque nœud (2D) de stockage du quatrième groupe ;
- Inscrire dans une entrée (4) de la base de données (5) une ou des empreintes numériques de ces distributions ou de ces mémorisations ;
B) Une phase de contrôle, qui comprend la désignation, parmi les nœuds (2) du réseau (1), d'un nœud (2F) de contrôle et d'un nœud (2G) de calcul chacun équipé d'une unité de traitement informatique dans laquelle est implémentée une enclave (8), et, pour chaque nœud (2A) de stockage du premier groupe, les opérations consistant à :
- Instancier l'enclave (8) du nœud (2F) de contrôle;
- Instancier l'enclave (8) du nœud (2G) de calcul ;
- Etablir une liaison sécurisée entre l'enclave (8) du nœud (2F) de contrôle et l'enclave (8) du nœud (2G) de calcul ;
- Dans l'enclave (8) du nœud (2F) de contrôle :
o Charger, à partir d'un nombre prédéterminé de nœuds (2C) du troisième groupe, des fragments (25.j) du condensat de référence ;
o Reconstituer le condensat (25) de référence à partir de ces fragments (25.j) ;
o Charger, à partir d'un nombre prédéterminé de nœuds (2D) du quatrième groupe, des fragments (28.k) de la deuxième clé (28) cryptographique de déchiffrement ;
o Reconstituer la deuxième clé (28) cryptographique de déchiffrement ;
o Transmettre la deuxième clé (28) cryptographique de déchiffrement à l'enclave (8) du nœud (2G) de calcul ;
- Dans l'enclave (8) du nœud (2G) de calcul :
o Charger le deuxième conteneur (27) crypté à partir d'un nœud (2A) de stockage du premier groupe ;
o Déchiffrer le deuxième conteneur (27) crypté au moyen de la deuxième clé (28) cryptographique de déchiffrement reçue de l'enclave (8) du nœud (2F) de contrôle, pour reconstituer une copie (22') du premier conteneur (22) crypté ;
o Calculer un condensat (25'), dit de contrôle, de cette copie (22') du premier conteneur (22) crypté ;
o Transmettre le condensat (25') de contrôle à l'enclave (8) du nœud (2F) de contrôle ;
- Dans l'enclave (8) du nœud (2F) de contrôle, comparer le condensat (25') de contrôle au condensat (25) de référence ;
- Hors de l'enclave (8), inscrire le résultat de cette comparaison ou une empreinte de ce résultat dans une entrée (4) de la base de données (5).
2. Procédé selon la revendication 1, dans lequel la fragmentation de la première clé (23) de déchiffrement est réalisée en application des règles de Shamir.
3. Procédé selon la revendication 1, dans lequel la fragmentation de la deuxième clé (28) de déchiffrement est réalisée en application des règles de Shamir.
4. Procédé selon la revendication 1, dans lequel la fragmentation du condensat (25) de référence est réalisée en application des règles de Shamir.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CH00739/19A CH716265A2 (fr) | 2019-06-07 | 2019-06-07 | Procédé de stockage de données informatiques sur un réseau avec preuve de stockage à partir d'un noeud de calcul équipé d'une enclave cryptographique. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CH00739/19A CH716265A2 (fr) | 2019-06-07 | 2019-06-07 | Procédé de stockage de données informatiques sur un réseau avec preuve de stockage à partir d'un noeud de calcul équipé d'une enclave cryptographique. |
Publications (1)
Publication Number | Publication Date |
---|---|
CH716265A2 true CH716265A2 (fr) | 2020-12-15 |
Family
ID=73727395
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CH00739/19A CH716265A2 (fr) | 2019-06-07 | 2019-06-07 | Procédé de stockage de données informatiques sur un réseau avec preuve de stockage à partir d'un noeud de calcul équipé d'une enclave cryptographique. |
Country Status (1)
Country | Link |
---|---|
CH (1) | CH716265A2 (fr) |
-
2019
- 2019-06-07 CH CH00739/19A patent/CH716265A2/fr not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10805072B2 (en) | System and method for autonomous dynamic person management | |
US11893577B2 (en) | Cryptographic key storage system and method | |
Vasilopoulos et al. | Message-locked proofs of retrievability with secure deduplication | |
CH716295A2 (fr) | Procédé de signature multiple d'une transaction destinée à une blockchain, au moyen de clés cryptographiques distribuées parmi les noeuds d'un réseau pair-à-pair. | |
WO2020136206A1 (fr) | Plateforme de sécurisation de données | |
CH716265A2 (fr) | Procédé de stockage de données informatiques sur un réseau avec preuve de stockage à partir d'un noeud de calcul équipé d'une enclave cryptographique. | |
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'une enclave cryptographique. | |
CH716267A2 (fr) | Procédé de stockage de données informatiques sur un réseau blockchain avec preuve de stockage à partir d'un noeud de calcul épuipé d'une enclave cryptographique. | |
CH716266A2 (fr) | Procédé de stockage de données informatiques sur un réseau blockchain avec preuve de stockage à partir d'un noeud de stockage équipé d'une enclave cryptographique. | |
CH716294A2 (fr) | Procédé de signature décentralisée, sous contrôle biométrique et sous conditions d'identification personnelle et de géolocalisation, d'une transaction destinée à une blockchain. | |
CH716263A2 (fr) | Procédé de stockage de données informatiques par distribution d'un conteneur crypté et de sa clé de déchiffrement fragmentée sur un réseau blockchain. | |
CH716285A2 (fr) | Procédé de contrôle de données biométriques d'un individu, avec inscription, dans une blockchain, d'un résultat d'analyse. | |
CH716262A2 (fr) | Procédé de stockage de données informatiques par distribution d'un conteneur crypté et de sa clé de déchiffrement sur des noeuds distincts d'un réseau blockchain. | |
CH716261A2 (fr) | Procédé de stockage de données informatiques par distribution d'un conteneur crypté et de sa clé de déchiffrement sur un réseau blockchain. | |
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'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'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. | |
CH716298A2 (fr) | Procédé de stockage, sous forme cryptée, d'une application sur un réseau blockchain, avec audit préalable du code source de cette application. | |
CH716297A2 (fr) | Procédé de traitement, sous enclave, de données informatiques chiffrées au moyen d'une application chiffrée contenant du code source, avec audit préalable de celui-ci. | |
CH716268A2 (fr) | Procédé de partage d'un secret parmi les noeuds d'un réseau informatique, avec contrôle statistique de noeuds défaillants. | |
CH716284A2 (fr) | Procédé de traitement distribué, au sein d'un réseau blockchain et sous enclaves, de données informatiques chiffrées avec une clé fragmentée. | |
Patil et al. | BlockCrate: A Blockchain-Based Asset Sharing and Management Solution | |
CH716288A2 (fr) | Procédé de traitement de données biométriques d'un individu, avec phases de calibrage et de contrôle et inscription, dans une blockchain, sous condition de géolocalisation, d'un résultat d'analyse. | |
CH716287A2 (fr) | Procédé de traitement de données biométriques d'un individu, avec phases de calibrage et de contrôle et inscription, dans une blockchain, d'un résultat d'analyse. | |
CH716299A2 (fr) | Procédé de signature d'une transaction destinée à une blockchain, au moyen d'une clé cryptographique distribuée parmi les noeuds d'un réseau pair-à-pair. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AZW | Rejection (application) |