Marque de temps

Le marquage du temps tel que réalisé aujourd’hui ne me convient que moyennement. Ce marquage est fait pour chaque lien et permet de leur donner un sens temporel.

La marque de temps est basée sur une norme reconnue : ISO 8601:2004. Elle est forcément absolue. Éventuellement, ce peut être un simple compteur incrémental.
Mais cette norme est loin d’être universelle. Elle se base exclusivement sur un calendrier grégorien. Donc sa référence de temps est biblique, ce qui a une connotation religieuse pour un sujet technique. Passe encore. De par sa référence et sa gestion du temps le plus grand, l’ordre de grandeur du temps géré est de quelques milliers d’années. En gros, on peut indiquer une date entre -9999 et 9999 années.
Certes, cela laisse de la marge dans nos sociétés modernes où on se préoccupe plus de la nano-seconde que du siècle. Mais les Mayas avaient à leur époque, il y quelques temps déjà, un calendrier pour gérer le temps profond. Leur calendrier était à même de donner une date à la création de la terre (si cela a un sens), et sans référence religieuse. Ils ne pouvaient pas par contre gérer finement le temps à petite échelle, en dessous de la journée…

Lorsque l’on aborde le sujet de la gestion du temps avec de multiples références, il faut penser au moyens de synchronisation de ces horodatages. Il faudra pour ça réactiver l’entité kronos

Il n’y a pas 36 solutions pour améliorer le marquage du temps.
On peut ne plus reconnaître de format de temps standardisé… et tenter de déterminer par la forme de la marque de temps la date indiquée dans sa propre référence de temps. Ce travail, fastidieux, peut être facilité par un lien de définition de la marque de temps utilisée par une entité.
On peut reconnaître par défaut le format ISO 8601 et accepter d’autres formats sous la forme d’un compteur. Ce compteur, dans ce cas doit avoir une forme progressive dans le temps pour pouvoir être interprétée au moins comme compteur à défaut de pouvoir en extraire une date fiable.
On peut reconnaître par défaut le format ISO 8601, accepter le compteur et accepter un indice de formatage spécifique pour des marques de temps autres. Le compteur doit toujours être progressif.
Enfin, on peut ne reconnaître que le compteur et une marque de temps préfixée de sont type. Cette dernière solution intègre à peu près les marques de temps actuellement utilisées dans nebule au format ISO 8601 comme de simples compteurs.

Auto déploiement répliqué d’un code

La librairie nebule de référence en php gère maintenant les liens de mise à jour d’objets conformément à la méthode décrite dans l’article sur la Résolution d’un graphe de relations de mise à jour.

Cette fonctionnalité qui paraît au premier abord peu utile tous les jours est en fait primordiale pour diffuser de façon sécurisée les mises à jours de logiciels. Le premier programme à en bénéficier est sylabe. La diffusion du code sous forme d’objet a déjà commencé : Gestion des versions de sylabe – mise en ligne

Ainsi, le code de sylabe va pouvoir être très facilement tenu à jour avec la toute dernière version. Mais cela va aussi grandement simplifier l’installation puisque le code de bootstrap va être capable d’aller automatiquement récupérer immédiatement la dernière version de sylabe avant de permettre son utilisation.

Nous arrivons dans le projet nebule à un point de singularité. Alors que jusque là, les fichiers mais aussi les entités (les utilisateurs) avaient été intégrés à nebule sous forme d’objets, le code de nebule restait lui en dehors des objets. Maintenant, le code de gestion des liens et objets devient lui aussi un objet géré par des liens comme tout objet.

Le code sera initialement signé et diffusé par l’entité bachue. Tout entité à jour deviendra à son tour point de redistribution du code.

Renouveler son entité

Pour l’instant, les entités sont figées. Mais il faudra prévoir de changer leurs mots de passes et de les migrer vers de nouvelles entités au besoin.

Le changement de mot de passe nécessite de régénérer l’objet de clé privé qui change. Il faut évidemment préalablement déverrouiller l’entité, donc sa clé privée. Une fois le mot de passe changé, il faut lier la nouvelle clé privée à la clé publique puis supprimer le lien de l’ancienne clé privé. Il faut marquer à supprimer l’objet de l’ancienne clé privée.

