FR2994003A1 - Dispositif informatique de stockage de donnees privees totalement distribue en environnement hostile - Google Patents

Dispositif informatique de stockage de donnees privees totalement distribue en environnement hostile Download PDF

Info

Publication number
FR2994003A1
FR2994003A1 FR1202116A FR1202116A FR2994003A1 FR 2994003 A1 FR2994003 A1 FR 2994003A1 FR 1202116 A FR1202116 A FR 1202116A FR 1202116 A FR1202116 A FR 1202116A FR 2994003 A1 FR2994003 A1 FR 2994003A1
Authority
FR
France
Prior art keywords
user
node
data
distributed
mutable
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.)
Withdrawn
Application number
FR1202116A
Other languages
English (en)
Inventor
Jean Louis Guenego
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to FR1202116A priority Critical patent/FR2994003A1/fr
Priority to PCT/FR2013/000204 priority patent/WO2014016478A1/fr
Publication of FR2994003A1 publication Critical patent/FR2994003A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

La présente invention est un système informatique totalement distribué et auto-organisé permettant à des fournisseurs de proposer via Internet des ressources de mémoire afin que des consommateurs les utilisent pour y stocker des données en toute sécurité et confidentialité, l'échange économique se réalisant par des opérateurs intermédiaires. Les machines étant gérées par des fournisseurs de stockage, elles sont indépendantes et administrées tout au plus individuellement mais non collectivement. Elles sont considérées en environnement hostile. L'innovation réside dans une disposition logicielle et matérielle architecturale protocolaire combinant une topologie d'adressage multi-anneaux , des captchas totalement distribués, des modèles de données à graphe orienté acyclique et de l'utilisation de cache sur les trajectoires réseau de stockage pour les objets non mutables. Cet innovation permet de déployer des systèmes distribués en dehors de datacenter sécurisés.

Description

