FR 3085503 A1 20200306 FR 1857792 A 20180830 Procédé et système sécurisés de partage retardé de données entre plusieurs utilisateurs émetteurs et un utilisateur destinataire, avec horodatage sur blockchain L'invention a trait au domaine de l'informatique, et plus précisément du partage de fichiers de données informatiques entre plusieurs utilisateurs émetteurs et 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 20 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 25 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 30 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. 35 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 B010 FR 2 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). En outre, les messageries électroniques ne permettent pas à 5 plusieurs utilisateurs de se grouper pour adresser un message à un destinataire. Pour échanger des données de gros volume (c'est-à-dire de taille supérieure à 10 Mo) environ, ou pour permettre à plusieurs utilisateurs émetteurs de partager des données avec un utilisateur destinataire, il 10 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. 15 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 N (N un entier, N 2), utilisateurs émetteurs et un utilisateur destinataire, via un système informatique équipé : D'un serveur de communication, D'au moins un serveur de fichiers, et D'une base de données de profils contenant en mémoire des profils associés respectivement aux utilisateurs, chaque profil comprenant au moins un identifiant et au moins une clé cryptographique publique à laquelle correspond une clé privée ; LAP B010 FR 3 D'une unité de contrôle, reliée au serveur de communication, au serveur de fichier et à la base de données ; Ce procédé comprenant, au niveau du système, trois phases successives : 5 Une phase d'écriture, qui inclut les opérations consistant à : o Recevoir d'un utilisateur émetteur maître une requête contenant une instruction de création d'un conteneur de données à partager, un identifiant de chaque utilisateur émetteur (autre que l'utilisateur émetteur maître) et un 10 identifiant de l'utilisateur destinataire ; o Créer le conteneur dans un serveur de fichiers ; o Associer le conteneur au profil correspondant, dans la base de données, à l'utilisateur destinataire ; o Associer au conteneur un délai prédéterminé d'écriture ; 15 o Tant que le délai d'écriture n'a pas expiré, permettre à chaque utilisateur émetteur l'accès en écriture au conteneur ; - Une phase d'archivage, qui inclut les opérations consistant à : o A l'expiration du délai d'écriture, interdire aux utilisateurs émetteurs l'accès, au moins en écriture, au conteneur ; 20 o Crypter le conteneur à l'aide de la clé publique de l'utilisateur destinataire pour former un conteneur crypté ; o Associer au conteneur crypté un délai prédéterminé d'archivage ; o Stocker le conteneur crypté dans un serveur de fichiers en en 25 interdisant l'accès au moins à l'utilisateur destinataire ; o Répéter périodiquement la séquence de vérification suivante : a) Sélectionner un bloc dans un registre informatique constitué en chaîne de blocs ayant chacun une donnée d'horodatage ; 30 b) Extraire la donnée d'horodatage du bloc sélectionné ; c) Déterminer, à partir de cette donnée d'horodatage, 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 35 du conteneur crypté ; LAP B010 FR 4 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, à permettre à l'utilisateur destinataire de télécharger le conteneur crypté en vue de le décrypter à l'aide de sa clé privée. 5 Diverses caractéristiques supplémentaires peuvent être prévues, seules ou en combinaison. Ainsi, par exemple : Le délai d'écriture peut être défini par l'utilisateur émetteur maître ou de manière automatique. De même, le délai d'archivage peut être défini par l'utilisateur 10 émetteur maître ou de manière automatique. Il est avantageusement prévu la réception, par le serveur de communication, d'une notification de décryptage du conteneur par l'utilisateur destinataire. Dans ce cas, il est également prévu, de préférence, la destruction du conteneur crypté sur le serveur de 15 fichiers après réception de la notification de décryptage par l'utilisateur destinataire. Le conteneur est avantageusement subdivisé en plusieurs espaces mémoires propres, chacun alloué à un utilisateur émetteur respectif. Dans ce cas, l'accès par un utilisateur émetteur à un 20 espace mémoire d'un autre utilisateur émetteur est de préférence interdit. Il est proposé, en deuxième lieu, un système informatique qui, pour la mise en oeuvre du procédé tel que présenté ci-dessus, comprend : 25 - Un serveur de communication, Au moins un serveur de fichiers, et Une base de données de profils contenant en mémoire des profils associés respectivement aux utilisateurs, chaque profil comprenant au moins un identifiant et au moins une clé cryptographique 30 publique à laquelle correspond une clé privée, Ce système comprenant en outre une unité de contrôle comprenant une mémoire programmable contenant des instructions pour opérer : Une phase d'écriture, qui inclut les opérations consistant à : o Recevoir d'un utilisateur émetteur maître une requête 35 contenant une instruction de création d'un conteneur de données à partager, un identifiant de chaque utilisateur LAP B010 FR 5 émetteur (autre que l'utilisateur émetteur maître) et un identifiant de l'utilisateur destinataire ; o Créer le conteneur dans un serveur de fichiers ; o Associer le conteneur au profil correspondant, dans la base 5 de données, à l'utilisateur destinataire ; o Associer au conteneur un délai prédéterminé d'écriture ; o Tant que le délai d'écriture n'a pas expiré, permettre à chaque utilisateur émetteur l'accès en écriture au conteneur ; Une phase d'archivage, qui inclut les opérations consistant à : 10 o A l'expiration du délai d'écriture, interdire aux utilisateurs émetteurs l'accès, au moins en écriture, au conteneur ; o Crypter le conteneur à l'aide de la clé publique de l'utilisateur destinataire pour former un conteneur crypté ; o Associer au conteneur crypté un délai prédéterminé 15 d'archivage ; o Stocker le conteneur crypté dans un serveur de fichiers en en interdisant l'accès au moins à l'utilisateur destinataire ; o Répéter périodiquement la séquence de vérification suivante : a) Sélectionner un bloc dans un registre informatique 20 constitué en chaîne de blocs ayant chacun une donnée d'horodatage ; b) Extraire la donnée d'horodatage du bloc sélectionné ; c) Déterminer, à partir de cette donnée d'horodatage, une date courante ; 25 0 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 à 30 permettre à l'utilisateur destinataire de télécharger le conteneur crypté en vue de le décrypter à l'aide de sa clé privée. 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 : 35 - 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 ; LAP B010 FR 6 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 ; 5 - 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, 10 destiné à permettre le partage de fichiers 2 de données informatiques entre N utilisateurs Ai émetteurs (où N est un entier tel que N 2 et i un entier tel que 1 i 2) de chaque autre utilisateur Ai (i > 2) émetteur, et un identifiant IDB de l'utilisateur B destinataire ; o Créer le conteneur 6 dans un serveur 5 de fichiers ; o Associer le conteneur 6 au profil associé à l'utilisateur B dans la base 7 de données ; 30 o Associer au conteneur 6 un délai T1 prédéterminé d'écriture ; o Tant que le délai T1 d'écriture n'a pas expiré, permettre à chaque utilisateur Ai émetteur l'accès en écriture au conteneur 6. En pratique, l'utilisateur Al émetteur maître adresse au système 1 35 informatique, via le réseau 3, la requête de création du conteneur 6. Cette requête transite par le serveur 4 de communication, qui effectue les vérifications d'identité de l'utilisateur Al émetteur maître, LAP B010 FR 8 typiquement par comparaison d'une information communiquée par celui-ci (par ex. un mot de passe) avec une information associée à son profil IDA1 tel que mémorisé dans la base 7 de données. Dès lors que l'utilisateur Al émetteur maître est identifié, accès lui est donné 5 (éventuellement par un autre canal de communication, comme illustré sur la FIG.1) au serveur 5 de fichiers. Le système 1 vérifie que les identifiants IDAi (i > 2) communiqués par l'utilisateur Al émetteur maître correspondent effectivement à des profils utilisateurs PAi mémorisés. 10 Dès lors, 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 de chaque terminal Ai lui-même, ou être téléchargés depuis des serveurs distants via le réseau 3. 15 Le délai Tl d'écriture (schématisé sur les dessins par un premier compte à rebours) peut être défini par l'utilisateur Al 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. et plus précisément dans l'unité 8 de contrôle. 20 Selon un mode avantageux illustré sur la FIG.4, le conteneur 6 est subdivisé en plusieurs espaces 6.i mémoires propres, chacun alloué à un utilisateur Ai émetteur respectif - c'est-à-dire que les fichiers 2 de données déposés par chaque utilisateur Ai émetteur dans son espace 6.i mémoire propre n'affectent pas les fichiers 2 de données déposés 25 par un autre utilisateur Aj émetteur (j un entier tel que j i) dans son espace 6.j mémoire propre. Il est même préférable que soit interdit l'accès (en lecture et/ou en écriture) par un utilisateur Ai émetteur à un espace 6.j mémoire propre alloué à un autre utilisateur Aj émetteur. 30 Une deuxième phase, dite d'archivage, inclut les opérations consistant à : o A l'expiration du délai T1 d'écriture, interdire à chaque utilisateur Ai émetteur l'accès, au moins en écriture, au conteneur 6 ; 35 o Crypter le conteneur 6 à l'aide de la clé ZB publique de l'utilisateur B destinataire pour former un conteneur 6B crypté ; LAP B010 FR 9 o Associer au conteneur 6B 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 6B crypté dans un serveur 5 de fichiers en en 5 interdisant l'accès au moins à l'utilisateur B destinataire. Le délai T2 d'archivage (schématisé sur les dessins par un deuxième compte à rebours) peut être défini par l'utilisateur Al maître, ou automatiquement. Le délai T2 d'archivage est avantageusement implémenté au sein du système 1 informatique, par ex. au moyen d'une 10 horloge interne pilotée par (ou intégrée à) 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 contrôle de l'expiration du délai T2 d'archivage est réalisé par 15 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 : 20 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 25 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) ; 30 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 35 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 REVENDICATIONS1. Procédé de partage de fichiers (2) de données informatiques entre N utilisateurs (Ai) émetteurs (N un entier, N 2 ; i un entier tel que 1 2) de chaque utilisateur (Ai où i > 2) émetteur et un identifiant (IDB) de l'utilisateur (B) destinataire ; o Créer le conteneur (6) dans un serveur (5) de fichiers ; o Associer le conteneur (6) au profil (IDB) correspondant, dans la base (7) de données, à l'utilisateur (B) destinataire ; o Associer au conteneur (6) un délai (Ti) prédéterminé d'écriture ; o Tant que le délai (Ti) d'écriture n'a pas expiré, 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 l'expiration du délai (T1) d'écriture, interdire aux utilisateurs (Ai) émetteurs l'accès, au moins en écriture, au conteneur (6) ; LAP B010 FR 17 o Crypter le conteneur (6) à l'aide de la clé (ZB) publique de l'utilisateur (B) destinataire pour former un conteneur (6B) crypté ; o Associer au conteneur (6B) crypté un délai (T2) prédéterminé 5 d'archivage ; o Stocker le conteneur (6B) crypté dans un serveur (5) de fichiers en en interdisant l'accès au moins à l'utilisateur (B) destinataire ; o Répéter périodiquement la séquence de vérification suivante : 10 a) Sélectionner un bloc (10) dans un registre informatique constitué en chaîne (9) de blocs ayant chacun une donnée d'horodatage ; b) Extraire la donnée d'horodatage du bloc (10) sélectionné ; 15 c) Déterminer, à partir de cette donnée d'horodatage, 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é ; 20 - 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, à permettre à l'utilisateur B destinataire de télécharger le conteneur (6B) crypté en vue de le décrypter à l'aide de sa clé (BZ) privée. 25 2. Procédé selon la revendication 1, dans lequel le délai (T1) d'écriture est défini par l'utilisateur (A1) émetteur maître. 3. Procédé selon la revendication 1, dans lequel le délai (T1) d'écriture est défini automatiquement. 4. Procédé selon l'une des revendications 1 à 3, dans lequel le 30 délai (T2) d'archivage est défini par l'utilisateur (A1) émetteur maître. 5. Procédé selon l'une des revendications 1 à 3, dans lequel le délai (T2) d'archivage est défini automatiquement. 6. Procédé selon l'une des revendications précédentes, dans lequel le conteneur (6) est subdivisé en plusieurs espaces (6.i) 35 mémoires propres, chacun alloué à un utilisateur (Ai) émetteur respectif. LAP B010 FR 18 7. Procédé selon l'une des revendications précédentes, qui comprend la réception, par le serveur (4) de communication, d'une notification de décryptage du conteneur (6) par l'utilisateur (B) destinataire. 5 8. Procédé selon la revendication 7, qui comprend la destruction du conteneur (6B) crypté sur le serveur (5) de fichiers après réception de la notification de décryptage par l'utilisateur (B) destinataire. 9. Système (1) informatique qui, pour la mise en oeuvre du procédé selon l'une des revendications précédentes, comprend : 10 - Un serveur (4) de communication, Au moins un serveur (5) de fichiers, et Une base (7) de données de profils contenant en mémoire des profils (PAi, PB) associés respectivement aux utilisateurs (Ai, B), chaque profil (PAi, PB) comprenant au moins un identifiant (IDAi, 15 IDB) et au moins une clé (ZAi, ZB) cryptographique publique à laquelle correspond une clé (AiZ, BZ) privée, Ce système (1) comprenant en outre une unité (8) de contrôle comprenant une mémoire programmable contenant des instructions pour opérer : 20 Une phase d'écriture, qui inclut les opérations consistant à : o Recevoir d'un utilisateur (A1) émetteur maître une requête contenant une instruction de création d'un conteneur (6) de données à partager, un identifiant (IDAi où i > 1) de chaque utilisateur (Ai où i 1) émetteur et un identifiant (IDB) de 25 l'utilisateur (B) destinataire ; o Créer le conteneur (6) dans un serveur (5) de fichiers ; o Associer le conteneur (6) au profil (IDB) correspondant, dans la base (7) de données, à l'utilisateur (B) destinataire ; o Associer au conteneur (6) un délai (T1) prédéterminé 30 d'écriture ; o Tant que le délai (Ti) d'écriture n'a pas expiré, permettre à chaque utilisateur (Ai) émetteur l'accès en écriture au conteneur (6) ; Une phase d'archivage, qui inclut les opérations consistant à : LAP B010 FR 19 o A l'expiration du délai (T1) d'écriture, interdire aux utilisateurs (Ai) émetteurs l'accès, au moins en écriture, au conteneur (6) ; o Crypter les données du conteneur (6) à l'aide de la clé (ZB) 5 publique de l'utilisateur (B) destinataire pour former un conteneur (6B) crypté ; o Associer au fichier conteneur (6B) crypté un délai (T2) prédéterminé d'archivage ; o Stocker le conteneur (6B) crypté dans un serveur (5) de 10 fichiers en en interdisant l'accès au moins à l'utilisateur (B) destinataire ; o Répéter périodiquement la séquence de vérification suivante : a) Sélectionner un bloc (10) dans un registre informatique constitué en chaîne (9) de blocs ayant chacun une 15 donnée d'horodatage ; b) Extraire la donnée d'horodatage du bloc (10) sélectionné ; c) Déterminer, à partir de cette donnée d'horodatage, une date courante ; 20 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 25 courante, à permettre à l'utilisateur (B) destinataire de télécharger le conteneur (6B) crypté en vue de le décrypter à l'aide de sa clé (BZ) privée. LAP B010 FR