Dans le cas d’une migration d’entité, c’est un peu plus complexe. Ce besoin répondra souvent suite à un problème de compromission ou de corruption d’entité.
Il faut générer une nouvelle entité autonome. Faire un lien de mise à jour de l’ancienne entité vers la nouvelle. Dans la mesure du possible, ce lien de mise à jour doit être signé à la fois par l’ancienne et la nouvelle entité. Puis l’objet de la clé privée de l’ancienne entité doit être marqué à supprimer à la fois par l’ancienne et la nouvelle entité.
Si l’entité avait été corrompue, c’est à dire qu’il était impossible de la déverrouiller, c’est un vrai problème. Dans ce cas, les liens de mise à jour d’entité et de suppression de clé privée ne pourront être signés par l’ancienne entité. rien ne permet de distinguer une opération légitime suite à un problème d’une tentative de détournement par une autre entité. Il peut tout au plus être possible de regarder si l’entité génère de l’activité, donc qu’elle n’est pas corrompue.
En cas de compromission de l’entité, on peut faire une mise à jour vers une nouvelle entité. Mais celui qui a volé la clé privée de l’entité peut le faire aussi de son côté. Il est difficile dans ce cas de déterminer qui est la véritable nouvelle identité et pas une usurpation… Peut-être le côté sociale, comportemental, d’une entité peut nous aider à posteriori?

Multi-entité et suppression d’objet

A l’origine, le projet nebule s’appliquait à des entités autonomes. C’est à dire que les entités fonctionnaient localement dans un environnement réservé et ne dépendaient pas d’une entité maître.
Cependant, ces deux points ne sont plus assurés. Le cas du projet sylabe montre que de multiples entités peuvent coexister sur un serveur et surtout dans le même environnement. Ce pourrait être le cas aussi dans une famille qui utilise le même ordinateur, et donc le même environnement. La sûreté de fonctionnement veut que les objets publiques soient partagés pour économiser des ressources, et que les objets protégés ne soient à aucun moment disponibles aux entités qui n’ont pas la clé de déchiffrement.
De plus, pour assurer des transferts anonymisés, il est nécessaire de créer des entités dédiées à ce rôle. Ces entités ne doivent pas avoir de lien avec la véritable entité d’un utilisateur. Mais cet utilisateur doit pouvoir gérer ces entités esclaves et notamment détenir les mots de passe de celles-ci. Il se crée donc une petite hiérarchie d’entités. Il reste à assurer la non-liaison entre l’entité maître et les entités esclaves. Il faut penser que ce lien peut être remonté par les liens de type l, f, u, k, et e… sauf à les chiffrer…
A voir.

Suite à la réflexion sur le nettoyage des liens, et suite, l’expérience de sylabe montre que la suppression des objets en environnement partagé n’est pas évident. En effet, si je décide de supprimer un objet et un certain nombre de liens affairant, que ce passe-t-il ?
Pour les liens, ce n’est pas grave puisque ce sont mes liens. Les autres entités sont sensées disposer de leurs propres liens.
Pour l’objet, peut-être qu’une autre entité s’en sert aussi. Le supprimer sans concertation n’est pas la bonne méthode. Demander une concertation est inimaginable, surtout si certaines entités effectivement disponibles sur un serveur ne sont en fait plus utilisées.
Il se pose une question sur l’appartenance de l’objet. On pourrait très bien supprimer un objet du serveur, si une autre entité en a besoin elle le synchronisera simplement ailleurs et du coup il réapparaîtra sur le serveur. C’est aussi potentiellement un déni de disponibilité si cet objet n’est présent que sur ce serveur ou si on arrive à demander simultanément la suppression sur tous les serveurs hébergeant cet objet. D’après la théorie, un objet n’appartient à personne contrairement aux liens.

La suppression d’un objet qui pose un vrai problème de sécurité ou de droit d’utilisation dans un pays peut être géré de façon exceptionnelle. L’entité à qui appartient le serveur peut se voir disposer du pouvoir de suppression améliorée d’objets sur son serveur ainsi que la possibilité de le placer en liste de bannissement. Il faut de toute façon mettre en place la gestion de la liste de bannissement de l’entité cerberus : nebule/danger.