- 1 - Dispositif informatique de stockage de données privées totalement distribué en environnement hostile.
Dispositif de stockage de données informatiques totalement distribué avec fonction de facturation entre consommateurs et fournisseurs de ressource de stockage.
Le but de l'invention est de faire tourner un service de stockage de données informatique sur un nombre fini de machines informatiques, avec chaque machine n'ayant pas de rôle plus spécifique qu'une autre. Les machines étant gérées par des fournisseurs de stockage, indépendantes et administrées tout au plus individuellement mais non collectivement, elles sont considérées en environnement hostile.
Le domaine technique de l'invention est l'informatique. Mots clés : systèmes totalement distribués, environnement hostile, stockage d'information, challenge d'authentification, challenge antirobot (captcha), facturation, résilience, messagerie, peer to peer, cloud computing.
Concernant l'état de la technique antérieure, à l'heure actuelle (année 2012) il existe plusieurs architectures de systèmes informatiques distribués permettant le stockage de données en ligne : - protocole bittorrent, gnutella, freenet, - Table de hachage distribuée (DHT) chord, can, pastry, tapestry, - Service de stockage commerciaux DropBox, Google Drive, Apple iCloud, Microsoft Skydrive, Le but concernant l'invention est la mise en oeuvre d'un système informatique avec les objectifs suivants : -2- 1. Permettre à des fournisseurs de ressource de stockage informatique de mettre à disposition facilement leurs ressources tout en étant rémunéré. 2. Permettre à des consommateurs de ressource de stockage informatique de stocker des données dans de l'espace mémoire avec un minimum de sécurité et de confidentialité. 3. Permettre à des intermédiaires de revendre de l'espace de stockage en prenant en charge toute la partie marketing, commerciale, administrative, facturation et recouvrement. 4. Avoir un système de stockage le plus résilient possible, c'est à dire qui résiste au plus possible aux perturbations externes (fournisseur défaillant, coupure réseau, coupure électrique, virus, attaque malveillante, catastrophe naturelle, guerre, etc) 5. Permettre à des utilisateurs d'un même système informatique distribué de stockage de s'envoyer des messages en restant dans une architecture totalement distribuée (ie: sans administrateur de serveur de mail, de nom de domaine, etc.) L'invention est à présent décrite ci-dessous. L'invention est la définition d'un nouveau protocole de communication réseau permettant la mise en oeuvre d'un système informatique de stockage totalement distribué permettant : - d'être composé d'un grand nombre de noeuds (supérieur au milliard de noeud), chaque noeud ayant potentiellement les même possibilités techniques (pas de serveur central). - de stocker des grandes quantités de données (supérieur à 1 000 000 000 Gigaoctets) - d'être multi-utilisateurs et d'assurer la sécurité (intégrité et confidentialité) des données utilisateurs - de gérer l'historique de l'activité de l'utilisateur - de permettre l'échange d'information entre utilisateur - d'instancier les noeuds sur un large éventail de matériel informatique (PC, smartphone, boîtier de connexion internet, antennes, serveur, data center) -3- - une gestion des évènements de stockage permettant une valorisation des transactions mémoires. Dans ce document le protocole est appelé DSP (Distributed Storage Protocol). Pour détailler le mode de réalisation, ce document fait appel à diverses notions informatiques et précise la terminologie qu'il utilise avec juste les détails et particularité nécessaires à une implémentation logicielle et matérielle. On spécifie au fur et à mesure des définitions le protocole DSP qui est un mode de réalisation des revendications. Une machine informatique est un système muni d'un calculateur, d'une 15 mémoire et de ports de communication avec l'extérieur. Par exemple un ordinateur, un PC, une tablette, un téléphone portable, un smartphone, un boîtier de connexion internet (une "box"), un relais internet public, un modem, un routeur, un NAS, etc. 20 Un système d'exploitation est un ensemble de logiciels permettant le bon fonctionnement et l'administration d'une machine informatique. Un processus est un programme informatique qui est exécuté sur une machine informatique. Tout logiciel informatique, en étant exécuté crée 25 un ou plusieurs processus sur la machine informatique sur laquelle il est installé. Un processus comporte au moins un fil d'exécution (entité exécutant une série d'actions consécutives, thread en anglais), plusieurs s'il s'agit d'un processus multi-threads. Un processus possède son propre espace mémoire, qui est rendu à la machine lorsque le 30 processus se termine ou est interrompu par le système d'exploitation. Un processus est permanent si après avoir démarré, il est à l'écoute d'évènements et effectue des opérations en fonction des évènements reçus. Il peut tourner indéfiniment jusqu'à ce qu'un événement lui 35 indique de s'arrêter. 10 - 4 - Un serveur est un processus permanent capable d'être à l'écoute et de recevoir des messages puis d'envoyer des messages en réponse. Un client est un processus capable d'envoyer des messages à un serveur 5 et d'en récupérer si nécessaire les réponses. Un système distribué est un ensemble de processus tournant sur un ensemble de machines informatiques et pouvant communiquer ensemble. Ainsi, chacun des processus est client, ou serveur (ou les deux). 10 Le système distribué de base est le système client-serveur : il comprend deux processus, l'un est le client, l'autre est le serveur. Un agent est un processus équipé d'un client et optionnellement d'un 15 serveur. Il est le maillon élémentaire d'un système distribué. Un système distribué totalement décentralisé est un système distribué ou chaque processus à les mêmes capacités fonctionnelles théoriques. Il n'y a pas de processus qui se distingue des autres par des fonctionnalités 20 particulières (super-pouvoir). En d'autre terme, si un processus possède une fonctionnalité, alors tous les autres la possède aussi. Un système totalement distribué n'a pas d'administrateur. Le concept du totalement distribué est l'absence d'entité centrale. 25 Une chaine est une suite finie d'octets. Il existe d'autres dénominations selon le contexte : donnée informatique, suite ou chaîne de caractère, etc. Un message est une chaîne envoyée par une entité émettrice vers une entité réceptrice. 30 Une donnée informatique est dite atomique si on considère qu'elle n'est pas découpable en plusieurs segments. Une donnée informatique est atomique dans un contexte bien précis. 35 Un environnement est dit hostile si sa sécurité n'est pas garantie par un tiers de confiance. Un logiciel tournant sur un environnement hostile peut voir son utilisation détournée des objectifs initiaux. Par exemple, son comportement peut être modifié par un logiciel malveillant. Un environnement non hostile doit être administré par un entité de confiance.
Un logiciel possède une architecture en composant si il est programmé par composant. Un composant est un objet avec les caractéristiques suivantes : - il implémente un ensemble d'interfaces préalablement définies - il a un attribut parent qui est aussi un composant. 10 - il dispose d'un container à composants. - il dispose d'une liste de propriétés : il est configurable. Deux composants sont dit équivalents si ils implémentent les mêmes interfaces. 15 Les intérêts d'un composant sont : - Tout composant peut être interchangé par un autre composant équivalent avec peu de changement dans le logiciel. - Chaque fonctionnalité peut être isolée ce qui facilite les tests 20 unitaires. Un composant sans parent est un composant racine (ou top container). Certains composants n'ont du sens que si d'autres sont utilisés : il y a 25 une relation de dépendance entre composants. Un objet est sérialisable si cela présente du sens de le représenter sous la forme d'une suite d'octets. La désérialisation consiste à ré- instancier l'objet depuis sa représentation en suite d'octets. Pour être 30 transféré sur un réseau via un câble ou équivalent, un objet doit être sérialisable. Pour être stocké sur un support mémoire, un objet doit être aussi sérialisable. Remarque : On verra que dans le protocole DSP, un composant n'est pas 35 sérialisable puisque il contient des informations ou des liens qui concernent spécifiquement le noeud sur lequel il est rattaché. L'esprit du protocole DSP est d'avoir des composants qui manipulent des objets _ 6 _ sérialisables. En conséquence les objets sérialisables sont quasiment dépourvu de méthodes complexes qui sont localisées dans les composants. On appelle fonction de génération aléatoire une fonction capable de générer une suite d'octets aléatoire. Plus généralement les fonctions qui permettent de générer de façon aléatoire toute sorte de nombre, d'objets, de chaîne de caractères, etc. 10 On appelle fonction de hachage (3) de taille N une fonction qui, à un bloc de données de longueur quelconque associe une chaine de caractère de longueur N raisonnablement courte appelé résultat de hachage. Une fonction de hachage doit tendre vers les propriétés suivantes : 15 - être quasiment non inversible : il doit être difficile de retrouver à partir du résultat de hachage le bloc de données. - être quasiment injective : il doit être difficile de trouver deux blocs de données différents qui ont le même résultat de hachage. - Être homogène : deux blocs de données presque identiques donnent 20 des résultats de hachage complètement différents. Un code correcteur (9) est un ensemble de deux algorithmes : le codeur et le décodeur. Le codeur transforme un message initial en un autre message, le message encodé. Le décodeur, à l'inverse à partir du message 25 encodé retourne le message initial. La propriété d'un code correcteur est : - la tolérance à la dégradation du message encodé. Même si le décodeur reçoit une approximation du message encodé, il devra dans une certaine limite de dégradation retrouver le message initial. 30 Le chiffrement est un service consistant à communiquer de façon confidentielle, c'est à dire pouvoir envoyer et recevoir des messages sans que d'autre entité ai pu capter et comprendre le message. Ce service est réalisé par deux étapes : le chiffrement et le 35 déchiffrement. Le chiffrement est un algorithme prenant en entrée un message compréhensible, appelé le message clair, et renvoyant en sortie un message non compréhensible, appelé le message crypté. Le - 7 - déchiffrement est un algorithme permettant de retrouver le message clair à partir du message crypté. On présente ici deux types de chiffrement : 5 Chiffrement symétrique Ce type de chiffrement nécessite une clé secrète, c'est à dire une clé connue uniquement de l'entité qui chiffre et de l'entité qui déchiffre. A ne pas confondre avec une clé privée (qui est dans le contexte du 10 chiffrement asymétrique) L'algorithme de chiffrement prend en entrée la clé secrète et le message clair et produit en sortie un message crypté. 15 L'algorithme de déchiffrement prend en entrée la clé secrète et le message crypté et produit en sortie le message clair. Pour une clé secrète donnée, il s'agit ici d'une bijection de l'ensemble des messages clairs dans les messages cryptés. 20 Ce type de chiffrement nécessite l'usage de deux clés : une clé privée et une clé publique. La clé privée est connue uniquement d'une entité. La clé publique est connue par n'importe quelle entité. 25 Les deux clés sont générées simultanément par un algorithme spécifique de génération de clés. Cet algorithme prend généralement une chaîne de caractère privée et génère en sortie une paire de clés privée-publique. 30 Cet algorithme est exécuté par le futur détenteur de la clé privée. La clé privé doit rester connu uniquement de son détenteur. La clé publique peut être communiquée à tous. Un message clair, chiffré avec la clé publique peut être déchiffré avec 35 la clé privée. Ce cas de figure est utilisé par quiconque veut envoyer un message au détenteur de la clé privée. Le message ne pourra être lu que par ce dernier.
Un message clair, chiffré avec la clé privée peut être déchiffré avec la clé publique. Ce cas de figure (appelé non répudiation) permet au détenteur de la clé privée d'envoyer un message à tous en certifiant 5 qu'il en est bien l'auteur. Ces deux assertions sont vraies que si on est sûr que la clé publique que l'on utilise est bien celle du détenteur de la clé privée. Pour accroître cette sûreté, et dans le cas ou le détenteur de la clé privée 10 n'est pas anonyme, on utilise un tiers de confiance. Lorsqu'une entité publie un message en clair, elle peut ajouter à ce message une signature. Une signature est une chaîne de caractère raisonnablement courte assurant que le message a bien été signé 15 volontairement par une entité pour indiquer qu'elle en certifie l'authenticité. Une signature peut par exemple être tout simplement le résultat de hachage du message, le tout crypté avec une clé privée asymétrique. 20 signature = asym(cle_privee, hash(message)) Ainsi, pour vérifier la signature, il suffit de constater l'égalité suivante : asym(cle publique, signature) = hash(message). 25 Un captcha est un mécanisme permettant de prouver que l'entité qui fourni en entrée des informations n'est pas une machine informatique mais bien un être humain. En général, un captcha donne un challenge à réaliser par l'entité afin qu'elle prouve qu'elle n'est pas un robot 30 mais bien un être humain. Ce challenge fait appel à des sens humains difficilement implémentables dans l'état actuel des techniques par un robot : challenge visuel (reconnaissance et interprétation d'un contenu d'image), challenge sonore, etc. Si un système de stockage est muni d'une fonction de gestion 35 d'utilisateur comprenant entre autre la création d'utilisateur, alors le formulaire de création d'utilisateur devrait comprendre un captcha. C'est le cas dans le protocole DSP pour empêcher la création illimités - 9 - d'objets dans le système. On ne peut créer d'objet que si on est identifié en tant que utilisateur et la création d'un nouvel utilisateur se fait par validation d'un captcha.
En général, la communication réseau est filtrée par des pare-feux ou autres ce qui empêche dans bien des cas une communication client serveur traditionnelle. La plupart des pare-feux interdisent à une application d'être serveur acceptant des requêtes depuis l'Internet. En revanche, les applications clientes sont autorisées. Pour simuler un serveur, il est possible d'utiliser un tiers sur Internet qui agit comme un serveur TOP. Ainsi deux clients qui s'y connectent peuvent communiquer entre eux et s'envoyer des requêtes/réponses.
Lorsque un client A désire envoyer une requête à un client B et obtenir une réponse du client B, voici le scénario : t Le client A se connecte au serveur qui accepte sa connexion et laisse la socket ouverte. 2. Le client B se connecte au serveur qui accepte sa connexion et laisse la socket ouverte. 3. Le client A écrit la requête sur la socket. 4. Le serveur lit la requête du client A et la transmet sur la socket TOP du client B. 5. Le client B lit le message du serveur et écrit un message réponse. 6. Le serveur lit le message du client B et le transmet au client A. Le protocole le plus connu utilisant cette technique est IRC.
DSP utilise cette technique pour permettre à un client derrière un pare-feu de pouvoir tout de même agir en serveur d'un point de vue logique. Le serveur proxy est instancié par un noeud du système accessible depuis Internet.35 -10- Un système informatique de stockage est un système reposant sur une ou plusieurs machines informatiques dont le service rendu est de stocker des données pour ses utilisateurs consommateurs.
Le système informatique de stockage utilise des ressources informatiques de stockage fournies par ses utilisateurs fournisseurs. Les besoins consommateur fondamentaux sont - entreposer une donnée informatique dans le système - récupérer une donnée informatique au préalable entreposée dans le système. - enlever une donnée informatique au préalable entreposée dans le système. Les autres besoins consommateur sont - modification d'une donnée informatique dans le système (raccourci d'un effacement puis d'un ajout) - recherche de données à partir de critères variés - appartenance des données à des utilisateurs 20 - confidentialité des données - sécurité des données - confort d'accès (rapidité et ergonomie de l'interface) - modèle d'organisation des données compréhensif - contrôle des coûts du service 25 Les besoins fournisseur sont - ajout et retrait des ressources informatiques de stockage (unités mémoire) - contrôle de la rémunération du service. 30 Dans un système distribué, on appelle noeud (4) tout processus indépendant qui participe à l'activité du système. On peut avoir un ou plusieurs noeuds sur une même machine informatique. D'un point de vue matériel, un système distribué repose sur un ensemble 35 de machines informatiques. D'un point de vue logiciel, un système distribué repose sur un ensemble de noeuds. -11- Lorsque on stocke des paquets dans un entrepôts de logistique, il est préférable de repartir avec en mémoire l'endroit exact ou le paquet a été stocké et sous réserve que personne ne prenne l'initiative de le déplacer. Ce principe est applicable pour tout système informatique de stockage. Le besoin de stocker une donnée implique donc la notion de localisation de sauvegarde de la donnée. On appelle adresse l'endroit informatique de 10 stockage d'une donnée atomique. On appelle univers des adresses et parfois univers (tout court) l'ensemble des adresses. 15 On appelle système d'adressage (1) l'ensemble des règles qui concernent les adresses dans un système. Une adresse peut être constitué de plusieurs champs (rue, ville, etc.). Chaque champ d'une adresse est parfois appelé une dimension (2). 20 Dans le protocole DSP, on définit l'univers comme l'ensemble des résultats de hachage d'une fonction de hachage configurée (ex: SHA-1). En conséquence, le système d'adressage est à une dimension, résultat d'une fonction de hachage. 25 L'étude de la forme de cet univers s'appelle la topologie du système de stockage. Si par exemple l'univers des adresses est constitué de localisation GPS, alors on pourra dire qu'il s'agit d'un univers à topologie sphérique. Si il est donné par un système de coordonnées 30 cartésiennes à 2 dimensions, alors on parlera d'une topologie plane. Si l'univers des adresses est un ensemble {C), 1, ... 2^N-1}, alors on peut parler de topologie en segment ou encore topologie en anneau. 35 Exemple : Le système CHORD est un système de stockage distribué à topologie en anneau. - 12 - Le système CAN est un système de stockage distribué à topologie multidimensionnelle. Le stockage des données sur l'ensemble des machines informatiques peut être fait selon plusieurs stratégies.
Exemple : stratégie du "tout le monde stocke tout" : chaque machine informatique stocke une copie de toute les données stockées par le système. L'avantage est qu'il est facile de retrouver la donnée et qu'il est possible d'optimiser son téléchargement. L'inconvénient est que la taille logique du système de stockage est le minimum de stockage par machine. Chaque système de stockage utilise ses propres stratégies de stockage. Mais dans la plupart des cas, les données stockées vont être réparties entre les machines en fonction de certaines règles.
Attention : dans les systèmes distribués, on parle parfois de topologie de connexion entre les noeuds, on l'appellera dans ce document topologie réseau. Ici, on parle de topologie de l'univers des adresses, ou pour faire plus court topologie adresse.
Une donnée est mutable (10) si son contenu peut évoluer bien que la donnée reste à la même adresse. Inversement, une donnée est non mutable si son contenu reste identique. Il est très utile de corréler le contenu d'un adresse de donnée non mutable avec l'adresse elle même avec une formule telle que adresse - hash(contenu). L'intérêt de distinguer les données mutables et non mutables est que les données non mutable peuvent être gardées en cache (12) et pas les autres.
Les données non mutables sont en général des données dont l'adresse a été déduite du contenu de la donnée. (Donc si la donnée change, l'adresse change aussi) Les données mutables sont en général des données à adresse fixes et imposées par une contrainte. Par exemple, dans l'architecture DSP, les objets utilisateurs se retrouvent en fonction d'une adresse basée sur le -13- login et le mot de passe et non pas sur l'objet utilisateur qui est en fait un ensemble de pointeurs sur des objets non mutables. Une donnée non mutable est dite périmée si son propriétaire a désiré 5 l'effacer. Un Agent DSP se doit aussi d'effacer toute donnée mutable périmée. Dans le protocole DSP, un agent voyant transiter une donnée périmée doit lever une alerte d'intrusion pour des raisons de sécurité. Une donnée mutable (17) dans DSP est toujours utilisée le moins 10 possible, la situation étant l'utilisation d'un ensemble de pointeurs. Un pointeur (18) est une donnée stockant un ensemble d'adresses. En général, la répartition des données se fait en établissant des aires de responsabilités (5) par noeud. Chaque noeud se voit confier la 15 responsabilité des données de zone d'adresse spécifique. On appelle zone ou aire de responsabilité un ensemble d'adresses dont la responsabilité de stockage est assignée à un noeud donné. Par exemple, la figure 2 représente un univers d'adresse en topologie 20 "anneau" d'un système distribué comprenant 3 noeuds (ni, n2, n3) et N adresses. Les zones d'adresses sont découpées arbitrairement de la façon suivante : n1 est responsable des adresses de A à B, n2 est responsable des adresses de B à C, et enfin n3 est responsable des adresses de C à A (en passant par N-1 et 0). 25 Du coup, lorsque l'utilisateur veut retrouver une donnée stockée à une adresse précise, il peut d'abord identifier quel est le noeud responsable (13) de l'adresse et ensuite envoyer une requête au noeud responsable pour récupérer le contenu de la donnée. 30 La spécification d'un système de stockage distribué implique la définition des zones de responsabilité. Dans un système de stockage totalement distribué, chaque noeud est un 35 processus permanent car il est avant tout serveur. Il est démarrable et stoppable. Les données qui y sont stockées ont plutôt intérêt à être persistantes, c'est à dire continuer à être stockées sur la machine - 14 - informatique entre un arrêt et un redémarrage du noeud. Si c'est le cas, on dit que le noeud a un stockage persistent. Dans ce cas, le système a intérêt à réattribuer une zone de responsabilité identique ou la plus proche de celle d'avant l'interruption du noeud.
Lorsqu'une donnée est présentée à un noeud, il peut choisir de la conserver si sa capacité de stockage le permet. De cette façon, s'il devient responsable ultérieurement de la donnée, il n'aura pas à la demander au reste du système. Autre avantage, lorsque le système recherche une adresse, si ce noeud est sollicité alors il n'aura pas à transférer la requête à un autre noeud pour renvoyer la donnée si la donnée n'est pas mutable. On appelle le cache d'un noeud l'ensemble des données qu'il stocke mais dont il n'est pas responsable. La partie stockage du noeud est donc composée des données de la zone de responsabilité et celles du cache. Chaque noeud, pour pouvoir communiquer avec les autres noeuds doit connaître le mode de communication qu'il peut utiliser ainsi que les coordonnées des autres noeuds. Si le système contient vraiment beaucoup de noeuds que maintenir un carnet exhaustif de tous les noeuds du réseau devient une activité trop complexe ou coûteuse, alors le carnet de contact va contenir seulement certains noeuds. On appelle donc carnet de contact la liste des autres noeuds avec leurs informations pertinentes (adresse IP, zone de responsabilité, protocole de communication, etc.) On appelle contact la représentation sérialisable des informations publiques d'un noeud. Les informations de contact sont publiés par un noeud lorsque celui-ci veut décliner son identité et autre information sur lui aux autres noeuds du système distribué. Par analogie, un carnet de contacts ressemble à une liste de contacts telle que sur les sites de réseaux sociaux, à la différence que les contacts ne sont pas des personnes ou des entreprises mais des noeuds du système distribué. 35 -15- Pour éviter la perte de données (lorsqu'un noeud disparaît par exemple), les données sont dupliquées. La duplication peut être faite par différents moyens.
La topologie en multi-anneaux (6) consiste à disposer d'un univers d'adresses en anneau, dupliqués plusieurs fois. Chaque noeud du système distribué a la responsabilité d'une partie d'un des anneaux. Par exemple, sur la figure 3, on représente schématiquement un univers 10 d'adresses dupliqué sur 3 anneaux avec 8 noeuds. Chaque noeud est associé à un anneau. Par convention, chaque noeud a la responsabilité d'une tranche d'adresses située sur son anneau partant de l'adresse où est représenté le noeud jusqu'au noeud suivant dans le sens direct. Sur la figure on a représenté par un arc de cercle noir épais la tranche 15 d'adresses du noeud 5. Une donnée stockée à l'adresse correspondante au carré noir sur la figure est donc sous la responsabilité des noeuds 1, 5 et 6. Pour la même donnée, on peut lui assigner plusieurs adresses éloignées 20 de façon à être stockées sur plusieurs noeuds. Pour optimiser la redondance et économiser de la bande passante, il est possible de faire appel à des algorithmes code correcteurs. Ainsi sur un anneau donné, pour une adresse donnée on stocke juste un fragment de la 25 donnée. Pour une même adresse, l'ensemble des fragments est suffisant pour retrouver la donnée, avec en plus une certaine dose de redondance. Pour des raisons de sécurité et de confidentialité, DSP est équipé de deux mécanismes de redondance. Un mécanisme technique qui ne se 30 préoccupe pas de sécurité de malveillance et un autre mécanisme de redondance appelé redondance utilisateur (8) dont l'objectif est de parer le système contre des attaques malveillantes. Le principe utilisé est de faire une redondance dont seul l'utilisateur connaît les mécanismes. Ainsi un objet pourra être stocké à plusieurs adresses sur 35 l'anneau et seul l'utilisateur pourra connaître les adresses. De cette façon, si un acteur malveillant parvient à éteindre une même partie d'un -16- segment d'anneau, la redondance utilisateur (8) va éviter la perte des données situées sur cette partie de l'anneau. Les évènements de base associés à un noeud sont détaillés ci-dessous.
On fait une approche conservative : on considère comme système le noeud et étudions les entrées sorties du noeud et plus particulièrement les initiatives extérieures qui impactent le noeud. Les évènements intrinsèques à un système distribué sont : - Démarrage du premier noeud du système distribué : lorsque le noeud démarre, son fichier de configuration lui indique si il est le premier noeud à se connecter au système distribué. Il démarre son serveur et se met à l'écoute d'un second noeud qui rejoindra ultérieurement le système fraîchement créé ou de requêtes clientes. - Arrivée d'un nouveau noeud sur le système distribué : lorsque le noeud démarre, son fichier de configuration lui indique un moyen de trouver des noeuds existants sur le système distribué, qui ont le rôle de sponsor par rapport à ce noeud. Le noeud se connecte à un sponsor, lui montre si nécessaire ses droits d'entrée sur le réseau en tant que noeud. Le noeud se déclare sous forme de contact et demande au sponsor de lui communiquer les propriétés du système distribué, une zone de responsabilité, une liste de contacts et d'autres informations selon les propriétés du système distribué. - Départ d'un noeud existant sur le système distribué : Lorsqu'un noeud souhaite partir mais qu'il a le loisir de déclarer au système distribué son intention, il s'agit d'un détachement souple. Le noeud déclare à ses contacts qu'il va disparaître et le système distribué (via plusieurs de ses contacts) va réaffecter la zone de responsabilité à un ou plusieurs autres noeuds du système. - Disparition soudaine d'un noeud sur le système distribué : Lorsqu'un noeud est soudainement arrêté (par exemple la machine informatique sur lequel il tourne s'arrête) ou devient invisible sur le réseau, on dit qu'il s'agit alors d'un détachement brusque ou d'une disparition de noeud. Il diffère du détachement souple par le fait que le noeud n'a pas la possibilité d'avertir les autres noeuds qu'il quitte le système distribué. -17- Les évènements extrinsèques à un système distribué sont des évènements générés par une application qui utilise le système de stockage distribué. Ces évènements sont en fait des fonctions du système qui sont exposées à 5 toute application utilisatrice du système. Un client applicatif envoie une requête à un noeud du système, le noeud va reléguer la requête à un ou plusieurs autres noeuds jusqu'à ce que la requête soit traitée par le ou les noeuds responsables de l'adresse. 10 Les différents types d'évènements extrinsèques sont : - Création d'une donnée à une adresse donnée - Récupération d'une donnée à une adresse donnée - Effacement d'une donnée à une adresse donnée 15 Pour une donnée mutable on ajoute aussi l'évènement de modification de la donnée. Du point de vue utilisateur, la sauvegarde et la récupération des données doivent être ou paraître les plus rapides possible. Par exemple, 20 lors de la sauvegarde sur le réseau, l'utilisateur doit avoir la sensation que la sauvegarde se fait instantanément même si ce n'est pas le cas du fait de la lenteur de la diffusion des blocs de données sur de multiples adresses et sur plusieurs anneaux. Pour affirmer qu'une donnée est bien stockée sur le réseau, il suffit qu'elle y soit au moins en un 25 exemplaire. A charge pour le système distribué de redupliquer les données si nécessaire, d'identifier le ou les noeuds responsables et d'acheminer les données sur ces derniers. Pour des raisons de performance, il est utile d'avoir des noeuds qui puissent absorber rapidement un gros paquet d'information et ensuite de les répartir avec 30 soin sur le reste du système distribué, ces noeuds jouent un rôle de diffuseur. Réciproquement, lorsque des données sont demandées par le client, elles sont rapatriées de noeud en noeud. Il est alors utile de les stocker en cache sur les noeuds rencontrées sur leur route entre leur noeud de stockage originel et le client. Ceci est valable 35 uniquement pour les données cacheables, c'est à dire les données non mutables. Les noeuds intermédiaires peuvent alors pour améliorer la performance jouer le rôle de cache. -18- Un modèle de données (14) est une représentation des données que l'on veut stocker. Le plus utilisé est le système de fichier. Mais il en existe d'autres : système de fichiers versionnés (16), SGBD, etc.
Un modèle de donnée sur DSP se doit d'être à graphe orienté acyclique (15) c'est à dire d'être constitué d'au moins une racine et de ne pas présenter de récursion. L'avantage est de le stocker sous forme exclusive d'objets non mutables et donc cacheables.
Le protocole DSP gère l'envoi de messages entre utilisateurs par création d'objets sur sa topologie multi-anneaux. (21) Lorsqu'un utilisateur A envoie un message à l'utilisateur B, il crée un objet de type message sur le système distribué. L'objet de type message 15 contient les attributs suivants : - contenu du message crypté avec la clé publique de B. - date de création - signature de l'utilisateur A - login de A 20 Le tout crypté avec la clé privé de A. L'objet est non mutable. Ensuite l'utilisateur A signale à l'utilisateur B qu'il a un message en ajoutant dans l'objet M 'message envoyé de A vers B' un pointeur sur le message. Ce dernier objet est mutable et il 25 est la propriété de A. Mais il est lisible et décryptable par B. L'utilisateur B possède un objet N 'messages reçus de A' qui peut se synchroniser sur l'objet M pour y lire les nouveaux messages. Il duplique alors l'objet message pour en avoir une copie lui appartenant. 30 L'architecture DSP inclue un composant de facturation. Il est décrit comme suit. A l'état initial, le système distribué est composé d'un seul utilisateur avec un profile d'intermédiaire commercial appelé le trader. 35 Pour avoir de la mémoire à revendre, le trader commence d'abord par attirer des fournisseurs qui vont proposer de la mémoire en invitant les -19- fournisseurs à installer des agents DSP sur leur matériel informatique et ainsi constituer un premier système distribué multi-anneaux avec une capacité de stockage suffisant pour accueillir les premier utilisateurs consommateurs. Les agents DSP font savoir au trader l'espace disponible du matériel informatique sur lesquels ils opèrent en créant des objets signés publics. Ensuite le trader attire les consommateurs de mémoire avec des plans tarifaires qu'il conçoit. Une fois un utilisateur créé, l'utilisateur 10 souscrit à un contrat auprès d'un trader et le trader autorise l'utilisateur à stocker des données dans une certaine limite de capacité et de durée selon l'offre. Les fournisseurs envoient en temps réel ou par paquets agrégés les quantités de leur mémoire utilisée par les consommateurs puis le trader 15 agrège ces informations et envoient des factures aux consommateurs. Les consommateurs peuvent ensuite procéder à une vérification de leur facture par consultation de l'historique de leur activité au sein du système distribué. 20 Description des caractéristiques techniques d'un captcha totalement distribué (7) : Dans un contexte client-serveur, le captcha est généré par le serveur et 25 envoyé au client en même temps que le formulaire à remplir par un être humain. Dans un contexte totalement distribué (donc sans administration centrale), un noeud va être désigné pour générer le captcha et vérifier 30 que la réponse fournie par le client au captcha est correcte. Ce noeud peut être désigné par calcul d'un hash sur les données auxquelles le captcha s'applique. Le noeud responsable du captcha représente le système distribué auprès du client. Autrement dit, le système distribué donne à un noeud particulier choisi au hasard un mandat pour effectuer 35 certaines opérations. L'implémentation est la suivante : -20- Tout d'abord chaque noeud du système doit être équipé d'une fonctionnalité de chiffrement asymétrique et avoir sa paire de clé publique/privée.
L'objet captcha distribué est donc généré par un noeud, appelé le noeud responsable du captcha, choisi selon une certaine stratégie définie par le protocole du système de stockage distribué. L'objet captcha comporte les attributs suivants : - un objet challenge (une image, un son, ou autre... ) - la réponse encryptée asymétriquement avec la clé publique du noeud responsable. - l'identifiant du noeud responsable du captcha. - la réponse proposée par l'entité challengée (le supposé être humain). Ce champ est vide lors de la création par le noeud responsable. Il est 15 destiné à être complété par l'entité challengée. - une signature par le noeud responsable sur l'ensemble { objet challenge, réponse encrypté, identifiant du noeud responsable } pour bien prouver que le noeud responsable est bien à l'origine de la création de l'objet captcha. 20 L'objet est envoyé au client challengé. Celui ci répond au challenge en remplissant le champ réponse de l'objet. Il est ensuite renvoyé au noeud responsable du captcha qui lui seul a les moyens de vérifier la réponse. 25 L'avantage est que cet objet captcha distribué n'a pas besoin d'être conservé par le noeud responsable du captcha entre son envoi et la réponse du client. Le protocole DSP implémente des mécanismes de détection et de sanction 30 des noeuds malveillants. On appelle un noeud malveillant un noeud du système distribué qui ne respecte pas le protocole. Pour détecter un noeud malveillant, plusieurs méthodes sont utilisées 35 par DSP : - un noeud déclare qu'un autre noeud est malveillant et communique les motifs qui l'ont conduit à faire son diagnostic. Sa plainte est - 21 - enregistrée sur le système distribué par création sur les anneaux d'un objet dédié. - lorsque un nombre d'indices suffisant est réuni, une requête d'exclusion temporaire ou définitive du système est émise, elle est 5 transmise à l'ensemble du réseau par création d'objet dédié. - les propriétaires des noeuds malveillants peuvent être informés ainsi que son FAT. DSP est un protocole pour système informatique de stockage totalement 10 distribué avec les caractéristiques techniques suivantes : Le protocole DSP est un ensemble de règles énoncées ci-dessous : t Le protocole DSP s'applique sur un système informatique totalement distribué de stockage. Chaque noeud du système distribué s'appelle un noeud (ou un agent) DSP. 15 2. Le protocole DSP s'appuie sur une topologie d'adresse de stockage en multi-anneaux. 3. Le protocole DSP est multi-utilisateurs. Les utilisateurs ont des profiles (consommateurs de mémoire, fournisseurs de mémoire, trader de mémoire). 20 4. Un utilisateur DSP dispose des fonctions de chiffrement symétrique, asymétrique, de signature, il a des informations publiques (ex: son identifiant, sa clé publique, ses algorithmes de chiffrement et de signature). 5. Un utilisateur DSP dispose d'un espace mémoire satisfaisant un 25 modèle de données (système de fichier, système de fichier versionné, SGBD, hashtable) 6. L'objet utilisateur est crypté à l'aide du mot de passe utilisateur et son adresse est calculée en fonction du mot de passe utilisateur. 30 7. Un noeud DSP est un logiciel organisé selon une architecture en composants. 8. Un noeud DSP est un composant racine, document, connectable. 9. Les composants d'un noeud DSP tirent leur configuration depuis le composant racine. 35 10.un agent DSP ne peut avoir une activité de cache et de stockage que s'il est serveur et visible depuis l'internet. -22- 11.Un noeud DSP est programmé avec une architecture en composant et dispose de plusieurs composants dont les suivants : t Sécurité t hachage 2. signature 3. chiffrement symétrique 4. chiffrement asymétrique 5. génération d'objet aléatoire 6. extraction d'info publique utilisateur 7. captcha (distribué) 2. Réseau t Serveur 2. Client 3. NAT (uPnP, etc.) 4. Sérialisation 5. Agent 6. Proxy pour communication client-client. 3. Contact t Carnet de contact 4. Topologie t Multi-Anneaux (redondance technique) 2. Cartographie des contacts avec zone de responsabilité 3. Code correcteur 5. Protocole t Module avec ensemble de transactions et flux. 6. Représentation des données utilisateurs t Système de fichier 2. Système de fichier versionnés 3. Base de données relationnelles 7. Aire de stockage t Persistant 2. Cache 8. Utilisateurs t Profile 2. Rôle 3. Redondance utilisateur 9. Frontal -23- t cache utilisateur 2. diffuseur asynchrone 10. Gestionnaire de tâches 1. Tâches de fond priorisées 11. Facturation t Evènement facturable 2. Facture 3. Recouvrement 12.Les objets stockés sont des objets sérialisables. Ils incluent : 1. objet utilisateur public 2. objet utilisateur privé 3. objet non mutable utilisateur 4. objet boite message La description des objets sérialisables DSP suit : Un objet est dit sérialisable si son contenu peut être stocké sur un support linéaire (ex: une bande de mémoire).
Sauf si indiqué, l'objet est non mutable et son contenu est crypté. - utilisateur public (11) O objet non mutable non crypté. O clé : hash(contenu) 0 attributs : a clé publique a nom de l'algo de cryptage asymétrique imi login m signature m date de dernière modification - utilisateur privé (11) O objet mutable crypté avec password. O clé : hash(login, password) 0 attributs : ill clé privée (cryptage asymétrique) m clé publique (cryptage asymétrique) -24- mi pointeur sur la racine du modèle de données - clé secrète (cryptage symétrique) m nom de l'algo de cryptage symétrique m signature - date de dernière modification - objet général de stockage O objet non mutable crypté avec clé secrète. o clé - hash(contenu) o attributs : m propriétaire (utilisateur) : clé de l'objet utilisateur public. - Signature - contenu crypté 15 Implémentation des évènements DSP est définie ci-dessous : Démarrage d'un agent 20 t Lecture des propriétés du composant agent. 2. Démarrage de la partie serveur selon les propriétés. 3. Si l'agent est le premier à constituer le réseau distribué alors a. lecture des propriétés du réseau distribué b. vérification que l'agent est bien serveur 25 4. Sinon a. recensement des sponsors b. connexion à un sponsor C. déclaration au sponsor des propriétés agent d. lecture des propriétés réseau du sponsor 30 e. demande au sponsor d'envoyer des contacts et d'attribuer une aire de responsabilité de stockage Création d'un utilisateur t passage d'une épreuve de captcha distribué sur login/password. 2. création de l'utilisateur : 35 a. création de l'objet utilisateur privé. b. création de l'objet utilisateur public. C. création de l'espace mémoire initial. - 25 - Connection d'un utilisateur t Identification et authentification par login/mot de passe. 2. Récupération de l'objet utilisateur privé et public. 3. Accès au modèle de données via son pointeur initial.
Effacement d'un utilisateur Déclaration de l'effacement dans l'objet utilisateur public de l'utilisateur concerné. Arrêt d'un agent t Déclaration au réseau de détachement souple. 2. Arrêt de tous les composants ayant des fils d'exécution. 3. Arrêt du processus. Stockage d'un objet non mutable Dans certaines situations, un accord est demandé au trader. t Calculer l'adresse de l'objet : adresse - hash(contenu). 2. L'envoyer aux noeuds responsables de l'adresse qui vont stocker l'objet. Tous les noeuds se situant sur la route entre le client et le noeud de 20 stockage vont garder une copie de l'objet dans leur cache selon leur règle de stockage de cache. Récupération d'un objet non mutable Pour récupérer un objet, il faut connaître son adresse et une fois récupérer il faut savoir le décrypter.
25 Pour le décrypter il faut avoir accès aux données utilisateurs propriétaire de l'objet, donc passer le challenge d'authentification de l'utilisateur ou réussir à "casser" le cryptage de l'objet. t Vérifier s'il n'est pas dans le cache local. 30 2. Le récupérer sur l'anneau ou sur un cache du système distribué grâce à un algorithme de routage (DSP utilise les algorithmes du protocole DHT CHORD) Stockage d'un objet mutable 35 Seul les objets utilisateur public et privé sont mutables. En production ils représentent moins de 1% des objets et consomment très peu de mémoire. Ils font office de clé d'accès. -26- Lors d'une création d'objet mutable, l'algorithme est identique à celui du stockage d'un objet non mutable. Lors de la mise à jour, l'algorithme est le suivant : t Confirmation de l'authenticité de la demande par challenge et captcha distribué. 2. Mise à jour sur tous les anneaux. La récupération d'un objet mutable est identique à la récupération d'un 10 objet non mutable excepté que on ne peut utiliser un cache. L'architecture DSP est une architecture applicative, c'est à dire qu'elle s'appuie sur un réseau existant et ne prends pas en compte des problématiques de routage au sens réseau.
15 En revanche, l'architecture DSP prend en considération le contenu des carnets d'adresse de façon à diminuer la distance sociale entre les noeuds.
20 Pour garantir une distribution la plus uniforme possible des données sur l'ensemble des noeuds et d'un point de vue géographique et ainsi rendre le système plus résilient face à un écroulement semi-local des noeuds, il n'est pas utilisé de mécanisme comme les T-DHT (topology-based distributed hash table) qui consiste à essayer de stocker les données en 25 tenant compte de la topologie du réseau sur lesquels les noeuds opèrent. En revanche, les données peuvent être dupliquées dans des caches qui eux tiennent compte de cette topologie réseau. On appelle distance sociale le nombre minimum de contact intermédiaires 30 entre deux noeuds donnés. Chaque noeud appartenant au réseau constituant le système distribué utilise un algorithme de gestion de contact au sein de chaque noeud qui essaie de minimiser la distance sociale tout en gérant le moins possible 35 de contact et en minimisant l'utilisation de bande passante. On appelle un tel algorithme de gestion de contact distribué. L'algorithme de base -27- de gestion de contact est l'algorithme qui applique la stratégie de "chacun connaît tout le monde". Les algorithmes de gestion de contact permettent l'élaboration d'algorithmes de routage, c'est à dire les algorithme dont l'objectif est d'identifier à partir d'une adresse donnée le noeud ou les noeuds responsables de cette adresse. On appelle itinéraire l'ensemble des noeuds contactés par l'algorithme 10 de routage pour trouver le noeud responsable d'une adresse donnée à partir d'un noeud d'entrée. Un système distribué de stockage peut comporter des activités dont les effets sont visibles pour l'utilisateur et d'autre moins, bien que tout 15 aussi indispensables. Par exemple, lorsqu'une donnée est stockée, il n'est pas nécessaire qu'elle soit dupliquée sur tous les anneaux immédiatement avant que l'interface utilisateur confirme la complétion de l'opération. Lorsque l'utilisateur sauve un fichier, il veut que l'opération soit immédiate même si elle ne l'est pas effectivement du 20 fait que le fichier est peut-être d'abord sauvé sur des supports intermédiaires avant d'être stocké sur des supports définitifs. On définit une tâche urgente comme étant une tâche dont la complétion est visible du point de vue utilisateur et importe à l'utilisateur. On définit par opposition une tâche de fond (19) comme étant une tâche qui 25 est peut-être indispensable mais qui peut être exécutée en des temps plus important et qui ne nécessite pas l'attente de l'utilisateur. Un gestionnaire de tâches gère un ensemble de travailleurs. Un travailleur est un fil d'exécution sur une machine informatique. Un 30 travailleur attend que le manager lui assigne une tâche, puis effectue la tâche, puis retourne en file d'attente avant de faire une tâche suivante. Certaines tâches sont plus urgentes que d'autres car des utilisateurs peuvent attendre qu'elles se terminent pour effectuer d'autres opérations par la suite. Par exemple, lorsqu'un fichier de 35 taille importante est sauvegardé, l'ordre est lancé mais rapidement mis en tâche de fond (ou asynchrone) afin que le client redonne la main à l'utilisateur. -28- Le protocole DSP inclut comme tâche urgente toute tâche de stockage sur disque local d'un agent DSP ou stockage sur un cache proche de l'agent DSP déclencheur de l'action. Le protocole DSP inclut comme tâche de fond toute tâche de stockage définitif (stockage dans une aire de responsabilité), ainsi que les tâches de remise en cohérence des données (détachement de noeud, attachement de noeud, etc.) On décrit un système distribués sur boîtiers de connexion internet (22). On constate aujourd'hui (en 2012) que de plus en plus de ménages et de PME (clients FAI) utilisent une connexion internet filaire et mobile, 15 en utilisant des boîtiers de connexion loués auprès de fournisseurs d'accès internet. - Ces boîtiers sont connectés en internet haut débit voire très haut débit. - Ces boîtiers sont alimentés en énergie 24h/24 au frais des clients 20 FAI sauf pour les temps de redémarrage et donc connectés à internet en quasi-permanence. - Ces boîtiers sont équipés de plus en plus avec des unités mémoires et CPU puissants, et dotés de logiciels offrant de plus en plus de services.
25 Il est donc possible de mettre sur ces boîtiers de connexion internet des noeuds DSP et ainsi de constituer un centre de données de très grande capacité et éclaté en millions de points géographiques sans faire consommer d'énergie au gestionnaire du centre de données et sans 30 nécessiter une infrastructure de centre de données (refroidissement, salle blanche, etc.) Lors du détachement d'un noeud un processus de maintien de la cohérence des données est déclenché. Ce processus peut parfaitement être fait en 35 tâche de fond avant que le noeud se détache (20). A chaque fois que le noeud stocke une information, cette information est aussi envoyée sur le 10 - 29 - ou les noeuds qui deviendraient responsables de l'information en cas de détachement. On appelle cette activité anticipation de détachement.

