FR3085502A1 - Procede et systeme securises de partage retarde de donnees entre au moins un utilisateur emetteur et au moins un utilisateur destinataire, avec horodatage par interrogation multiple d'une blockchain. - Google Patents
Procede et systeme securises de partage retarde de donnees entre au moins un utilisateur emetteur et au moins un utilisateur destinataire, avec horodatage par interrogation multiple d'une blockchain. Download PDFInfo
- Publication number
- FR3085502A1 FR3085502A1 FR1857800A FR1857800A FR3085502A1 FR 3085502 A1 FR3085502 A1 FR 3085502A1 FR 1857800 A FR1857800 A FR 1857800A FR 1857800 A FR1857800 A FR 1857800A FR 3085502 A1 FR3085502 A1 FR 3085502A1
- Authority
- FR
- France
- Prior art keywords
- user
- container
- nodes
- data
- recipient
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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/0442—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 wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/108—Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/2115—Third party
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/2137—Time limited access, e.g. to a computer or data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/2143—Clearing memory, e.g. to prevent the data from being stolen
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/2151—Time stamp
-
- 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/121—Timestamp
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Procédé de partage de fichiers (2) entre au moins un utilisateur (Ai) émetteur et au moins un utilisateur (Bk) destinataire, qui comprend plusieurs phases : - Ecriture : ○ Créer, sur requête d'au moins un utilisateur (Ai) émetteur, un conteneur (6) de données, associé à l'utilisateur (Bk) destinataire ; ○ Permettre à l'utilisateur (Ai) émetteur l'accès en écriture au conteneur (6) ; - Archivage : ○ A l'expiration de la phase d'écriture, crypter le conteneur (6) ; o Pendant un délai (T2) d'archivage contrôlé par interrogation multiple d'une blockchain, stocker le conteneur (6Bk) crypté ; Partage : décrypter le conteneur (6Bk) pour en permettre l'accès à l'utilisateur (Bk) destinataire.
Description
Procédé et système sécurisés de partage retardé de données entre au moins un utilisateur émetteur et au moins un utilisateur destinataire, avec horodatage par interrogation multiple d’une blockchain
L’invention a trait au domaine de l’informatique, et plus précisément du partage de fichiers de données informatiques entre au moins un utilisateur émetteur et au moins un utilisateur destinataire.
Le terme « utilisateur » est ici employé pour désigner un appareil communiquant (en anglais « user device »), typiquement un smartphone, une tablette, ou plus généralement un ordinateur, par ex. un ordinateur portable ou fixe ou encore une station de travail, capable de se connecter, via un réseau informatique local (LAN), métropolitain (MAN) ou étendu (WAN, typiquement l’Internet), à un serveur distant, le terme « serveur » désignant ici une unité physique ou, dans un cadre de virtualisation, un espace de calcul et/ou de mémoire alloué au sein d’une unité physique et sur lequel tourne un système d’exploitation ou une émulation de système d’exploitation.
Néanmoins on comprend qu’est associé à un tel dispositif électronique client un utilisateur réel (c'est-à-dire une personne physique ou morale) qui effectue des opérations à partir de ce dispositif.
L’utilisation des réseaux informatiques est aujourd’hui assez répandue, notamment pour le partage de données.
Il existe divers types de systèmes permettant de partager des données.
Les messageries électroniques de type boîte aux lettres, qui fonctionnent de manière asynchrone, permettent à un utilisateur A (émetteur) d’adresser à un utilisateur B (destinataire) un message contenant des informations qui peuvent être incluses dans le corps du message lui-même, ou sous forme de fichiers joints.
Dans une messagerie électronique, le délai d’acheminement du message dépend, pour l’essentiel, de la bande passante (disponibilité) du réseau reliant l’utilisateur émetteur et l’utilisateur destinataire, et de la taille mémoire du message, y compris ses éventuelles pièces jointes.
Bien souvent, l’acheminement prend quelques secondes. Le destinataire peut alors ouvrir et lire le message provenant de l’émetteur quand bon lui semble.
LAP B016 FR
A l’heure où sont écrites ces lignes, les messageries électroniques sont limitées quant à la taille des messages transmis, le plus souvent à une dizaine de Mégaoctets (Mo).
Pour échanger des données de gros volume (c'est-à-dire de taille supérieure à 10 Mo) environ, il est devenu usuel de recourir à des plateformes spécialisées, par ex. DropBox (marque déposée).
Dans leur principe, ces plateformes visent à permettre un accès permanent à un espace mémoire privé sur lequel sont mémorisés des fichiers, pour tout utilisateur identifié comme y ayant droit.
Le piratage des fichiers implique soit un accès non autorisé à cet espace mémoire, soit l’usurpation de l’identité d’un utilisateur ayant droit d’accès.
Ces plateformes sont simples d’utilisation mais rencontrent cependant des limites quant à la sécurisation des données. En particulier, l’usurpation d’identité est très efficace pour accéder aux données, et ce de manière immédiate, et - en général - tant en lecture qu’en écriture.
Il persiste par conséquent un besoin de partager des fichiers de données informatiques entre utilisateurs, avec un degré supérieur de sécurité, tout en préservant une certaine simplicité d’utilisation.
A cet effet, il est proposé, en premier lieu, un procédé de partage de fichiers de données informatiques entre au moins un utilisateur émetteur et au moins un utilisateur destinataire, ce procédé comprenant trois phases successives :
Une phase d’écriture, qui inclut les opérations consistant à :
o Créer, sur requête d’au moins un utilisateur émetteur, au moins un conteneur de données à partager, associé à l’utilisateur (ou à chaque utilisateur) destinataire ;
o Tant qu’aucune instruction de fin d’écriture n’a été prise en compte, permettre à chaque utilisateur émetteur l’accès en écriture au conteneur ;
Une phase d’archivage, qui inclut les opérations consistant à :
o A la prise en compte de l’instruction de fin d’écriture, crypter le ou chaque conteneur pour former un conteneur crypté associé à chaque destinataire ;
o Associer au (ou à chaque) conteneur crypté un délai prédéterminé d’archivage ;
LAP B016 FR o Stocker le conteneur crypté en en interdisant l’accès au moins à l’utilisateur destinataire (ou à chaque utilisateur destinataire) ;
o Répéter périodiquement la séquence de vérification suivante :
a) Identifier un réseau pair à pair comprenant un nombre R (R un entier, R>2) de nœuds sur chacun desquels est mémorisé un exemplaire d’un registre informatique organisé en chaîne de blocs ;
b) Désigner, parmi l’ensemble des nœuds, au nombre de R (R un entier, R>2), du réseau, une pluralité de nœuds (9), au nombre de Q (Q un entier, 2<Q<R), dit nœuds élus ;
c) Sélectionner un numéro d’ordre parmi les numéros d’ordre de l’ensemble des blocs ;
d) Extraire de chaque nœud élu la donnée d’horodatage du bloc ayant le numéro d’ordre ainsi sélectionné ;
e) Si la donnée d’horodatage est décrétée consensuelle pour les nœuds élus, affecter sa valeur à une date courante ;
o Tant que le délai d’archivage est antérieur à la date courante, répéter la séquence de vérification en maintenant le stockage du conteneur crypté ;
Une phase de partage, qui inclut l’opération consistant, dès lors que le délai d’archivage est égal ou postérieur à la date courante, à décrypter le conteneur pour permettre à l’utilisateur (ou à chaque utilisateur) destinataire d’y accéder.
Diverses caractéristiques supplémentaires peuvent être prévues, seules ou en combinaison. Ainsi, par exemple :
Il est avantageusement prévu, pendant la phase d’écriture, une opération consistant à associer au conteneur un délai prédéterminé d’écriture à l’expiration duquel une instruction de fin d’écriture est émise.
Le délai d’écriture peut être défini par l’utilisateur émetteur, ou automatiquement.
Le délai d’archivage peut être défini par l’utilisateur émetteur, ou automatiquement.
Le délai d’archivage peut être défini séparément pour chaque utilisateur destinataire.
LAP B016 FR
La désignation des noeuds élus est de préférence effectuée aléatoirement parmi l’ensemble des noeuds du réseau.
Le nombre Q de noeuds élus est avantageusement déterminé de manière aléatoire.
La mise à jour est de préférence réitérée périodiquement.
Dans ce cas, le nombre Q de noeuds élus peut être modifié à chaque nouvelle mise à jour.
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 :
La FIG.1 est un schéma synthétique d’un système informatique illustrant la phase d’écriture d’un procédé selon l’invention ;
La FIG.2 est schéma similaire à la FIG.1, illustrant la phase d’archivage ;
La FIG.3 est un schéma similaire à la FIG.1, illustrant la phase de partage ;
La FIG.4 est un schéma illustrant différentes étapes du procédé de l’invention ;
La FIG.5 est un schéma illustrant l’extraction d’une donnée d’horodatage d’une chaîne de blocs.
Sur les FIG.1 à FIG.3 est représenté un système 1 informatique, destiné à permettre le partage de fichiers 2 de données informatiques entre au moins un utilisateur Ai émetteur (i un entier tel que 1 < i < N ; N un entier tel que N > 1 ) et au moins un utilisateur Bk destinataire (k un entier tel que 1 < k <P ; P un entier tel que P > 1).
Le terme « utilisateur » désigne ici, concrètement, un appareil électronique, tel qu’un smartphone, un ordinateur, une tablette, et pourvu d’une interface de communication (filaire ou sans fil) par l’intermédiaire de laquelle cet appareil est capable de se connecter à un serveur distant, via un réseau 3 local (LAN), métropolitain (MAN) ou étendu (WIDE, tel que l’Internet). On comprend cependant que, par extension, le terme « utilisateur » désigne indirectement un (ou plusieurs) utilisateur(s) réel(s) (par ex. une personne physique ou morale) associé(s) à cet appareil.
Le système 1 informatique comprend, en premier lieu, un serveur 4 de communication, programmé pour pouvoir établir des sessions de
LAP B016 FR communication (de préférence sécurisées) avec des utilisateurs (notamment avec les utilisateurs Ai et Bk).
Le système 1 informatique comprend, en deuxième lieu, un serveur 5 de fichiers, sur lequel peuvent être créés ou déposés des répertoires ou « conteneurs » 6 de fichiers de données à partager. Dans ces conteneurs peuvent être créés, déposés, copiés, collés, supprimés, modifiés, des fichiers 2 de données de tout type, par ex. des fichiers issus d’applications de bureautique (par ex. traitement de texte, tableur), des fichiers de son, d’image, ou encore de vidéo.
Le système 1 informatique comprend, en troisième lieu, une base 7 de données de profils qui contient en mémoire des profils PAi, PBk d’utilisateurs. En l’espèce, la base de données contient au moins un profil PAi associé à chaque utilisateur Ai émetteur, et un profil PBk associé à chaque utilisateur Bk destinataire.
Chaque profil PAi, PBk utilisateur comprend au moins un identifiant ID Ai, IDBk lié à l’utilisateur Ai, Bk respectif (par ex. un nom, une adresse électronique, un numéro de téléphone) et au moins une clé ZAi, ZBk cryptographique publique respective.
A cette clé ZAi, ZBk cryptographique publique correspond une clé cryptographique AiZ, BkZ respective privée.
La clé AiZ, BkZ cryptographique privée associée à chaque utilisateur Ai ou Bk est stockée localement dans un espace mémoire de celui-ci.
Le système 1 informatique comprend, en quatrième lieu, une unité 8 de contrôle, reliée au serveur 4 de communication, au serveur 5 de fichiers et à la base 7 de données. L’unité 8 de contrôle comprend au moins un processeur et une mémoire programmable. L’unité 8 de contrôle est programmée pour contrôler le serveur 4 de communication, le serveur 5 de fichiers et pour administrer la base 7 de données.
Le partage de données entre au moins un utilisateur Ai émetteur et au moins un utilisateur Bk destinataire comprend trois phases.
Une première phase, dite d’écriture, inclut les opérations consistant à :
o Créer, sur requête d’au moins un utilisateur Ai émetteur, au moins un conteneur 6 de données à partager ;
LAP B016 FR o Tant qu’aucune instruction de fin d’écriture n’a été prise en compte, permettre à chaque utilisateur Ai émetteur l’accès en écriture au conteneur 6.
Le conteneur 6 peut être créé localement par un utilisateur Ai émetteur, par exemple lorsque cet utilisateur Ai émetteur est unique (N=1 ; i = 1), ou, comme dans l’exemple illustré, sur le serveur 5 de fichiers, notamment lorsque plusieurs utilisateurs Ai émetteurs partagent ce conteneur 6.
Pendant la phase d’écriture, chaque utilisateur Ai émetteur est autorisé à modifier le conteneur 6 en lui ajoutant ou en lui soustrayant des fichiers 2 de données. Ces fichiers 2 de données peuvent être issus du (ou de chaque) terminal Ai lui-même, ou être téléchargés depuis des serveurs distants via le réseau 3.
Selon un mode préféré de réalisation, un délai T1 d’écriture (schématisé sur les dessins par un premier compte à rebours) est avantageusement défini par un utilisateur A1 émetteur maître, ou automatiquement par l’unité 8 de contrôle. Le délai T1 d’écriture est avantageusement implémenté au sein du système 1 informatique, par ex. au moyen d’une horloge interne pilotée par (ou intégrée à) l’unité 8 de contrôle.
C’est à l’expiration de ce délai T1 d’écriture qu’est émise l’instruction de fin d’écriture.
Une deuxième phase, dite d’archivage, inclut les opérations consistant à :
o A la prise en compte de l’instruction de fin d’écriture (c'est-àdire, dans l’exemple présenté ci-dessus, à la fin du délai T1 d’écriture), crypter le ou chaque conteneur (6) pour former un conteneur (6Bk) crypté associé à chaque destinataire (Bk) ;
o Associer au (ou à chaque) conteneur (6Bk) crypté un délai (T2) prédéterminé d’archivage ;
o Tant que le délai (T2) d’archivage n’a pas expiré, stocker le conteneur (6Bk) crypté en en interdisant l’accès au moins à l’utilisateur (Bk) destinataire.
Selon un mode préféré de réalisation, le cryptage est réalisé au moyen de la clé ZBk publique du (ou de chaque) utilisateur Bk destinataire. Lorsque plusieurs utilisateurs Bk sont désignés à l’occasion de la création du conteneur 6, le conteneur 6 est avantageusement copié
LAP B016 FR en autant d’exemplaires que de destinataires, chaque copie étant dans ce cas de préférence cryptée au moyen de la clé ZBk publique de l’utilisateur Bk correspondant.
Le délai T2 d’archivage (schématisé sur les dessins par un deuxième compte à rebours) peut être défini par l’utilisateur A1 émetteur maître, ou automatiquement. Le délai T2 d’archivage est avantageusement implémenté au sein du système 1 informatique, et plus précisément dans l’unité 8 de contrôle.
Le délai T2 d’archivage est avantageusement supérieur à une heure. Il est de préférence supérieur à un jour. Il peut atteindre un mois, voire une ou plusieurs années.
Le délai T2 d’archivage peut être défini séparément pour chaque utilisateur Bk destinataire.
Le contrôle de l’expiration du délai T2 d’archivage est réalisé par interrogation d’un registre informatique constitué en chaîne de blocs ou blockchain 9 (selon la terminologie anglo-saxonne).
Pour les besoins de la présente demande, la blockchain 9 est un registre informatique contenant des données subdivisées en blocs 10 (ou blocks) reliés entre eux, contenant chacun :
Un corps 11 comprenant des signatures numériques de transactions (c'est-à-dire d’échanges de données) passées entre des utilisateurs, Un en-tête 12 contenant des métadonnées parmi lesquelles :
o Un numéro d’ordre, ou rang, ou encore hauteur (height en anglais), qui se présente sous forme d’un entier qui désigne la position du bloc 10 au sein de la blockchain 9 dans l’ordre croissant à partir d’un bloc 10 initial portant le numéro zéro ou le numéro un (comme dans l’exemple illustré sur la FIG.5) et appelé bloc de genèse (Genesis Block en anglais) ;
o Une empreinte numérique des données du bloc 10 ;
o L’empreinte numérique (appelée pointeur) du bloc 10 précédent ;
o Une donnée d’horodatage ou timestamp, qui peut se présenter sous forme d’une date (incluant l’année, le mois et le jour, par ex. au format AAA-MM-JJ) ou d’un nombre correspondant au nombre de secondes écoulées depuis une date de référence ou « Epoch » - par ex. le 1er janvier 1970 pour les systèmes
LAP B016 FR fonctionnant sous le système d’exploitation UNIX (marque déposée).
L’empreinte numérique de chaque bloc 10 se présente sous forme d’une chaîne de caractères, typiquement de 64 caractères codés en base hexadécimale (pouvant chacun prendre une valeur quelconque de 0 à f), ce qui en binaire correspond à une chaîne de 256 bits (ayant chacun la valeur 0 ou la valeur 1 ).
La valeur de l’empreinte numérique dépend des données du bloc 10 : la moindre modification des données du bloc 10 entraîne la modification de l’empreinte numérique.
Selon un mode particulier de réalisation, l’empreinte numérique de chaque bloc est un condensé (ou condensât, ou hash) des données du bloc 10, c'est-à-dire le résultat d’une fonction de hachage appliquée aux données du bloc (y compris le corps 11 et l’en-tête 12 à l’exception de l’empreinte numérique elle-même). La fonction de hachage est typiquement SHA-256. Sur la FIG.5, l’empreinte numérique est désignée par le terme « Hash ».
Pour un bloc 10 donné de rang N (N un entier), le pointeur assure avec le bloc 10 précédent de rang N-1 (cf. FIG.5) une liaison inaltérable. En effet, toute modification des données du bloc 10 de rang N-1 aboutirait à la modification de son empreinte, et donc à un défaut de correspondance entre cette empreinte (modifiée) du bloc 10 de rang N-1 et le pointeur mémorisé parmi les métadonnées du bloc 10 de rang N.
La succession des blocs 10 reliés entre eux deux à deux par correspondance du pointeur d’un bloc 10 donné de rang N avec l’empreinte numérique du bloc 10 précédent de rang N-1 constitue par conséquent une chaîne de blocs corrélés, dans laquelle la moindre modification des données d’un bloc 10 de rang N-1 se traduit par une rupture du lien avec le bloc 10 suivant de rang N - et donc la rupture de la blockchain 9.
C’est cette structure particulière qui procure aux données contenues dans la blockchain 9 - en particulier aux données d’horodatage - la réputation d’immuabilité.
La blockchain 9 est mémorisée sur un réseau 13 pair à pair composé d’une pluralité de noeuds 14 (chacun formé par un ou plusieurs ordinateurs, ou un ou plusieurs serveurs) au nombre de R (R un entier, R>2), qui, ensemble, forment une base de données distribuée.
LAP B016 FR
Plus précisément, la blockchain 9 est mémorisée sur cette base de données distribuée en étant répliquée sur chaque nœud 14 (en d’autres termes, sur chaque nœud 14 est mémorisé un exemplaire de la blockchain 9). Sur chaque nœud 14 est implémenté un protocole informatique (par ex. Bitcoin ou Ethereum, marques déposées) de participation à l’élaboration de la blockchain 9.
Ce protocole, dit « protocole blockchain », comprend un processus calculatoire d’ajout périodique d’un nouveau bloc 10 de rang N + 1 à la blockchain 9 contenant déjà un nombre N de blocs 10.
Ce processus met en œuvre un mécanisme de validation des blocs 10 par consensus entre tout ou partie des nœuds 14.
Un mécanisme possible, dit de preuve de travail (proof of work ou PoW), consiste à mettre en concurrence les nœuds 14 quant à leur puissance de calcul, en leur imposant une contrainte calculatoire, appelée difficulté, qui se présente typiquement sous forme d’une valeur numérique maximale à ne pas dépasser.
Pour surmonter la difficulté, chaque nœud 14 effectue de manière répétée un calcul de condensé (ou hash) des données du bloc 10 en ajoutant au préalable à ces données une variable (appelée nonce) qui est modifiée à chaque itération tant que le résultat du calcul n’est pas inférieur à la difficulté imposée.
Une particularité des fonctions de hachage, notamment SHA-256, est leur non-récursivité, c'est-à-dire le fait que deux itérations successives du calcul à partir de données initiales proches (ici différentiées par le seul incrément du nonce) produit des résultats décorrélés, ce qui rend impossible la convergence des itérations successives du calcul vers l’objectif (une valeur du condensé ou hash inférieure à la difficulté).
Le premier nœud 14 surmontant la difficulté (c'est-à-dire produisant un condensé ou hash inférieur à la difficulté) est déclaré vainqueur et emporte une prime (ou incentive), généralement sous forme d’un versement prédéterminé en monnaie cryptographique ou cryptomonnaie (actuellement 12,5 bitcoins dans la blockchain Bitcoin).
Le nœud 14 vainqueur communique alors aux autres nœuds 14 le nonce ayant permis de surmonter la difficulté. Les autres nœuds 14 vérifient eux-mêmes la justesse du calcul effectué par le nœud 14 vainqueur et, constatant que la difficulté est effectivement surmontée,
LAP B016 FR valident le nouveau bloc 10 de rang N + 1 en l’ajoutant, chacun, à la blockchain 9 existante qui se trouve ainsi incrémentée d’une unité.
Le timestamp de ce bloc 10 de rang N + 1 correspond, à quelques secondes ou à quelques minutes près, à la date et à l’heure courante à laquelle est fait l’ajout, typiquement sur la base de l’horloge locale du nœud 14 vainqueur (laquelle peut être synchronisée avec les horloges locales des autres nœuds 14), ou encore, lorsque par exemple les nœuds 14 ne sont pas synchronisés, sur la base d’une donnée d’horloge corrigée par l’ajout, à l’heure fournie par l’horloge locale du nœud 14 vainqueur, du décalage temporel moyen (qui peut être négatif) de cette horloge avec celles des autres nœuds 14.
Une fois le bloc 10 de rang N + 1 inséré dans la blockchain 9, les blocs 10 de rang inférieur se trouvent sécurisés contre les altérations malveillantes, et ce d’autant plus que leur numéro de rang est faible devant N + 1.
En particulier, l’insertion du bloc 10 de rang N + 1 sécurise le bloc 10 de rang N, et notamment son timestamp, qui peut dès lors servir de référence temporelle.
Ainsi, il est possible d’interroger la blockchain 9 pour en extraire une donnée temporelle fiable dont on peut déduire au moins la date courante.
Plus précisément, l’interrogation de la blockchain 9 comprend la répétition périodique de la séquence de vérification suivante :
a) Identifier le réseau 13 pair à pair ;
b) Désigner, parmi l’ensemble des nœuds 14 du réseau 13, une pluralité de nœuds 14, au nombre de Q (Q un entier, 2<Q<R), dit nœuds (9) élus (en grisé sur la FIG.5) ;
c) Sélectionner un rang (par ex. le rang N sur la FIG.5) parmi les rangs de l’ensemble des blocs 10 ;
d) Extraire de chaque nœud 14 élu la donnée d’horodatage (timestamp) du bloc 10 ayant le rang ainsi sélectionné ;
e) Si la donnée d’horodatage est décrétée consensuelle pour les nœuds 14 élus, affecter sa valeur à une date courante.
Lorsque le timestamp consensuel comprend en lui-même la date courante, au format AAAA-MM-JJ (éventuellement complétée de l’heure courante au format HH:MM:SS), c’est cette date qui est retenue par le système 1.
LAP B016 FR
Pour les raisons de clarté, seules deux exemplaires de la blockchain 9 (issus de deux noeuds 14 élus) sont représentés sur la FIG.5.
Lorsque le timestamp se présente sous forme du nombre de secondes écoulées depuis une date de référence (par ex. Epoch), le système 1 est programmé pour calculer la date courante à partir de ce nombre.
Tant que le délai T2 d’archivage est antérieur à la date courante ainsi déterminée, cette séquence de vérification est répétée tandis qu’est maintenu le stockage du conteneur 6Bk crypté.
En d’autres termes, le délai T2 d’archivage est décrété non expiré tant qu’il n’a pas été atteint ou dépassé par la date courante issue de l’interrogation de la blockchain 9.
L’avantage du recours à la blockchain 9 est que les timestamps des blocs 10 sont très difficilement altérables - et donc très fiables. Il en résulte que la donnée temporelle déterminée à partir de la blockchain 9 est également très fiable, encore plus qu’une donnée temporelle issue d’un serveur, typiquement d’un serveur de temps (ou serveur NTP, cet acronyme étant issu de l’anglais Network Time Protocol), qui bien que réputé fiable demeure sensible aux attaques, notamment de déni de service.
Le fait de considérer les données d’horodatage issues de plusieurs noeuds 14 (mais d’un même bloc 10) permet d’outrepasser la présomption qu’une donnée d’horodatage issue d’un nœud unique quelconque d’une blockchain est fiable. De la sorte, il est possible de se prémunir contre une attaque qui aurait été perpétrée sur le nœud interrogé, dans la mesure où les autres nœuds interrogés offrent ensemble une donnée d’horodatage consensuelle.
Le consensus peut être décrété sur la donnée d’horodatage lorsqu’une majorité absolue de nœuds 14 élus retournent une valeur identique d’horodatage. Dans ce cas, c’est cette valeur qui est affectée à la date courante.
Lorsqu’il ne se dégage pas, parmi les nœuds 14 élus, de majorité absolue retournant une valeur identique, il est envisageable de retenir pour la date courante une valeur identique retournée par une majorité relative de nœuds 14 interrogés, dès lors que l’écart des données d’horodatage retournées par les autres nœuds à cette valeur identique est inférieur à un seuil prédéterminé.
LAP B016 FR
Selon un mode préféré de réalisation, la désignation des noeuds 14 élus est effectuée aléatoirement parmi l’ensemble des noeuds 14 du réseau 13. De la sorte, il est possible de se prémunir contre des attaques malveillantes portées contre un grand nombre de noeuds 14. D’un point de vue statistique, tout se passe en effet comme si c’est l’ensemble des R noeuds 14 du réseau 9 qui pouvaient potentiellement être élus (et donc interrogés).
Le nombre Q de noeuds élus est avantageusement déterminé de manière aléatoire.
La mise à jour de la date est de préférence réitérée périodiquement.
Dans ce cas, le nombre Q de noeuds élus peut être modifié à chaque nouvelle mise à jour.
Selon un mode préféré de réalisation, l’unité 8 de contrôle est dépourvue d’instructions pour communiquer à chaque l’utilisateur Bk destinataire, pendant la phase d’archivage, l’existence même d’un conteneur 6 ou d’un conteneur 6Bk crypté à son attention, de sorte que les utilisateurs réels associés aux utilisateurs Bk destinataires sont tenus dans l’ignorance de cette existence.
Le délai T2 d’archivage est décrété expiré lorsqu’il a été dépassé par la date courante issue de l’interrogation de la blockchain 9.
Dès lors, une troisième phase, dite de partage, inclut l’opération consistant, à l’expiration du délai T2 d’archivage, à décrypter le conteneur 6 (ou chaque copie de celui-ci) pour en permettre l’accès à l’utilisateur (ou à chaque utilisateur) (Bk) destinataire.
En pratique, la phase de partage consiste à permettre à chaque utilisateur Bk destinataire de télécharger le conteneur 6Bk crypté en vue de le décrypter à l’aide de sa clé BkZ privée.
Concrètement, l’unité 8 de contrôle est par ex. programmée pour adresser à l’utilisateur Bk destinataire (notamment via le serveur 4 de communication) une notification de mise à disposition du conteneur 6Bk crypté. Cette notification contient avantageusement un identifiant IDAi associé à au moins un utilisateur Ai émetteur, ou un identifiant IDAi associé à chaque utilisateur Ai émetteur. Le téléchargement est alors de préférence commandé par l’utilisateur Bk destinataire, plutôt qu’effectué automatiquement sur commande de l’unité 8 de contrôle. La connaissance au moins du profil IDAi de l’utilisateur (ou de chaque utilisateur) Ai émetteur par l’utilisateur Bk destinataire peut constituer
LAP B016 FR pour celui-ci un indice de confiance de la provenance et/ou de l’innocuité des données partagées par les utilisateurs Ai émetteurs.
Concrètement, chaque conteneur 6Bk crypté est adressé, sur commande de l’unité 8 de contrôle, à l’utilisateur Bk destinataire correspondant via le réseau 3. Le décryptage est réalisé localement par l’utilisateur Bk destinataire, par l’intermédiaire de sa clé BkZ privée stockée localement. L’utilisateur Bk destinataire peut alors accéder en lecture (et le cas échéant en écriture) au conteneur 6, c'est-à-dire aux fichiers 2 de données qu’il contient, tels que déposés à l’initiative de l’utilisateur A émetteur.
A l’issue du décryptage, les fichiers 2 de données peuvent être stockés localement par chaque utilisateur Bk destinataire.
A l’issue du décryptage, chaque utilisateur Bk destinataire peut adresser (de manière automatique ou sur commande externe) au système 1 une notification de décryptage. Cette notification est reçue par le serveur 4 de communication.
Dans ce cas, il est avantageusement prévu la destruction du (ou de chaque) conteneur 6Bk crypté correspondant sur le serveur 5 de fichiers après réception, par le système 1, de la notification de décryptage.
De la sorte, de l’espace mémoire est libéré au sein du serveur 5 de fichiers, ce qui facilite la création ultérieure de nouveaux conteneurs 6.
Le procédé qui vient d’être présenté offre un avantage certain en termes de sécurité par comparaison avec les procédés (respectivement les systèmes) connus. En effet, pendant la phase d’archivage, les données des fichiers 2 ne peuvent pas être lues - ni a fortiori modifiées - par l’utilisateur (ou chaque utilisateur) Ai émetteur ou par l’un quelconque des utilisateurs Bk destinataires. Toute usurpation d’identité de l’un quelconque d’entre eux est inopérante puisqu’il est nécessaire de disposer de la clé privée de l’utilisateur Bk destinataire pour décrypter le conteneur 6Bk.
On voit même que le contrôle exercé par l’utilisateur (ou par chaque utilisateur) Ai sur le conteneur 6 (c'est-à-dire sur les fichiers 2 de données à partager) cesse à l’expiration du délai T1 d’écriture, alors même que son contenu n’est encore accessible pour aucun utilisateur Bk destinataire. Le retard (prédéterminé) avec lequel les utilisateurs Bk destinataires accède aux fichiers 2 de données partagées par les utilisateurs Ai émetteurs rend impossible tout dialogue entre eux en
LAP B016 FR temps réel, au bénéfice de la parcimonie avec laquelle les utilisateurs échangent des données entre eux. Il en résulte notamment une optimisation de la bande passante nécessaire, dans les réseaux, aux échanges entre utilisateurs.
Claims (11)
- REVENDICATIONS1. Procédé de partage de fichiers (2) de données informatiques entre au moins un utilisateur (Ai) émetteur (i un entier tel que 1 < i < N ; N un entier tel que N > 1) et au moins un utilisateur (Bk) destinataire (k un entier tel que 1 < k < P ; P un entier tel que P > 1 ;), ce procédé étant caractérisé en ce qu’il comprend trois phases successives :Une phase d’écriture, qui inclut les opérations consistant à :o Créer, sur requête d’au moins un utilisateur (Ai) émetteur, au moins un conteneur (6) de données à partager, associé à l’utilisateur (ou à chaque utilisateur) (Bk) destinataire ;o Tant qu’aucune instruction de fin d’écriture n’a été prise en compte, permettre à chaque utilisateur (Ai) émetteur l’accès en écriture au conteneur (6) ;Une phase d’archivage, qui inclut les opérations consistant à :o A la prise en compte de l’instruction de fin d’écriture, crypter le ou chaque conteneur (6) pour former un conteneur (6Bk) crypté associé à chaque destinataire (Bk) ;o Associer au (ou à chaque) conteneur (6Bk) crypté un délai (T2) prédéterminé d’archivage ;o Stocker le conteneur (6Bk) crypté en en interdisant l’accès au moins à l’utilisateur (Bk) destinataire ;o Répéter périodiquement la séquence de vérification suivante :f) Identifier un réseau (13) pair à pair comprenant un nombre R (R un entier, R>2) de noeuds (14) sur chacun desquels est mémorisé un exemplaire d’un registre (9) informatique organisé en chaîne de blocs (10) ;g) Désigner, parmi l’ensemble des noeuds (9), au nombre de R (R un entier, R>2), du réseau (8), une pluralité de noeuds (9), au nombre de Q (Q un entier, 2<Q<R), dit nœuds (9) élus ;h) Sélectionner un numéro d’ordre parmi les numéros d’ordre de l’ensemble des blocs (5) ;i) Extraire de chaque nœud (9) élu la donnée d’horodatage du bloc (5) ayant le numéro d’ordre ainsi sélectionné ;LAP B016 FRj) Si la donnée d’horodatage est décrétée consensuelle pour les noeuds (9) élus, affecter sa valeur à une date courante ;o Tant que le délai (T2) d’archivage est antérieur à la date courante, répéter la séquence de vérification en maintenant le stockage du conteneur (6Bk) crypté ;Une phase de partage, qui inclut l’opération consistant, dès lors que le délai (T2) d’archivage est égal ou postérieur à la date courante, à décrypter le conteneur (6) pour en permettre l’accès à l’utilisateur (ou à chaque utilisateur) (Bk) destinataire.
- 2. Procédé selon la revendication 1, qui comprend, pendant la phase d’écriture, une opération consistant à associer au conteneur (6) un délai (T1) prédéterminé d’écriture à l’expiration duquel une instruction de fin d’écriture est émise.
- 3. Procédé selon la revendication 2, dans lequel le délai (T1) d’écriture est défini par un utilisateur (Ai) émetteur.
- 4. Procédé selon la revendication 2, dans lequel le délai (T1) d’écriture est défini automatiquement.
- 5. Procédé selon l’une des revendications 1 à 4, dans lequel le délai (T2) d’archivage est défini par un utilisateur (Ai) émetteur.
- 6. Procédé selon l’une des revendications 1 à 4, dans lequel le délai (T2) d’archivage est défini automatiquement.
- 7. Procédé selon l’une des revendications précédentes, caractérisé en ce que la désignation des noeuds (14) élus est effectuée aléatoirement parmi l’ensemble des noeuds (14) du réseau (13).
- 8. Procédé selon l’une des revendications précédentes, caractérisé en ce que le nombre Q de noeuds (14) élus est déterminé de manière aléatoire.
- 9. Procédé selon la revendication 8, caractérisé en ce qu’il comprend la réitération périodique de la mise à jour.
- 10. Procédé selon les revendications 8 et 9, prises en combinaison, caractérisé en ce que le nombre Q de noeuds (14) élus est modifié à chaque nouvelle mise à jour.
- 11. Procédé selon l’une des revendications précédentes, caractérisé en ce que le numéro d’ordre est celui de l’avant dernier bloc (10) de la chaîne (9) de blocs (10).
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1857800A FR3085502A1 (fr) | 2018-08-30 | 2018-08-30 | Procede et systeme securises de partage retarde de donnees entre au moins un utilisateur emetteur et au moins un utilisateur destinataire, avec horodatage par interrogation multiple d'une blockchain. |
| PCT/IB2019/057196 WO2020044225A1 (fr) | 2018-08-30 | 2019-08-27 | Procédé et système sécurisés de partage retardé de données entre au moins un utilisateur émetteur et au moins un utilisateur destinataire, avec horodatage par interrogation multiple d'une blockchain |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1857800A FR3085502A1 (fr) | 2018-08-30 | 2018-08-30 | Procede et systeme securises de partage retarde de donnees entre au moins un utilisateur emetteur et au moins un utilisateur destinataire, avec horodatage par interrogation multiple d'une blockchain. |
| FR1857800 | 2018-08-30 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| FR3085502A1 true FR3085502A1 (fr) | 2020-03-06 |
Family
ID=63684175
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR1857800A Ceased FR3085502A1 (fr) | 2018-08-30 | 2018-08-30 | Procede et systeme securises de partage retarde de donnees entre au moins un utilisateur emetteur et au moins un utilisateur destinataire, avec horodatage par interrogation multiple d'une blockchain. |
Country Status (2)
| Country | Link |
|---|---|
| FR (1) | FR3085502A1 (fr) |
| WO (1) | WO2020044225A1 (fr) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6604197B1 (en) * | 1998-05-14 | 2003-08-05 | International Business Machines Corporation | Secure flexible electronic submission acceptance system |
| WO2007003783A2 (fr) * | 2005-07-01 | 2007-01-11 | France Telecom | Serveur de distribution de donnees numeriques, serveur de decryptage de donnees numeriques, systeme de transmission et procede de transmission de donnees numeriques |
| US20150339497A1 (en) * | 2014-05-23 | 2015-11-26 | Bank Of America Corporation | Secure media container |
-
2018
- 2018-08-30 FR FR1857800A patent/FR3085502A1/fr not_active Ceased
-
2019
- 2019-08-27 WO PCT/IB2019/057196 patent/WO2020044225A1/fr not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6604197B1 (en) * | 1998-05-14 | 2003-08-05 | International Business Machines Corporation | Secure flexible electronic submission acceptance system |
| WO2007003783A2 (fr) * | 2005-07-01 | 2007-01-11 | France Telecom | Serveur de distribution de donnees numeriques, serveur de decryptage de donnees numeriques, systeme de transmission et procede de transmission de donnees numeriques |
| US20150339497A1 (en) * | 2014-05-23 | 2015-11-26 | Bank Of America Corporation | Secure media container |
Non-Patent Citations (1)
| Title |
|---|
| ZANTHRA: "A NTP like system in blockchain form, has this been thought of before?", BITCOIN FORUM, 21 January 2018 (2018-01-21), XP055575731, Retrieved from the Internet <URL:https://bitcointalk.org/index.php?topic=2796566.0> [retrieved on 20190329] * |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2020044225A1 (fr) | 2020-03-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2017136527A1 (fr) | Base de données améliorée par une chaîne de blocs | |
| CN115769206A (zh) | 密码化数据录入区块链数据结构 | |
| US20140344944A1 (en) | Dynamic database update in multi-server private information retrieval scheme | |
| CN108064030A (zh) | 短信拦截方法和装置 | |
| WO2020044217A1 (fr) | Procédé sécurisé de partage retardé de données entre un utilisateur émetteur et un utilisateur destinataire, avec création locale d'un conteneur et horodatage sur blockchain | |
| WO2020044219A1 (fr) | Procédé et système sécurisés de partage retardé de données entre un utilisateur émetteur et plusieurs utilisateurs destinataires, avec création distante d'un conteneur et horodatage sur blockchain | |
| WO2020044225A1 (fr) | Procédé et système sécurisés de partage retardé de données entre au moins un utilisateur émetteur et au moins un utilisateur destinataire, avec horodatage par interrogation multiple d'une blockchain | |
| Thakur et al. | Data integrity techniques in cloud computing: an analysis | |
| WO2020044222A1 (fr) | Procédé sécurisé de partage retardé de données entre au moins un utilisateur émetteur et au moins un utilisateur destinataire avec horodatage sur blockchain | |
| WO2020044218A1 (fr) | Procédé et système sécurisés de partage retardé de données entre plusieurs utilisateurs émetteur et un utilisateur destinataire, avec horodatage sur blockchain | |
| WO2020044221A1 (fr) | Procédé et système sécurisés de partage retardé de données entre plusieurs utilisateurs émetteurs et plusieurs utilisateurs destinataires, avec horodatage sur blockchain | |
| WO2020044220A1 (fr) | Système et procédé sécurisés de partage retardé de données entre un utilisateur émetteur et plusieurs utilisateurs destinataires, avec création locale d'un conteneur et horodatage sur blockchain | |
| WO2020044216A1 (fr) | Système et procédé sécurisés de partage retardé de données entre un utilisateur émetteur et un utilisateur destinataire, avec création distante d'un conteneur et horodatage sur blockchain | |
| US20240232434A1 (en) | Improvements in or relating to data transmission | |
| CN116894013A (zh) | 文件的处理方法、装置、存储介质及电子设备 | |
| Hua et al. | Secure data deletion in cloud storage: a survey | |
| FR3081062A1 (fr) | Procede et systeme securises de partage retarde de donnees entre un utilisateur emetteur et plusieurs utilisateurs destinataires, avec creation distante d'un conteneur. | |
| Monti et al. | An alternative information plan | |
| WO2020044226A1 (fr) | Procédé et système sécurisés de partage retardé de données entre au moins un utilisateur émetteur et au moins un utilisateur destinataire, sous le contrôle d'un tiers de confiance | |
| WO2020136126A1 (fr) | Reseau de communication securisee et tracee | |
| CN109753813A (zh) | 一种文件安全处理方法 | |
| FR3081065A1 (fr) | Procede et systeme securises de partage retarde de donnees entre plusieurs utilisateurs emetteurs et plusieurs utilisateurs destinataires. | |
| FR3081061A1 (fr) | Procede securise de partage retarde de donnees entre un utilisateur emetteur et plusieurs utilisateurs destinataires, avec creation locale d'un conteneur. | |
| FR3081063A1 (fr) | Procede securise de partage retarde de donnees entre un utilisateur emetteur et un utilisateur destinataire, avec creation locale d'un conteneur. | |
| WO2019215493A1 (fr) | Procédé et système sécurisés de partage retardé de données entre plusieurs utilisateurs émetteur et un utilisateur destinataire |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PLFP | Fee payment |
Year of fee payment: 2 |
|
| PLSC | Publication of the preliminary search report |
Effective date: 20200306 |
|
| PLFP | Fee payment |
Year of fee payment: 3 |
|
| RX | Complete rejection |
Effective date: 20210805 |