Appartenance et/ou propri̩t̩ Рsuite

Suite de Appartenance et/ou propriété.

En regardant le code de sylabe et notamment la façon dont on traduit les liens, on voit une énorme instruction switch pour trier les liens de type l. Ce tri est fait par rapport à l’objet méta. Les liens sans objet méta (càd égale à 0) apparaissent donc comme des exceptions qu’il faut gérer dans un autre sous switch.

D’un autre côté, les liens de type f sont triés plus naturellement par l’objet source. Cela n’a donc pas d’importance si l’objet méta est nul.

Donc, c’est un lien de type f qui sera maintenant à utiliser pour désigner un nÅ“ud. Cela devient un groupe à part entière.

Tous les liens de type l avec un objet méta nul sont marqués comme périmés. Il n’y a plus de moyen de désigner explicitement un objet comme ‘objet‘, ‘entité‘ ou ‘objet de suivi spécifique‘. Et il n’y a pas vraiment besoin.
Il est ajouté dans la documentation nebule v1.1 que les liens de type l ne devraient avoir ni un objet méta nul ni un objet destination nul.

Appartenance et/ou propriété

Il se pose un dilemme aujourd’hui dans la définition de ce qu’est un nÅ“ud. Non sur la nature de celui-ci mais plutôt sur la façon dont le nÅ“ud est désigné comme tel.

Le même genre de problème se pose aussi pour une entité mais de façon un peu plus simple.
Une entité est capable de signer, c’est donc avant tout une clé cryptographique asymétrique (RSA uniquement aujourd’hui dans nebule). C’est aussi plus spécifiquement la clé publique, celle que l’on diffuse, donc celle par laquelle on est connu et reconnu. Au delà de ses propriétés mathématiques internes, elle est reconnu par la forme de son contenu et plus généralement par son type mime : ‘application/x-pem-file‘. Malheureusement, le fichier PEM, qu’il contienne la clé publique ou la privée ou les deux, a toujours le même type mime. Il est impossible de distinguer l’une ou l’autre naturellement par le type mime, il faut regarder le contenu pour pouvoir prendre une décision sur la nature de la clé.
Cela paraît compliqué comme ça, mais le problème est finalement facile à résoudre. Pour savoir si c’est une entité, il suffit de regarder si l’objet a le bon type mime puis de lire la première ligne du fichier (moins de 30 caractères). On peut vouloir ajouter un lien pour dire explicitement que cet objet est une entité. Mais quel doit être ce lien? Un lien de type l pour attribuer un attribut à l’objet? Ou un lien de type f pour dire que l’objet fait parti (dérivé) du groupe des entités?

Il y a le même problème avec le nÅ“ud. Celui-ci n’a pas de type mime à proprement parler, ce peut être du texte comme une image. Il peut être tentant d’ajouter un lien pour définir explicitement un objet comme étant un nÅ“ud. Dans ce cas, la recherche des nÅ“uds est facilité puisqu’il suffit de regarder les liens vers l’objet ‘nebule/objet/noeud‘. On en revient cependant aux mêmes questions. Quel doit être ce lien? Un lien de type l pour attribuer un attribut à l’objet? Ou un lien de type f pour dire que l’objet fait parti (dérivé) du groupe des entités?
Il s’ajoute un autre problème. Nous n’avons pas besoin en théorie de ce lien pour caractériser un nÅ“ud. Il suffit que le nÅ“ud ai au moins un liens de type f pour lequel il est à la fois l’objet source et l’objet méta. Mais pour retrouver les nÅ“uds, cela oblige à parcourir tous les objets. Bref, ce n’est pas réalisable en pratique pour un usage commun. Nous devons donc ajouter un lien qui explicite la nature de nÅ“ud de l’objet.

Les deux type de liens sont équivalents pour résoudre ce problème. Le type l est plus simple. Le type f permet quand à lui de voir la notion de nÅ“ud comme un groupe. Est-ce qu’il y a un intérêt à gérer les nÅ“uds dans un groupe?
L’usage seul nous permettra de déterminer quel est le meilleur type de lien…

RSE ou RSE ?