Claims (9)

  1. REVENDICATIONS1. t Dispositif informatique totalement distribué de stockage caractérisé en ce qu'il utilise un système d'adressage (1) des objets stockés à une dimension (2), résultat d'une fonction de hachage (3) dont les noeuds (4) se répartissent les aires de responsabilités (5) selon une topologie multi-anneaux (6).
  2. 2. Dispositif selon la revendication 1 avec notion d'utilisateur, caractérisé en ce que tout utilisateur est créé à l'aide d'un captcha totalement distribué (7) et que tout objet stocké appartient obligatoirement à un utilisateur.
  3. 3. Dispositif selon la revendication 2, caractérisé en ce que la redondance utilisateur (8) est munie d'un code correcteur (9).
  4. 4. Dispositif selon la revendication 3, caractérisé en ce que le dispositif stocke les objets de façon non mutable (10), les objets mutables correspondant aux objets utilisateurs public et privé (11).
  5. 5. Dispositif selon la revendication 4, caractérisé en ce que chacun des noeuds du dispositif stocke les objets non mutables qui transitent par lui dans son cache (12) s'il n'en est pas responsable (13).
  6. 6. Dispositif selon la revendication 5, caractérisé en ce que les modèles de données de stockage (14) sont des modèles à graphes acyclique orienté (15), notamment des systèmes de fichiers versionnés (16), les pointeurs (18) sur les racines du graphe étant des objets mutables (17) dont l'adresse est la fonction de hachage appliquée à l'identifiant et au challenge d'authentification de l'utilisateur.
  7. 7. Dispositif selon la revendication 6, caractérisé en ce que le dispositif est muni d'une tâche de fond (19) assurant l'anticipation de réplication (20).
  8. 8. Dispositif selon la revendication 7, caractérisé en ce que le dispositif utilise un procédé d'envoi de messages (21) entre utilisateurs totalement distribué par création d'objet stocké sur les anneaux.- 31 -
  9. 9. Dispositif selon la revendication 8, caractérisé en ce que il est installé sur du matériel informatique allumé en permanence et connecté en permanence à Internet (22). Fin du document
FR1202116A 2012-07-26 2012-07-26 Dispositif informatique de stockage de donnees privees totalement distribue en environnement hostile Withdrawn FR2994003A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1202116A FR2994003A1 (fr) 2012-07-26 2012-07-26 Dispositif informatique de stockage de donnees privees totalement distribue en environnement hostile
PCT/FR2013/000204 WO2014016478A1 (fr) 2012-07-26 2013-07-25 Dispositif informatique de stockage de données privées totalement distribué en environnement hostile

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1202116A FR2994003A1 (fr) 2012-07-26 2012-07-26 Dispositif informatique de stockage de donnees privees totalement distribue en environnement hostile

Publications (1)

Publication Number Publication Date
FR2994003A1 true FR2994003A1 (fr) 2014-01-31

Family

ID=47664321

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1202116A Withdrawn FR2994003A1 (fr) 2012-07-26 2012-07-26 Dispositif informatique de stockage de donnees privees totalement distribue en environnement hostile

Country Status (2)

Country Link
FR (1) FR2994003A1 (fr)
WO (1) WO2014016478A1 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114615266B (zh) * 2022-03-14 2024-03-29 高仲谦 一种基于信息系统集成的智能搜索系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050036482A1 (en) * 2003-08-15 2005-02-17 Dmitry Goroshevsky Serverless and switchless internet protocol telephony system and method
US20050223102A1 (en) * 2004-03-31 2005-10-06 Microsoft Corporation Routing in peer-to-peer networks
US20090290715A1 (en) * 2008-05-20 2009-11-26 Microsoft Corporation Security architecture for peer-to-peer storage system
US20110246433A1 (en) * 2010-03-31 2011-10-06 Xerox Corporation. Random number based data integrity verification method and system for distributed cloud storage

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050036482A1 (en) * 2003-08-15 2005-02-17 Dmitry Goroshevsky Serverless and switchless internet protocol telephony system and method
US20050223102A1 (en) * 2004-03-31 2005-10-06 Microsoft Corporation Routing in peer-to-peer networks
US20090290715A1 (en) * 2008-05-20 2009-11-26 Microsoft Corporation Security architecture for peer-to-peer storage system
US20110246433A1 (en) * 2010-03-31 2011-10-06 Xerox Corporation. Random number based data integrity verification method and system for distributed cloud storage