En recherchant la définition de l’acronyme RSE, je tombe sur deux définitions… Problème assez récurrent en fait avec les acronymes puisque n’importe qui peut en inventer et les utiliser sur la place publique à son bénéfice.

D’un côté j’ai une belle page bien fournie sur Wikipédia et une page gouvernementale officielle parlant de Responsabilité Sociétale des Entreprises :
Responsabilit̩ Soci̩tale des Entreprises РWikip̩dia
Qu’est-ce-que la responsabilité sociétale des entreprises – Ministère du développement durable
On y parle donc de responsabilité des entreprises, de développement durable, de gestion de risques, des impacts environnementaux et sociaux, enjeux, investissements, outils, normes, médiatisation, aspects juridiques, etc…

De l’autre un article sur 01net.com qui surfe sur la vague des révélations sur PRISM, ce qui n’est pas un mal en soi :
Le RSE : un lanceur d’alerte en entreprise – 01net
On retrouve bien en fin d’article un paragraphe sur le RSE, l’environnement et les risques. Mais RSE, répété à l’envie tout au long de l’article, désigne ici Réseau Social d’Entreprise. En gros un simili Facebook restreint au périmètre de l’entreprise.
Mais n’y a-t-il pas déjà un terme pour cette fonctionnalité? Oui, c’est le groupe de travail (groupware). Ah oui, c’est vrai, le créneau sur ce nom est déjà bien plein. D’un autre côté, la RSE ne doit pas plaire à beaucoup de chef d’entreprises. Bref, Voila typiquement un article à visée commerciale…

Mais ce post n’est pas là pour critiquer l’article. Les acronymes posent un problème de gestion de leurs définitions. Celles-ci ont rarement une portée globale, elles n’ont souvent qu’une définition de portée locale ou régionale. C’est cette absence de centralisation qui, à priori, serait la source des conflits.

Comment vont se comporter les acronymes dans nebule?
Reprenons le cas de la RSE. En pratique, c’est l’objet cec7b8a511f6d30def09266e7595f1dd9a301b3ba868444d2b14236dccc127b1. Aujourd’hui, cet objet n’existe sur aucune machine supportant nebule, mais si il était créé ce serait avec cette empreinte (sha256).

Premièrement, cet objet peut être marqué par des liens de type subdivision s. Il est en effet possible avec ce type de lien de savoir qu’un texte, un article de presse par exemple, contient cet acronyme. Cela facilite la recherche.
Cet exemple d’acronyme est trop petit mais le principe reste valable, le même article de presse peut être téléchargé morceaux par morceaux par ses abonnés. C’est un fonctionnement de type P2P. Chaque morceau connu peut être téléchargé à des endroits différents, puis l’article de presse peut être reconstitué. En pratique, on accélère donc les échanges d’objets.

Ensuite, L’objet de l’acronyme peut aussi être marqué par des liens de type dérivation f. Ces liens peuvent renvoyer vers d’autres objets contenant la ou les définitions de l’acronyme.
C’est un intérêt pour résoudre les conflits autour des définitions d’acronymes. En effet, chaque lien est signé par une entité, donc on sait qui en est l’initiateur. Et comme toute entité gère individuellement ses propres relations de confiances, la définition d’un acronyme sera donc dépendante des entités à qui on fait confiance, mais aussi en fonction de leur niveaux de confiance relatifs.
Donc, si on a une forte confiance en l’état, ce sera la RSE. Si on a une grande confiance en l’auteur de l’article de 01net, alors ce sera le RSE. Si on est chef d’entreprise, il y a de fortes chances que ce soit la RSE de toute façon…

Entit̩ annuaire РMise en ligne

Comme annoncé dans le post sur l’entité annuaire, une entité vient d’être créée :

4e72933c991c2bb27415cfeff02e179b9a3002934e472142c4f612e3893e46e1

Elle se nomme asabiyya et est localisée en http://asabiyya.nebule.org/ et http://asabiyya6.nebule.org/ (IPv6).

Le script qui va lui permettre l’auto-découverte des autres entités n’est pas encore en place, mais il devrait être assez rapide à faire. Il s’agit en fait de parcourir toutes les entités déjà connues en cherchant l’objet contenant nebule/objet/entite/localisation (0f183d69e06108ac3791eb4fe5bf38beec824db0a2d9966caffcfef5bc563355).

On constate visuellement dans les liens la différence entre une clé RSA de 2048 bits et une autre clé RSA de 4096 bits, celle de puppetmaster. La signature est deux fois plus longue et donc les liens ont une taille qui double presque.

Gestion de programmes Рcr̩ation

Suite à la précédente réflexion sur la gestion des programmes, l’entité correspondante a été créée.

Cette entité s’appelle bachue, dérivé de Bachué. Son empreinte :

19762515dd804577f9fd8c005a7803ddee413f264319748e30aa2aedf318ca57
http://bachue.nebule.org

bachue

Le maître des poupées et le gardien de l’enfer

1/Le maître des poupées

Le maître des poupées, alias puppetmaster, vient de révoquer son ancienne incarnation :

63864e42204080051f524d5be0171920e0117a0e83d2131ac506ce3cbff7f1f4

Contrairement à ce qui avait été annoncé, c’est un lien de type d qui à été utilisé, et non un lien de type u. Ceci pour un problème de sécurité. Ainsi son ancienne incarnation ne peut pas révoquer ce type de lien… et ressusciter.
Le détail ici : puppetmaster.nebule.org/l/63864e42204080051f524d5be0171920e0117a0e83d2131ac506ce3cbff7f1f4

D’autres anciennes incarnations ont elles aussi été révoquées, à la fois pour la clé publique et la clé privée :
70668497b6a0ad481aa7e0c08131bc0d0be40cd7dde30a7de8613290d7c35543 puppetmaster (priv)
9e85d7d25af97760f8611b85c2765912606c7eec8307dc58c7782e34cc373c18 cerberus (pub)
905296b7070b8e7d601d9509893683d072bb22083006a9e545ceaf0228787c8c cerberus (priv)
d756efe28847a3723639aed49a40f08c22a576ff3f002750a18ad6a192717621 kronos (pub)
5f951d41db3b18001fbc8baf895d84cb4d460a6143b273b4f5b2d0e9b0d5c67b kronos (priv)

Dans le même temps, puppetmaster a reconnu plusieurs nouvelles entités :
01351dd781453092d99377d94990da9bf220c85c43737674a257b525f6566fb4 cerberus cerberus.nebule.org
abdbaa31e404463ecc644f1eecdeb9b5f94428eb140fa5c66a7687ee96ed47aa kronos kronos.nebule.org
975571a8a470a6d975662e284f5ef1bd0396c06b31a2207b81bef2e24c5bf0c5 stéphane stephane.nebule.fr
Voir le détail ici : puppetmaster.nebule.org/l/88848d09edc416e443ce1491753c75d75d7d8790c1253becf9a2191ac369f4ea

2/Le gardien de l’enfer

Le gardien de l’enfer, alias cerberus, vient d’être régénéré en tant que :

01351dd781453092d99377d94990da9bf220c85c43737674a257b525f6566fb4
cerberus.nebule.org

Il est reconnu par puppetmaster. cf Cerberus et la mise en quarantaine d’objets.

Pour son rôle spécifique, il dispose de deux objets spécifiques :
nebule/danger
nebule/warning

Actuellement, les enfers n’ayant pas encore officiellement ouverts, cette entité est au chômage.
Seul le temps nous dira pour combien de temps…

Autorité temporaire : le maître des poupées

Une entité avait été généré en novembre 2012. Elle avait pour rôle de simuler une autorité de haut niveau. Voir l’article Autorité temporaire.

Le bi-clé de cette entité n’ayant pas été généré et manipulé dans des conditions spartiates de sécurité, il était difficile d’avoir pleinement confiance en cette entité.
Il fallait donc régénérer une nouvelle entité de façon plus propre.

Une machine a été installée de façon renforcée, et est prévue pour être manipulée hors réseau.
Tous les systèmes ont leurs faiblesses, et ont donc un besoin récurrent de mise à jour. Le système le moins vulnérable face à l’absence prolongée de mises à jours, c’est OpenBSD. C’est aussi actuellement le système le moins vulnérable par défaut. La non utilisation du réseau réduit très fortement les problèmes potentiels. Il est cependant possible, en cas de nécessité, de réaliser une mise à jour manuelle.
Le disque dur est partiellement chiffré.