Also Published As

Publication number Publication date
WO2014016478A1 (fr) 2014-01-30

Similar Documents

Publication Publication Date Title
RU2531569C2 (ru) Защищенное и конфиденциальное хранение и обработка резервных копий для доверенных сервисов вычисления и данных
US20190036895A1 (en) Data distribution over nodal elements
Dingledine et al. The free haven project: Distributed anonymous storage service
EP3070630A2 (fr) Procédé et système de données
JP2022509105A (ja) ブロックチェーン上に格納されたデータへのアクセスを可能にするコンピュータにより実施されるシステム及び方法
US20120109830A1 (en) Apparatus, system and method for a decentralized social network system and decentralized payment network system
FR3072802A1 (fr) Verification d'identite preservant la confidentialite
US20130215126A1 (en) Managing Font Distribution
US10693839B2 (en) Digital media content distribution blocking
JP2012518330A (ja) 高信頼なクラウド・コンピューティングおよびクラウド・サービスのフレームワーク
Farina et al. Overview of the forensic investigation of cloud services
GB2444342A (en) A distributed system with anonymity and perpetual data
FR2902547A1 (fr) Gestion d'informations cryptographiques non tributaire d'un dispositif
Nazir et al. Cloud computing applications: a review
Nair et al. Blockchain‐Based Decentralized Cloud Solutions for Data Transfer
TW201947406A (zh) 資料交換群組系統及方法
Liu et al. The barriers to overthrowing internet feudalism
GB2446170A (en) Shared access to private files in a distributed network
Westerlund et al. Providing tamper-resistant audit trails with distributed ledger based solutions for forensics of iot systems using cloud resources
Nwebonyi et al. Reputation-based security system for edge computing
JP2016524732A (ja) ピアツーピアネットワークに関連するデータ資産を管理するためのシステムおよび方法
Song et al. How to decentralize the internet: A focus on data consolidation and user privacy
FR2994003A1 (fr) Dispositif informatique de stockage de donnees privees totalement distribue en environnement hostile
Kourtellis et al. Special issue on foundations of social computing: Enabling social applications via decentralized social data management
WO2020136126A1 (fr) Reseau de communication securisee et tracee

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 4

ST Notification of lapse

Effective date: 20170331