Cette machine a donc permit de générer une nouvelle entité racine.
Ce rôle est toujours temporaire. Il ne se justifie que pour coller à un modèle de sécurité actuel, basé sur des autorités racines de confiance. On ne peut faire confiance à une entité que si elle est validée par l’entité racine. Cependant, ce modèle de sécurité n’a pas vocation à subsister en l’état. Soit il y aura d’autres autorités racines, soit elles disparaîtront toutes.

Puppetmaster, le nouveau maître des poupées est identifié comme :

88848d09edc416e443ce1491753c75d75d7d8790c1253becf9a2191ac369f4ea

Et il reprend l’emplacement de l’ancien puppetmaster :

http://puppetmaster.nebule.org/

Pour l’instant, puppetmaster ne reconnaît aucune autre entité. Ce sera fait bientôt. Et le nouveau puppetmaster réformera (lien u) aussi officiellement l’ancien puppetmaster.
Le maître des poupées est mort, vive le maître des poupées!

Grandes migrations

Toutes les entités étaient accessibles via des liens en nebule.org .

Depuis une semaine, certaines entités ont changé de domaine. Les nouvelles localisations des entités concernées :

Les entités à usage publique restent dans le domaine nebule.org, c’est le cas de :

Ces localisations sont des domaines DNS, et de fait des serveurs http derrière. Cependant, la localisation est certes obligatoire pour retrouver une entité, mais elle n’est pas par nature strictement liée aux noms de domaines. Ni liée au réseau d’ailleurs. Certaines machines ne répondent pas à leur localisation (alpha.nebule.fr), et le type de localisation évoluera plus tard vers d’autres formes (ftp, smtp, xmpp, etc…).

Protocole d’échange HTTP

Tous les objets et liens sont échangeables via différents protocoles sous-jacent connus, en attendant un protocole en propre. Ces échanges peuvent utiliser par exemple la messagerie SMTP, XMPP, mais aussi le HTTP. C’est sur ce dernier que l’on va commencer.

Celui-ci nécessite un serveur web classique et un peu de programmation côté serveur.

Nous devons pouvoir permettre le téléchargement d’objets et de liens par n’importe quel utilisateur partout dans le monde. Les objets sont référencés naturellement par leurs empreintes. Il en est de même pour les liens d’un objets, c’est juste la façon de les traiter qui différera côté client.

Une première difficulté, c’est de restreindre simplement le téléchargement libre de la plupart des objets et des liens. Sauf si c’est une entité volontairement publique, seule une partie des objets et des liens sont relayés à tout le monde alors que la plupart ne le seront qu’avec les entités connues. Contrairement au chiffrement, ce verrouillage ne doit pas être considéré comme une sécurité pour gérer la confidentialité des données. Cela doit être vu comme une façon de réguler les échanges entre entités.

Le tag d’objet nebule/objet/public est créé pour désigner les objets accessibles sans identification. Pour les autres objets, cette identification préalable est obligatoire. La seule exception, c’est si c’est une entité volontairement publique comme un annuaire.

Comme l’échange d’objet peut potentiellement se faire sans échange (par exemple en SMTP), elle doit pouvoir être envoyée lors de la requête HTTP. Elle doit prouver l’identité du demandeur de façon forte et interdire le rejeu. Elle ne doit pas solliciter l’utilisation de la clé privé de l’entité serveur. Un relais d’objet ainsi tenir compte du tag pour gérer les objets qu’il héberge sans en être la source.

Les requêtes doivent pouvoir passer par un flux en clair, c’est à dire non encapsulé dans du TLS.

Une requête doit contenir :
Рentit̩ destination
Рtype demand̩, objet ou liens
– empreinte objet
Рentit̩ demandeuse
– signature

Par exemple : http://localisation.net/?o=HashObjet&s=HashEntitéDemandeuse-HashEntitéDestination-Signature

C’est un début de réflexion…
A compléter…

Empilement de liens

Dans les expériences nebule menées jusque là, les liens ont toujours été attachés aux objets concernés. Et dans une arborescence n’était pris en compte que les liens générés par l’entité maître de cette arborescence. Ainsi les liens générés par une autre entité se sont retrouvés dans une sous arborescence rattachée à cette autre entité. Une arborescence globale découle de l’entité maître et de toutes les entités qu’elle connaît.

De cette façon de procéder résulte une organisation très propre des entités, objets et liens. Cependant, celle-ci n’est pas optimale.

Ainsi, les objets peuvent se retrouver stocké à plusieurs endroits différents de l’arborescence globale. Les liens symboliques sous UNIX/Linux résolvent en pratique ce problème et permettent de ne garder qu’un seul point de stockage par objet, mais ce n’est pas très sexy intellectuellement parlant.

De même, des liens concernant mon entité propre par exemple sont stockés dans l’arborescence de mon entité. Mais il en existe aussi dans une sous arborescence d’une autre entité qui dispose d’une copie de mon entité et a fait ses propres liens sur moi…

Comme le stockage des objets le suggère, il paraît plus opportun de ne créer qu’une seule arborescence très limitée en profondeur. Tout se retrouve au même niveau. Cela résout la dispersion des objets et rassemble près de l’objet tous les liens de toutes les entités que l’on connaît.

Si je souhaite voir tous les liens d’un objet, et donc aussi tout ce que les autres entités en ont fait, la lecture est plus rapide.

Si je souhaite ne voir que mes liens, je filtre sur le champs signataire des liens. Ça ne pose pas de problème.

A quelle entité appartient l’arborescence? Le problème existait déjà, il faut maintenir une valeur particulière désignant sans ambiguïté l’entité maître. Ce peut être un fichier ou une réponse type à une requête standardisée. Cette valeur doit être consultable par tout le monde, elle permet l’initialisation d’un échange plus sécurisé, plus intime, entre serveurs.

Cela introduit cependant une petite différence pour les entités non-maîtres. Elles apparaissaient avant avec une URL pointant dans une sous arborescence de l’URL de l’entité maître. Elles apparaissent maintenant au même niveau. Ainsi, toute entité que l’entité maître connaît peuvent utiliser l’URL de l’entité maître comme nouvelle localisation et améliorer la diffusion de ses propres liens sur le mode P2P.

L’internet des objets et les objets de l’internet

Les objets physiques qui peuplent notre environnement habituel ont une caractéristique particulière, ils sont uniques. On peut certes faire une copie, voire reproduire un objet en plusieurs millions d’exemplaires, chaque objet restera unique avec sa matière propre et ses défauts propres. Chaque objet peut être ainsi assemblé, remodelé ou refondu dans un autre objet, cela n’a aucun impact sur ses congénères.

Et les objets du monde numérique?
Ceux-ci ont l’équivalent d’une forme propre comme un objet physique. On peut distinguer un objet numérique d’un autre par cette forme que l’on appellera plutôt empreinte, mais aussi par sa localisation. La localisation est souvent représenté par un identifiant dans une arborescence ou sur un réseau, c’est un classement humanisé et peu fiable. Ainsi cette dualité de l’objet dans l’espace numérique a une conséquence importante immédiate, le même objet exactement peut exister simultanément en plusieurs endroits. Il faut donc considérer que chaque emplacement de l’objet reçoit une copie exacte de l’objet, c’est à dire sans altération, sinon cela devient un autre objet.

Continuer la lecture de L’internet des objets et les objets de l’internet

Je pense donc je suis

La création d’un objet, et par extension d’une entité, est un peu chaotique actuellement. L’attribut type-mime est calculé le premier, puis le lien vers la clé privée, puis la localisation, puis la date et l’heure, et enfin l’algorithme cryptographique utilisé.

Pourtant, il y a un ordre établit naturel :
– objet
Рentit̩ (objet particulier qui peut signer)
– utilisateur (entité qui permet à un humain d’interagir, IHM)
Рrelais (entit̩ qui relaie des informations sur des entit̩s)

Il serait donc souhaitable de donner cet ordre pour les premiers liens d’une entité :
1) algorithme cryptographique de hash = c’est un objet
2) calcul du type mime, clé publique = c’est une entité
3) lien vers clé privée
4) localisation = voila où on peut trouver l’entité
5) etc…

Et il faut ajouter une marque de la version du protocole utilisé avant les liens. Actuellement, c’est nebule en version 1.0 .